Это Безопасно.ANDROID ID уникален для каждого устройства?
Я использую этот вызов:
Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);
чтобы получить UID для устройства. Я думаю, что я получаю тот же идентификатор от нескольких устройств, хотя. Должно ли это быть возможно?
идентификатор, о котором идет речь: 9774d56d682e549c и, по-видимому, есть проблема с несколькими устройствами, возвращающими этот идентификатор http://code.google.com/p/android/issues/list?cursor=10603&updated=10603&ts=1295993403
6 ответов:
регистрация в thread,. Однако вы должны быть осторожны, поскольку это задокументировано как "может измениться при сбросе настроек". Используйте на свой страх и риск, и его можно легко изменить на корневом телефоне. Также кажется, что у некоторых производителей были проблемы с их телефонами, имеющими дубликаты номеров thread. В зависимости от того, что вы пытаетесь сделать, я, вероятно, не буду использовать это как UID.
с Android O поведение ANDROID_ID изменится. ANDROID_ID будет отличаться для каждого приложения для каждого пользователя на телефоне.
взято из: https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html
Android ID
в O, Android ID (настройки.Безопасный.ANDROID_ID или SSAID) имеет различное значение для каждого приложения и каждого пользователя на устройстве. Разработчики, которым требуется идентификатор области действия устройства, должны вместо этого использовать перенастраиваемый идентификатор, такой как рекламный идентификатор, что дает пользователям больше контроля. Advertising ID также предоставляет пользовательский параметр для ограничения отслеживания рекламы.
дополнительно в Android O:
- значение ANDROID_ID не изменится при удалении/переустановке пакета, так как если имя пакета и ключ подписи совпадают. Приложения могут полагаться на этом значении для поддержания состояния при переустановке.
- если приложение было установлено на устройстве с более ранней версией из Android, идентификатор Android остается прежним, когда устройство обновлено до Android O, если приложение не будет удалено и повторно установленный.
- значение идентификатора Android изменяется только в том случае, если устройство является заводским сброс или если ключ подписи вращается между uninstall и
переустановите события.- данное изменение требуется только для производителей устройств доставка с помощью сервисов Google Play и рекламного идентификатора. Другой производители устройств могут предоставить альтернативную возможность сброса идентификатор или продолжайте предоставлять идентификатор ANDROID.
так что если вы хотите что-то уникальное для себя устройство,
TM.getDeviceId()должны быть достаточным.вот код, который показывает, как получить идентификатор диспетчера телефонии. Идентификатор устройства android, который вы используете, может изменяться в заводских настройках, а также у некоторых производителей есть проблема с предоставлением уникального идентификатора.
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, и поэтому производители, похоже, реализуют его так, как они выбирают, включая некоторые из них, используя его больше как идентификатор "модели" и т. д.
кроме того, имейте в виду, что даже если производитель написал генератор, чтобы сделать его UUID (например), он не гарантированно выживет сброс к заводским настройкам.
просто перечислите альтернативное решение здесь, рекламный идентификатор:
https://support.google.com/googleplay/android-developer/answer/6048248?hl=enскопировано из ссылки выше:
рекламный идентификатор-это уникальный, перенастраиваемый пользователем идентификатор для рекламы, предоставляемый службами Google Play. Это дает пользователям лучшие средства управления и предоставляет разработчикам простую, стандартную систему для продолжения монетизации своих приложений. Это позволяет пользователям сбросить свой идентификатор или отказаться от персонализированных объявлений (ранее известных как объявления на основе интересов) в приложениях 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); }Да, Безопасно.ANDROID_ID уникален для каждого устройства.
Comments