Secure.ANDROID_ID는 각 장치마다 고유합니까?
이 전화를 사용하고 있습니다.
Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);
장치의 UID를 얻으려면. 그래도 여러 장치에서 동일한 ID를 얻는 것 같습니다. 이것이 가능해야합니까?
문제의 ID는 9774d56d682e549c이며이 ID를 반환하는 여러 기기에 문제가있는 것 같습니다. http://code.google.com/p/android/issues/list?cursor=10603&updated=10603&ts=1295993403
이 스레드를 확인하십시오 . 그러나 "초기화시 변경 가능"으로 문서화되어 있으므로주의해야합니다. 자신의 책임하에 사용하고 루팅 된 전화에서 쉽게 변경할 수 있습니다. 일부 제조업체는 자신의 휴대 전화가 중복되는 번호를 갖는 문제를 가지고있는 것처럼 또한 그것은 나타납니다 스레드 . 당신이하려는 일에 따라 아마도 이것을 UID로 사용하지 않을 것입니다.
Android O에서는 ANDROID_ID의 동작이 변경됩니다. ANDROID_ID는 휴대 전화의 사용자별로 앱마다 다릅니다.
출처 : https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html
안드로이드 ID
O에서 Android ID (Settings.Secure.ANDROID_ID 또는 SSAID)는 기기의 각 앱 및 각 사용자에 대해 다른 값을 갖습니다. 기기 범위 식별자가 필요한 개발자는 광고 ID와 같은 재설정 가능한 식별자를 대신 사용하여 사용자에게 더 많은 제어 권한을 제공해야합니다. 광고 ID는 광고 추적을 제한하는 사용자 용 설정도 제공합니다.
또한 Android O에서 :
- ANDROID_ID 값은 패키지 이름과 서명 키가 같으면 패키지 제거 / 재설치시 변경되지 않습니다. 앱은이 값을 사용하여 재설치시 상태를 유지할 수 있습니다.
- 이전 버전의 Android를 실행하는 기기에 앱을 설치 한 경우 기기를 Android O로 업데이트 할 때 앱을 제거하고 다시 설치하지 않는 한 Android ID는 동일하게 유지됩니다.
- Android ID 값은 기기가 초기화 된 경우 또는 서명 키가 제거 및
재설치 이벤트 사이에 순환하는 경우에만 변경됩니다 . - 이 변경은 Google Play 서비스 및 광고 ID와 함께 배송되는 기기 제조업체에만 필요합니다. 다른 기기 제조업체는 재설정 가능한 대체 ID를 제공하거나 ANDROID ID를 계속 제공 할 수 있습니다.
따라서 장치 자체에 고유 한 것을 원한다면 충분 TM.getDeviceId()
해야 합니다.
다음은 Telephony Manager ID를 얻는 방법을 보여주는 코드입니다. 사용중인 Android 기기 ID는 공장 설정에서 변경 될 수 있으며 일부 제조업체는 고유 ID를 제공하는 데 문제가 있습니다.
TelephonyManager tm =
(TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
String androidId = Secure.getString(this.getContentResolver(), Secure.ANDROID_ID);
Log.d("ID", "Android ID: " + androidId);
Log.d("ID", "Device ID : " + tm.getDeviceId());
다음 TelephonyManager
을 사용하여 권한을 가져야합니다.
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
이에 대해 몇 가지 읽었으며 안타깝게도 개별 기기를 고유하게 식별하는 데 ANDROID_ID를 사용해서는 안됩니다.
Android 규정 준수 요구 사항에 적용되지 않는 것으로 보이므로 제조업체는 '모델'ID 등으로 더 많이 사용하는 일부를 포함하여 선택한 방식으로 구현하는 것 같습니다.
또한 제조업체가 UUID (예 : UUID)로 만들기 위해 생성기를 작성했다고하더라도 공장 초기화에서 살아남을 보장은 없습니다.
여기에 대체 솔루션 인 광고 ID를 나열하십시오.
https://support.google.com/googleplay/android-developer/answer/6048248?hl=en
위 링크에서 복사 :
광고 ID는 Google Play 서비스에서 제공하는 광고용으로 사용자가 재설정 할 수있는 고유 한 ID입니다. 사용자에게 더 나은 제어 기능을 제공하고 개발자에게 앱으로 계속 수익을 창출 할 수있는 간단한 표준 시스템을 제공합니다. 이를 통해 사용자는 Google Play 앱 내에서 식별자를 재설정하거나 개인 맞춤 광고 (이전의 관심 기반 광고)를 선택 해제 할 수 있습니다.
제한 사항은 다음과 같습니다.
- Google Play 지원 기기에만 해당됩니다.
- 개인 정보 정책:
https://support.google.com/googleplay/android-developer/answer/113469?hl=en&rd=1#privacy
//Fields
String myID;
int myversion = 0;
myversion = Integer.valueOf(android.os.Build.VERSION.SDK);
if (myversion < 23) {
TelephonyManager mngr = (TelephonyManager)
getSystemService(Context.TELEPHONY_SERVICE);
myID= mngr.getDeviceId();
}
else
{
myID =
Settings.Secure.getString(getApplicationContext().getContentResolver(),
Settings.Secure.ANDROID_ID);
}
예, Secure.ANDROID_ID는 각 장치마다 고유합니다.
참고 URL : https://stackoverflow.com/questions/4799394/is-secure-android-id-unique-for-each-device
'program tip' 카테고리의 다른 글
Windows Forms 애플리케이션에서 MVC를 어떻게 구현 하시겠습니까? (0) | 2020.11.21 |
---|---|
SQL Server 2008의 SQL 프로필러는 어디에 있습니까? (0) | 2020.11.21 |
MongoDB 정규화, 외래 키 및 조인 (0) | 2020.11.21 |
Git의 하위 프로젝트와 하위 모듈의 차이점은 무엇입니까? (0) | 2020.11.21 |
전체 프로젝트를 보는 대신 Github에서 특정 문제 만 따르는 방법은 무엇입니까? (0) | 2020.11.21 |