본문 바로가기

Programming&Dev

안드로이드 기기 고유 번호 알아내기의 함정

안드로이드에서 기기 고유의 ID 값을 구하는 방법은 아래와 같다.

TelephonyManager tManager = (TelephonyManager)mApp.getSystemService(Context.TELEPHONY_SERVICE);

String uuid = tManager.getDeviceId();

이 값을 이용해서 서버와 통신을 시도 하고 있었는데 자꾸 아무런 반응이 없어서 디버깅을 시도해보니

uuid 가 null 값이여서 서버에서 바로 리턴을 해버리는 상황이었다.

도대체 왜 null로 나온단 말인가... 하고 좌절하며 구글링을 시도해 보았더니

위 방식으로 구할 수 있는 기기 고유의 ID값은 통신용칩이 끼워져 있는 즉 3G or LTE 를 사용하고 있는 폰이여야 한다.

wifi 모델인 넥서스 7으로 디버깅을 하다 보니 발생한 경우였다.

넥서스 7같이 기본 통신칩이 장착되지 않은 기계는 다른 방식으로 기기 고유의 값을 구하여야 한다고 한다. 맥어드레스 라던지...