Posted at

ペアリングしたBluetoothデバイスの「名前」を取得する方法

More than 1 year has passed since last update.

ペアリングしたデバイスは設定画面で名前を変えることができますよね。

device.png

どうしてもこの値が欲しかった。

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;
}
}