TelephonyManager().getDeviceId()
TelephonyManager().getImei()
TelephonyManager().getMeid()
그리고 하드웨어의 시리얼넘버도 사용이 불가능해졌다.
Builde.SERIAL
In android 10, couldn't get device id using permission "READ_PHONE_STATE".
getDeviceId() has been deprecated since API level 26.
You can use an instance id from firebase e.g FirebaseInstanceId.getInstance().getId();.
String deviceId = android.provider.Settings.Secure.getString(
context.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
삼성갤럭시 S10(Android 10) 에서 테스트한 결과 코드를 적어둔다.
기존 안드로이드 폰은 IMEI 값이 15자리 숫자로만 되어 있었는데
아래 코드에서 제공하는 deviceID값은 IMEI 값이 아닌 다른 값을 제공하는 거 같다.
개발자모드에서 수집한 deviceID 와 release 모드로 앱을 만든 것과 값이 다르더라.
cc64a5b80853bc8d
36f7660af1dc22f2
public static String getDeviceId(Context context) { |
만약 deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); 가 제대로 동작하지 않는다면, 다른 대책을 세워야 할 거 같다.
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
//deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
deviceId = getUniqueID(context);
}
public synchronized static String getUniqueID(Context context) {
// 자바에서는 기본적으로 UUID를 생성하는 클래스를 지원한다.
// UUID를 생성하면 간단하게 유니크한 ID를 얻을 수 있다.
if (uniqueID == null) {
SharedPreferences sharedPrefs = context.getSharedPreferences(PREF_UNIQUE_ID, Context.MODE_PRIVATE);
uniqueID = sharedPrefs.getString(PREF_UNIQUE_ID, null);
if (uniqueID == null) {
uniqueID = UUID.randomUUID().toString().replace("-", "");
Log.e("UUID : ",uniqueID);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putString(PREF_UNIQUE_ID, uniqueID);
editor.commit();
}
}
// 앱을 삭제하면 정보 삭제되므로 앱 삭제시에는 관리자에게 초기화 요청 필요
return uniqueID;
}
Eclipse 테스트 일시 : 2020.3.19일
오래전에 Eclipse 개발툴로 개발한 걸 테스트 해봤다.
디바이스를 구분하는 고유 번호로 ANDROID_ID 로 대체하면 해결되더라.
릴리즈 버전과 디버깅 버전 APK 의 Android ID 가 다르지만 사용자에게는 문제는 없다.
//TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); |
'안드로이드 > Android 활용' 카테고리의 다른 글
Material Design Navigation Drawer (0) | 2020.03.28 |
---|---|
Material Design 기반 TabLayout과 ViewPager (0) | 2020.03.27 |
안드로이드 파일 선택하여 읽어 미리보기 화면 처리 (0) | 2020.02.19 |
안드로이드 바인드 서비스 예제 (0) | 2019.12.14 |
Java SSH 라이브러리 JSCH 를 이용한 mobile SSH (0) | 2019.12.03 |