diff --git a/mythtv/libs/libmyth/mythcontext.cpp b/mythtv/libs/libmyth/mythcontext.cpp
index c70a54a..01e3f71 100644
--- a/mythtv/libs/libmyth/mythcontext.cpp
+++ b/mythtv/libs/libmyth/mythcontext.cpp
@@ -6,6 +6,10 @@
 #include <QDateTime>
 #include <QTcpSocket>
 #include <QEventLoop>
+#ifdef ANDROID
+#include <QAndroidJniEnvironment>
+#include <QAndroidJniObject>
+#endif
 
 #include <cmath>
 #include <iostream>
@@ -597,7 +601,52 @@ bool MythContextPrivate::LoadDatabaseSettings(void)
                     "MCP: Error, could not determine host name." + ENO);
             localhostname[0] = '\0';
         }
+#ifdef ANDROID
+        if (strcmp(localhostname, "localhost") == 0
+            || localhostname[0] == '\0')
+        {
+            hostname = "android";
+            bool exception=false;
+            QAndroidJniEnvironment env;
+            QAndroidJniObject myID = QAndroidJniObject::fromString("android_id");
+            QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod
+                ("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
+            if (env->ExceptionCheck()) {
+                env->ExceptionClear();
+                exception=true;
+            }
+            QAndroidJniObject appctx = activity.callObjectMethod
+                ("getApplicationContext","()Landroid/content/Context;");
+            if (env->ExceptionCheck()) {
+                env->ExceptionClear();
+                exception=true;
+            }
+            QAndroidJniObject contentR = appctx.callObjectMethod
+                ("getContentResolver", "()Landroid/content/ContentResolver;");
+            if (env->ExceptionCheck()) {
+                env->ExceptionClear();
+                exception=true;
+            }
+            QAndroidJniObject androidId = QAndroidJniObject::callStaticObjectMethod
+                ("android/provider/Settings$Secure","getString",
+                 "(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;",
+                 contentR.object<jobject>(),
+                 myID.object<jstring>());
+            if (env->ExceptionCheck()) {
+                env->ExceptionClear();
+                exception=true;
+            }
+            if (exception)
+                LOG(VB_GENERAL, LOG_ALERT,
+                    "Java exception looking for android id");
+            else
+                hostname = QString("android-%1").arg(androidId.toString());
+        }
+        else
+            hostname = localhostname;
+#else
         hostname = localhostname;
+#endif
         LOG(VB_GENERAL, LOG_NOTICE, "Empty LocalHostName.");
     }
     else
