我正在我的应用程序中研究蓝牙。我找到了显示分配的 UUID 的文章doc。我找到的血压计的两个ID是0x1810
, 0x2A35
分别用于血压和血压测量。我对这些东西完全陌生,所以我不太理解。我找到了这个堆栈溢出1 and 堆栈溢出2。所以我正在增加我的价值btyeArrayof但这给了我错误。另请指导我如何将数据传递给具有多个 id 的扫描过滤器
private fun scanFilters() {
val scanFilterList = mutableListOf<ScanFilter>()
val serviceUuidMaskString = "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
val setServiceData = byteArrayOf(
0x1810, 0x2A35
)
val scanFilter = ScanFilter.Builder().setServiceUuid(setServiceData, serviceUuidMaskString).build()
scanFilterList.add(scanFilter)
}
Errors
The integer literal does not conform to the expected type Byte
这段代码来了
val setServiceData = byteArrayOf(0x1810, 0x2A35)
另一个错误
Type mismatch.
Required:
ParcelUuid!
Found:
ByteArray
or
Type mismatch.
Required:
ParcelUuid!
Found:
String
val scanFilter = ScanFilter.Builder().setServiceUuid(setServiceData, serviceUuidMaskString).build()
您可以将 16 位服务 UUID 表示为 128 位服务 UUID,如下所示:
0000xxxx-0000-1000-8000-00805F9B34FB
因此,对于具有 16 位服务 UUID 0x2A35 的血压管理,您可以使用:
00002A35-0000-1000-8000-00805F9B34FB
对于具有 16 位服务 UUID 0x1810 的血压,您可以使用:
00001810-0000-1000-8000-00805F9B34FB
您只能将一个服务 UUID 放入一个过滤器中,因此如果您想查找两者,则需要使用两个过滤器。操作方法如下:
val filter1 = ScanFilter.Builder().setServiceUuid(ParcelUuid(
UUID.fromString("00002A35-0000-1000-8000-00805F9B34FB"))).build();
val filter2 = ScanFilter.Builder().setServiceUuid(ParcelUuid(
UUID.fromString("00001810-0000-1000-8000-00805F9B34FB"))).build();
scanFilterList.add(scanFilter1)
scanFilterList.add(scanFilter2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)