我正在尝试构建一个应用程序,它可以发现所有运行同一应用程序的设备。我做了所有的发现等等,但我不知道如何过滤掉那些运行我的应用程序,,而不连接到他们的。仅仅是根据发现的结果。这有可能吗?以什么方式?我正在研究UUID,但我不知道是否可以将UUID用于这个目的,以及如何使用UUID。提前感谢!
发布于 2015-06-24 21:46:53
我不知道如何过滤掉那些运行我的应用程序的
这取决于你想要运行的Android的哪种风格。
Android4.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和更早版本的替代方案的帖子。
为了满足我自己的需求,在涉及Android4.3的地方,做一个后获取设备名过滤就足够了。
https://stackoverflow.com/questions/31030527
复制相似问题