단말기 고유값 관련 참고사항

imei, imsi는 wifi 전용 기기에서는 null이 넘어온다.

mac address는 wifi를 끄고 재부팅하면 안 나온다.

android_id는 기기를 초기화하면 값이 바뀐다.




1. ANDROID_ID

android ID는 디바이스가 공장 초기화후 최초 부팅시에 생성이 된다. 또한 초기화 전까지는

삭제 되지 않고 저장되어 있어서 디바이스 식별에 유용한 값으로 보인다. 다만, 어플 사용자가

디바이스를 초기화 할 경우 값이 변경되는 점과 안드로이드 2.2(프로요)이전 버전에서 이 값은

믿을만 한 값이 아니라고 하니 사용시 유의해야 할것 같다.

String androID = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
//String 객체를 생성하여 다음과 같이 ANDROID_ID를 받아와 저장시킨다.



2. SERIAL Number

SERIAL Number 는 android.os.Build.SERIAL 로 부터 값을 받아 올수 있다.

제약 사항이 있다면 위 방법은 안드로이드 2.3(진저브레드)부터 사용이 가능하다고 하며,

전화기능이 없는 디바이스의 경우 유일한 Constant 값을 반환하지만, 전화기능이 있는

디바이스의 경우 모든 디바이스가 해당되지는 않는다고 한다.
(이 방법의 경우 안드로이드 2.2에서 테스팅해 본 결과 런타임 에러가 난다.)

Build bd = new Build();
//Build객체를 생성한다.
final String serialNum = bd.SERIAL;

생성된 Build 객체를 이용하여 SERIAL값을 얻어와 String 객체에 저장한다.



3. Mac Address

Mac Address 는 대학교 네트워크 수업 시간에 지겹도록 들은 단어다.

Mac Address 도  각 디바이스를 구분 할 수 있는 값이지만, 모든 디바이스가

Mac Address를 가지고 있지 않으며 디바이스마다 디바이스가 꺼져 있는 경우 값을

얻어오지 못한다는 문제점이 있다.