페어링된 블루투스 장치의 "이름"을 얻는 방법

페어링한 장치는 설정 화면에서 이름을 바꿀 수 있죠.



아무래도 이 값을 원했습니다.
BluetoothDevice 를 보더라도 이러한 메서드를 찾을 수 없습니다.
getName() 라는 것이 있었지만, 이것은 이름을 변경하기 전의 디폴트의 값이 돌려주었습니다.

안드로이드 소스를 들여다 보면 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;
    }
}

좋은 웹페이지 즐겨찾기