BLE 设备名称无法恢复
BLE Device Name irretrievable
我有一个项目正在扫描 运行 BLE 上的信标。
我可以扫描信标并将它们列在一个很好的自定义 ListView
中就好了。但是检索他们的名字似乎不起作用。
在我的 OnLeScan
回调中,我使用 device.getName()
似乎总是返回 null?
此外,当我尝试解析 ScanRecord byte[] 数组以获取与 this post 一致的数据时 - 我仍然运气不佳。任何 ideas/tips?
我应该从 BluetoothDevice
class 中检索本地名称吗?我应该从解析 ScanRecord/ScanResult
class 中检索它吗?
这是我的 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();
}
}
});
}
编辑:
我尝试对链接 post 中的代码进行一些修改。添加案例 0x08: 如评论中所建议。但是,我的 ListView 仍然默认将所有找到的设备列为“未知设备”,并且不会检索友好名称。
有关 iBeacon 广告数据包的细分,请参阅 this answer。没有名字。
官方规格只能通过 Apple 的 MFi 程序获得。
我有一个项目正在扫描 运行 BLE 上的信标。
我可以扫描信标并将它们列在一个很好的自定义 ListView
中就好了。但是检索他们的名字似乎不起作用。
在我的 OnLeScan
回调中,我使用 device.getName()
似乎总是返回 null?
此外,当我尝试解析 ScanRecord byte[] 数组以获取与 this post 一致的数据时 - 我仍然运气不佳。任何 ideas/tips?
我应该从 BluetoothDevice
class 中检索本地名称吗?我应该从解析 ScanRecord/ScanResult
class 中检索它吗?
这是我的 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();
}
}
});
}
编辑:
我尝试对链接 post 中的代码进行一些修改。添加案例 0x08: 如评论中所建议。但是,我的 ListView 仍然默认将所有找到的设备列为“未知设备”,并且不会检索友好名称。
有关 iBeacon 广告数据包的细分,请参阅 this answer。没有名字。
官方规格只能通过 Apple 的 MFi 程序获得。