ペアリングしたデバイスは設定画面で名前を変えることができますよね。
どうしてもこの値が欲しかった。
BluetoothDeviceを見ても、それらしいメソッドは見つかりません。
getName()というのがあったのですが、これは名前を変更する前のデフォルトの値が返ってきました。
Androidのソースを覗いてみるとgetAlias()を発見。
試してみると、ちゃんと取得できました。
ただし、@hide
なメソッドなので使用する際は注意。
以下、リフレクションを使ってgetAlias()
を呼び出すコード。
private String getAlias(BluetoothDevice device) {
try {
Method getAlias = BluetoothDevice.class.getMethod("getAlias");
return (String) getAlias.invoke(device);
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
return null;
}
}