我想在 Android 中检索远程蓝牙设备的自定义名称。
我说的是在“设置/蓝牙”和配对设备下的手机设置中找到的名称。
例如。我有一个名为“DoorControl”的远程蓝牙设备。在“设置”->“蓝牙”->“配对设备”下,我已将设备重命名为“CTRL”。现在我想访问定义的名称,以便为用户显示它。
我想在蓝牙设备列表中显示该名称。
knownDevicesAdapter.clear();
knownDevicesArray = mBluetoothAdapter.getBondedDevices();
if (knownDevicesArray.size() > 0) {
for (BluetoothDevice device : knownDevicesArray) {
if (device.getName().contains("Door")) {
knownDevicesAdapter.add(device.getName()
+ /*HERE I WANT THE CUSTOM NAME TO SHOW*/ "\n"
+ device.getAddress());
}
}
}
device.getName(),仅返回设备的完整原始名称,在本例中为“DoorControl”。
这是必要的,因为可能有 4 个名为 DoorControl 的设备。区分它们的唯一方法是通过它们的地址。但对于用户友好的方法来说,让他们在蓝牙设置中重命名设备并仅将该名称显示为设备的“昵称”会更容易。
有没有办法访问自定义名称,这样我就不必在自己的应用程序中编写完整的“重命名->保存特定地址的名称->加载名称”循环?
EDIT:
经过一段时间的搜索后,我决定在自己的应用程序中编写重命名功能,因为我找不到其他方式获取名称的方法。
如果有人正在阅读本文并知道我原来问题的答案,我会很高兴知道。
在您的应用程序中,您可以像这样重命名蓝牙设备:
public boolean renamePairedDevice(BluetoothDevice bluetoothDevice, String name) {
try {
Method m = bluetoothDevice.getClass().getMethod("setAlias", String.class);
m.invoke(bluetoothDevice, name);
return true;
} catch (Exception e) {
Log.d(TAG, "error renaming device:" + e.getMessage());
return false;
}
}
然后之后,bluetoothDevice.getName()
将返回新名称。
这与在设备设置中重命名蓝牙设备具有相同的效果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)