为什么扫描结果中不包含完整的本地名称?

时间:2019-08-12 19:50:06

标签: android bluetooth-lowenergy

我正在使用BluetoothLeScanner扫描硬件设备。我完全可以控制此设备输出的广告数据。我希望Android设备能够根据我给设备的“名称”来识别硬件设备。只要您了解Android Studio所谓的“名称”(根据我的蓝牙设备上的文档)是信标广告数据,此方法便可以使用。但是我希望android设备也获得我输入到扫描响应数据中的完整名称。无论我做什么,我都无法在任何地方将这些数据显示在扫描结果中

我尝试了ScanResult和ScanRecord的所有公共方法

我认为这没有多大帮助,但这是当前代码:

override fun onScanResult(callbackType: Int, result: ScanResult?) {
    super.onScanResult(callbackType, result)
    mScan = true
    mString = result?.scanRecord.toString()
}

我无法说出“期望的”是什么,因为我正在尽我所能想出的一切来使全名可见。我可以在结果中出现的唯一字符串(称为mDeviceName)是名称的缩写形式(正如我在扫描响应数据中输入的一样),它也是信标广告数据。

1 个答案:

答案 0 :(得分:0)

您特定的蓝牙设备可能正在使用设备制造商特定的数据来宣传其名称。尝试调试代码并检查result?.scanRecord?.getManufacturerSpecificData()函数的内容。