我有一个项目正在扫描在BLE上运行的信标。
我可以扫描信标并将它们列在一个不错的自定义ListView
中就好了。然而,检索他们的名字似乎不起作用。
在我的OnLeScan
回调中,我使用device.getName()
似乎总是返回null?
此外,当我尝试按照this帖子解析数据的ScanRecord byte []数组时 - 我仍然没有太多运气。任何想法/提示?
我应该从BluetoothDevice
班级中检索本地名称吗?我应该从解析ScanRecord/ScanResult
类来检索它吗?
这是我的onLeScan的样子:
public void onLeScan(final BluetoothDevice device, int rssi, final byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.v(device.getName(),device.getName());
mLeDeviceListAdapter.addDevice(device);
mLeDeviceListAdapter.notifyDataSetChanged();
}
}
});
}
编辑:
我尝试对链接帖子中的代码进行一些修改。添加案例0x08:如评论中所建议的那样。但是,我的ListView仍默认将所有找到的设备列为“未知设备”,并且不会检索友好名称。