首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android蓝牙服务发现

Android蓝牙服务发现
EN

Stack Overflow用户
提问于 2015-06-24 15:19:25
回答 1查看 529关注 0票数 0

我正在尝试构建一个应用程序,它可以发现所有运行同一应用程序的设备。我做了所有的发现等等,但我不知道如何过滤掉那些运行我的应用程序,,而不连接到他们的。仅仅是根据发现的结果。这有可能吗?以什么方式?我正在研究UUID,但我不知道是否可以将UUID用于这个目的,以及如何使用UUID。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-06-24 21:46:53

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

这取决于你想要运行的Android的哪种风格。

Android4.4及以上版本将支持128位UUID的蓝牙扫描过滤。

以下是代码摘录。

代码语言:javascript
复制
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的地方,做一个后获取设备名过滤就足够了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31030527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档