디바이스를 구분하는 고유번호
디바이스를 구분하는 고유번호로 ANDROID_ID를 사용했습니다.
android_id = Settings.Secure.getString(getApplicationContext().getContentResolver(),
Settings.Secure.ANDROID_ID);
ANDROID_ID는 디바이스가 최초 Boot될 때 생성 되는 64-bit값입니다.
이는 디바이스를 공장 초기화 하지 않는이상 바뀌지 않는 고유 값이라고 알고있었습니다.
하지만! 이 값이 변하는 경우를 보았습니다.
Android 8.0(오레오) 이상 버전에서 부터 정책이 바뀌게 되었는데요.
https://developer.android.com/about/versions/oreo/android-8.0-changes?hl=ko
중간에 내용을 보면
-Android 8.0을 실행하는 기기에 설치된 앱의 경우 ANDROID_ID의 값은 이제 사용자뿐 아니라 앱 서명 키별로
범위가 지정됩니다. ANDROID_ID의 값은 같은 앱 서명 키, 사용자 및 기기의 각 조합에 대해 고유합니다.
따라서 동일한 기기에서 실행중인 다른 서명 키가 있는 앱은(사용자가 동일하더라도) 더 이상 동일한 Android ID를 보지 못합니다.
앱 서명 키 별로 ANDROID_ID의 범위가 지정된다는 것을 알 수 있는데요.
즉 릴리즈 버전과 디버깅 버전의 APK의 Android ID가 다를 수 있다는 것입니다.
제가 확인해본 결과 Android 8.0 애서는 마켓에서 받았던 앱과 디버깅 APK 의 ANDROID_ID 가 다른것을 확인 할 수 있었습니다.
앱 사용자들은 디버깅APK 를 다운 받을 일이 없으니 서비스를 운영하는데에는 큰 문제는 없을 것 같다는게 제 의견입니다. ㅎㅎ
참조 :
https://black-jin0427.tistory.com/88?category=727620
'안드로이드' 카테고리의 다른 글
[Android] 외부 스킴(Custom Url Scheme) 사용 방법 (0) | 2022.10.25 |
---|---|
[Android] 안드로이드 앱 아이콘(App icon) 사이즈 (0) | 2022.10.25 |
sharedViewModel, Android Fragment간의 ViewModel공유하기 (0) | 2022.10.25 |
[Android] Architecture, Framework, Platform에 대해 알아보자 (0) | 2022.10.24 |
[Android] 블루투스(Bluetooth) 개발에 대해 알아보자 (0) | 2022.10.24 |