2015-06-24 172 views
0

我正在尝试构建一个应用程序,该应用程序可以发现运行相同应用程序的所有设备。 我已经完成了所有的发现等,但我不知道如何筛选出正在运行我的应用程序,而不连接到他们。只是从发现的结果。 这可能吗?以什么方式?我正在研究UUID,但我不知道是否能够用于此目的,以及如何使用这些UUID。 在此先感谢!Android蓝牙服务发现

回答

1

我不知道如何过滤掉运行我的应用程序

的那些这取决于你想下运行是什么味道的Android。

Android 4.4以上版本将由128位UUID

以下是代码摘录支持蓝牙扫描过滤。

private static final String CT_UUID = "Your specific 128-bit UUID string"; 
......... 
String myOSVersion = android.os.Build.VERSION.RELEASE; // e.g. myOSVersion := "4.2" 
float myOSVersionNum = Float.valueOf(myOSVersion.substring(0,3)); // Example 4.3, 4.4, etc. 
......... 
if (myOSVersionNum < 4.4) { 
    // --- Android 4.3 (NO UUID Filtering) --- 
    mBluetoothAdapter.startLeScan(mLeScanCallback); 
} else { 
    // --- Android 4.4 or Later (With UUID Filtering) --- 
    UUID[] uuids = new UUID[1]; 
    uuids[0] = UUID.fromString(CT_UUID); 
    mBluetoothAdapter.startLeScan(uuids, mLeScanCallback); 
} 

但是对于早期的Android版本,这将不起作用。
这里有很多关于Android 4.3以及更早版本的替代选项的帖子。

对于我自己的需要,Android 4.3涉及到,做后置采集设备名称过滤是足够的/足够的。