Android蓝牙服务发现
问题描述:
我正在尝试构建一个应用程序,该应用程序可以发现运行相同应用程序的所有设备。 我已经完成了所有的发现等,但我不知道如何筛选出正在运行我的应用程序,而不连接到他们。只是从发现的结果。 这可能吗?以什么方式?我正在研究UUID,但我不知道是否能够用于此目的,以及如何使用这些UUID。 在此先感谢!Android蓝牙服务发现
答
我不知道如何过滤掉运行我的应用程序
的那些这取决于你想下运行是什么味道的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涉及到,做后置采集设备名称过滤是足够的/足够的。