티스토리 뷰
스마트폰 어플리케이션들이 증가하면서 각각의 디바이스에 대한 구분이 필요할 때가 있습니다.
이때 사용할 수 있는 것이 디바이스 식별자인데요.
아이폰의 경우에는 UDID라고 하는 디바이스별 식별자가 포함되어 있어 Unique하게 구분할 수 있습니다.
그러나 안드로이드에서는 고유한 식별자가 일률적이지 않아 어려움이 있는데요.
이 부분을 잘 정리해 놓은 글이 있네요. Tim Bray의 identifying App Installations 인데요.
Android에서 식별자로 사용할 수 있는 항목들을 설명하고 결국 자체 UUID를 활용하는 것이 바람직하다고 되어 있네요..
휴유님의 안드로이드의 개별 디바이스를 구분하는 방법을 보면 이 글을 한글로 잘 번역해 놓으셨네요.
그럼 내용을 다시한번 정리해 보도록 하겠습니다.
1. Device ID
TelephonyManager.getDeviceId() 메소드를 활용해서 디바이스의 ID 정보를 가져오는 것입니다.
일반적으로 휴대폰에 포함된 IMEI, MEID, ESN 등의 값을 유일한 값으로 활용하는 것이죠.
그러나 전화기가 아닌 단말에서는 해당 값이 없고, READ_PHONE_STATE 속성을 가지고 있어야 한다는 점이 이슈라고 하네요.
2. MAC Address
WIFI에 포함된 MAC Address를 활용하는 방법도 있다고 합니다.
그러나 WIFI가 없는 단말도 있으며,
특히 특정 단말에서는 WIFI가 ON 상태가 아니면 MAC Address 값이 없는 경우도 있다고 하네요.
3. Serial Number
원래 이걸 찾다가 위 글들을 찾은 것인데요. Build 클래스에 보면 SERIAL이라는 값이 있습니다.
android.os.Build.SERIAL 인데요. 2.3 진저브레드부터 지원하기 시작했다고 합니다.
즉, 2.2 프로요 이전 버전에서는 지원하지 않구요.
2.3 이후 버전도 필수 항목이 아니어서 제공하지 않는 단말도 있다고 하네요.
4. ANDROID_ID
Setting.Secure.ANDROID_ID 값을 유일키로 활용할 수도 있다고 합니다.
64 비트의 고유값으로 Tim Bray는 가장 추천하고 있는데요.
폰을 초기화 할 경우 삭제되고 다시 생성되는 정보 이구요.
프로요(2.2) 버전 이하에서는 신뢰성이 떨어질 수 있다고 합니다.
마지막으로 아이폰에서 UDID를 가져오는 방법도 정리해 봅니다.
이런 측면에서 보면 여러 제작사가 만드는 안드로이드보다 아이폰이 장점이 될 수 있다는 생각도 드네요.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
구글, 퀵시 모바일 앱내 컨텐츠 검색은 어떻게 될까? (0) | 2014.03.13 |
---|---|
구글 넥서스 7(Nexus 7) 제대로 활용하기 (2) | 2012.11.19 |
안드로이드 음성 처리 API에 대한 정리 (0) | 2012.04.01 |
안드로이드 다이어로그 만들기 (0) | 2011.10.18 |
안드로이드 소스 오류 없는데 오류 표시되어 있는 경우 (Debug certificate expired on..) (0) | 2011.10.02 |