我目前正在用Kotlin(定位API 25+)编写一个Android应用,该应用将连接到自定义BLE外围设备。使用Lightblue Explorer( iOS )和nRF Connect( iOS&Android )记录并验证数据流,可以验证自定义BLE设备是否正常工作。设备名称在Lightblue和nRF应用程序中均正确显示。
问题是,在我的Kotlin应用程序中进行扫描时,设备名称后面带有未知字符,
预期:(NOW()-created_at
实际:ABC_DEF
我在以下函数中获取设备名称:
ABC_DEF??
我的应用程序正在尝试连接到特定的设备名称,因此,由于未知字符,连接失败。
目前,override fun onScanResult(callbackType: Int, result: ScanResult?) {
val name = result!!.scanRecord.deviceName
System.out.print("onScanResult: $name")
attemptConnect(result!!)
}
为我提供了 expected 的名称,尽管此解决方案似乎很麻烦,而且我确定更改设备名称后肯定会中断。
所以,我的问题有两个:
- 如何最好地处理这些未知字符,以使代码可以与其他设备名称一起重复使用?
- 此问题可能是什么原因?
谢谢, 亚当