Android Gerät eindeutig identifizieren

Für einen App Entwickler stellen sich bei der Konzeption für Apps bereits einige wichtige Fragen. Eine davon: Ist es möglich ein Android Gerät eindeutig zu identifizieren?

Android Gerät eindeutig identifizieren

DiAndroid Gerät eindeutig identifizierene Frage die man sich stellen sollte: Warum benötige ich eine eindeutige Identifizierung? Die Antwort ist recht einfach. Mit diese könnte man sich den Login ersparen. Einen Login braucht man immer dann, wenn die App in irgend einer Art und Weise Daten außerhalb des Gerät speichern will. Man denke hier an einfache Cloud Dienste bis hin zu Spiele die Ihre Highscorelisten auf einem Server speichern. Für einfache Anwendungen wäre es für die Usability der App sehr hinderlich sich erst jedes mal mit eMail und Passwort anzumelden.

Problem

Das Problem ist, dass es viele Möglichkeiten gibt ein Gerät eindeutig zu identifizieren, jedoch man nicht wissen kann, welche davon auch für das aktuelle Gerät die beste Lösung ist. Tatsächlich ist es sogar so, dass durch die große Anzahl unterschiedlicher Hardware man keine dieser Lösungen als allgemein gültig bezeichnen kann.

  • ANDROID_ID
    Die Android ID erhält man über Settings.Secure.ANDROID_ID. Das ist eine eindeutige Nummer die das Android Gerät beim ersten einschalten generiert. Das Problem: es ist nicht garantiert, dass es diese Nummer vor Android 2.2 gibt, außerdem kann man diese bei einem gerootetem Gerät ändern.
  • Seriennummer
    Kann mit android.os.Build.SERIAL aufgerufen werden. Jedoch erst seit Android 2.3.
  • MAC Adresse
    Die MAC Adresse ist eine gute Idee, da diese für jede Netzwerkschnittstelle eindeutig sein muss. Diese kann man sowohl für die WiFi als auch für die Bluetooth Schnittstelle abfragen. Einziger Nachteil: es kann vorkommen, dass ein Gerät keins von beiden besitzt, oder dass die Funktion der Schnittstelle vom Benutzer über Android deaktiviert wurde.

Wie man hier sieht tut man sich schwer hier eine universal eindeutige Lösung zu finden. Es gibt aber einen kleinen Trick!

Lösung

Die Lösung ist, wir erstellen uns selber eine eindeutige Nummer. Das Ganze identifiziert dann nicht das Android Gerät, sondern die Installation am Android Gerät. Dies ist für uns Entwickler natürlich die viel bessere Lösung.

In dieser Installation Klasse gibt es eine statische ID Variable die über die beiden Funktionen entweder geschrieben, oder ausgelesen wird. Je nachdem ob die Datei existiert oder nicht, sollte also bei der erstmaligen Installation erstellt und dann nur noch ausgelesen werden. Und genau diese Eigenschaft suchen wir!

Dieser Code ist vom Android-Developers Blog und sollte DIE Lösung für das Problem sein, denn auch auf zB. stackoverflow ist dieses Thema heiß diskutiert und bringt auch keine eindeutige Lösung (aus meiner Sicht).

Ich hoffe dieser Artikel hilft, mir hat das bei der Konzeption meiner App geholfen.

(Visited 2.585 times, 1 visits today)

Das könnte auch interessant sein...

1 Antwort

  1. Super Artikel, vielen Dank, wenn ich das einmal brauche kann ich darauf zurückgreifen.

    Eine kleine Frage: kann man auch ev. die Google Email Adresse herausfinden?

    lg
    Alexander Predl

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.