Jest Bezpieczny.ANDROID ID unikalny dla każdego urządzenia?

Używam tego wywołania:

Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);

Aby uzyskać UID dla urządzenia. Myślę, że otrzymuję ten sam IDENTYFIKATOR z wielu urządzeń. Czy to jest możliwe?

ID o którym mowa to: 9774d56d682e549c i najwyraźniej jest problem z kilkoma urządzeniami zwracającymi ten identyfikator http://code.google.com/p/android/issues/list?cursor=10603&updated=10603&ts=1295993403

Author: ShiDoiSi, 2011-01-26

6 answers

Sprawdź ten wątek ,. Należy jednak zachować ostrożność, ponieważ jest to udokumentowane jako "można zmienić po przywróceniu ustawień fabrycznych". Używaj na własne ryzyko i można go łatwo zmienić na zrootowanym telefonie. Wygląda również na to, że niektórzy producenci mieli problemy z telefonami o zduplikowanych numerach wątku. W zależności od tego, co próbujesz zrobić, prawdopodobnie nie użyłbym tego jako UID.

 27
Author: ninjasense,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:29

Z Androidem O zmieni się zachowanie ANDROID_ID. Identyfikator ANDROID_ID będzie różny w zależności od aplikacji na użytkownika w telefonie.

Pochodzi z: https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html

Android ID

In O, Android ID (Settings.Zabezpieczony.ANDROID_ID lub SSAID) ma inną wartość dla każdej aplikacji i każdego użytkownika na urządzeniu. Programiści wymagający identyfikatora o zasięgu urządzenia powinni zamiast tego używać resetowalnego identyfikatora, takich jak Id reklamy, dając użytkownikom większą kontrolę. ID reklamy zapewnia również ustawienie skierowane do użytkownika, aby ograniczyć śledzenie reklam.

DODATKOWO w Androidzie O:

  • wartość ANDROID_ID nie zmieni się podczas odinstalowywania/ponownej instalacji pakietu, ponieważ o ile Nazwa pakietu i klucz podpisujący są takie same. Aplikacje mogą polegać na tej wartości, aby utrzymać stan w ponownych instalacjach.
  • Jeśli aplikacja została zainstalowana na urządzeniu z wcześniejszą wersją Android, Android ID pozostaje taki sam, gdy urządzenie jest aktualizacja do Androida O, chyba że aplikacja zostanie odinstalowana i reinstalacja.
  • wartość Android ID zmienia się tylko wtedy, gdy urządzenie jest fabryczne zresetuj lub jeśli Klucz podpisywania obraca się między uninstall i
    ponowna instalacja zdarzeń.
  • ta zmiana jest wymagana tylko dla producentów urządzeń wysyłka za pomocą Usług Google Play i identyfikatora reklamowego. Inne producenci urządzeń mogą zapewnić alternatywny resetowalny ID lub nadal dostarczać Android ID.
 14
Author: userM1433372,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 13:16:07

Więc jeśli chcesz coś unikalnego dla samego urządzenia, TM.getDeviceId() powinno wystarczyć.

Oto kod, który pokazuje, jak uzyskać identyfikator Menedżera telefonii. Identyfikator urządzenia z systemem android, którego używasz, może zmienić ustawienia fabryczne, a także niektórzy producenci mają problem z nadaniem unikalnego identyfikatora.

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());

Pamiętaj, aby pobrać uprawnienia dla {[3] } za pomocą

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
 13
Author: Vincent Vettukal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-06 18:09:52

Czytałem kilka rzeczy na ten temat i niestety ANDROID_ID nie należy polegać na jednoznacznej identyfikacji pojedynczego urządzenia.

Nie wydaje się być egzekwowane w wymaganiach zgodności z Androidem, więc producenci wydają się wdrażać go tak, jak wybierają, w tym niektórzy używają go bardziej jako identyfikatora "modelu" itp.

Należy również pamiętać, że nawet jeśli producent napisał generator, aby uczynić go UUID( na przykład), nie ma gwarancji, że przetrwa reset fabryczny.

 6
Author: Squonk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-25 22:29:47

Po prostu wymień alternatywne rozwiązanie tutaj, ID Reklamy:

https://support.google.com/googleplay/android-developer/answer/6048248?hl=en

Skopiowane z linku powyżej:

Identyfikator reklamowy jest unikalnym, zresetowanym przez użytkownika identyfikatorem reklamowym dostarczanym przez usługi Google Play. Zapewnia użytkownikom lepszą kontrolę i zapewnia programistom prosty, standardowy system do dalszego zarabiania na swoich aplikacjach. Umożliwia użytkownikom Resetowanie identyfikatora lub rezygnację ze spersonalizowanych reklam (wcześniej znanych jako reklamy oparte na zainteresowaniach) w Google Play aplikacje.

Ograniczenia to:

    [[13]}Tylko urządzenia z obsługą Google Play.
  1. Polityka Prywatności: https://support.google.com/googleplay/android-developer/answer/113469?hl=en&rd=1#privacy
 1
Author: semicircle21,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-15 14:07:28
//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);
    }
Tak, Zabezpieczony.ANDROID_ID jest unikalny dla każdego urządzenia.
 0
Author: boraberka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-05 12:44:45