diff --git a/runtime/factories/android/android.go b/runtime/factories/android/android.go
index 61cda08..759c752 100644
--- a/runtime/factories/android/android.go
+++ b/runtime/factories/android/android.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build linux darwin
+// +build android
 
 // Package android implements a RuntimeFactory suitable for android.  It is
 // based on the roaming package.
@@ -14,13 +14,17 @@
 
 import (
 	"flag"
+	"os"
 
 	"v.io/v23"
 	"v.io/v23/context"
+	"v.io/v23/discovery"
 	"v.io/v23/flow"
 	"v.io/v23/rpc"
 
 	"v.io/x/ref/internal/logger"
+	idiscovery "v.io/x/ref/lib/discovery"
+
 	dfactory "v.io/x/ref/lib/discovery/factory"
 	"v.io/x/ref/lib/flags"
 	"v.io/x/ref/lib/pubsub"
@@ -40,10 +44,13 @@
 	_ "v.io/x/ref/runtime/internal/rpc/protocols/tcp"
 	_ "v.io/x/ref/runtime/internal/rpc/protocols/ws"
 	_ "v.io/x/ref/runtime/internal/rpc/protocols/wsh"
+	"v.io/x/ref/lib/discovery/plugins/mdns"
 )
 
 var commonFlags *flags.Flags
 
+var bleCreator func(string) (idiscovery.Plugin, error)
+
 func init() {
 	v23.RegisterRuntimeFactory(Init)
 	rpc.RegisterUnknownProtocol("wsh", websocket.HybridDial, websocket.HybridResolve, websocket.HybridListener)
@@ -57,7 +64,7 @@
 	}
 
 	ac := appcycle.New()
-	discovery, err := dfactory.New()
+	discovery, err := createDiscovery()
 	if err != nil {
 		ac.Shutdown()
 		return nil, nil, nil, err
@@ -97,3 +104,28 @@
 	}
 	return runtime, ctx, runtimeFactoryShutdown, nil
 }
+
+func createDiscovery() (discovery.T, error) {
+	plugins := make([]idiscovery.Plugin, 2)
+	host, _ := os.Hostname()
+	if host == "" {
+		host = "v23"
+	}
+	var err error
+	plugins[0], err = mdns.New(host)
+	if err != nil {
+		return nil, err
+	}
+
+	plugins[1], err = bleCreator(host)
+	if err != nil {
+		return nil, err
+	}
+
+	return idiscovery.NewWithPlugins(plugins...), nil
+}
+
+// SetBleCreator sets the function that will used to create the ble plugin.
+func SetBleCreator(creator func(string) (idiscovery.Plugin, error)) {
+	bleCreator = creator
+}
diff --git a/runtime/factories/android/proxy.go b/runtime/factories/android/proxy.go
index 3b4f880..d8668fb 100644
--- a/runtime/factories/android/proxy.go
+++ b/runtime/factories/android/proxy.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build android
 package android
 
 import (
