安卓上,使用如下代码获取蓝牙设备的默认名称
BluetoothDevice.getName();
但假若我们要获取设备重命名后的名称,则需要使用反射进行获取
/**
* 获取重命名后的名称
* @param device
* @return
*/
private String getName(BluetoothDevice device)
{
String deviceAlias = device.getName();
try {
Method method = device.getClass().getMethod("getAliasName");
if(method != null) {
deviceAlias = (String)method.invoke(device);
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return deviceAlias;
}
/**
* 对设备进行重命名
* @param device
* @param pNewName
*/
private void alter(BluetoothDevice device, String pNewName)
{
try {
Method method = device.getClass().getMethod("setAlias", String.class);
if(method != null) {
method.invoke(device, pNewName);
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
网友评论