Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Android Device ID ermitteln (https://www.delphipraxis.net/214849-android-device-id-ermitteln.html)

Rued 19. Mär 2024 12:57

Android Device ID ermitteln
 
Hallo!

Ich versuche mittels Android Device ID ein Gerät eindeutig zu identifizieren.

Delphi-Quellcode:
JStringToString(TJSettings_Secure.JavaClass.getString(TAndroidHelper.Activity.getContentResolver,TJSettings_Secure.JavaClass.ANDROID_ID));


Der Code liefert mir bei meinem Handy eine 16-stellige Zeichenfolge, die mich zweifeln lässt: efc30e241....

Da die Einstellungen meines Handys die Android-ID nicht gucken lassen, habe ich mir die App DeviceID heruntegeladen. Sie liefert mir für dasselbe Handy ebenfalls eine 16-stellige Zeichenfolge, die wie folgt beginnt: 382397869...

Ich weiß weder welche Ziffernfolge korrekt ist noch wie ich an die ID rankomme, wenn meine Methode zum falschen Ergebnis führt, wovon ich ausgehe.

Weiß jemand Rat?

Gruß
Rüd

himitsu 19. Mär 2024 13:41

AW: Android Device ID ermitteln
 
Es gibt noch die WerbeID, welche man auslesen konnte, falls der Zurgiff nicht verweigert wird.
Wenn es eine Telefonnummer gibt, könntest du Diese auslesen, falls Zugriff erlaubt wurde.


Es gibt aber kaume eine eindeutige ID.

Auch kann es sein, dass verschiedene Programme andere "IDs" genannt bekommen,
sowie nach deinstallieren und neuinstallation dein Programme eine neue ID bekommt
und es kann auch passieren, dass sie diese "ID" sich mal ändert. (kann der User für viele "IDs" anordnen)


Es wird absichtlich durch Android verhindert, dass man Nutzer nachverfolgen kann, schon garnicht programmübergreifend.

Rued 19. Mär 2024 14:12

AW: Android Device ID ermitteln
 
Zitat:

Zitat von himitsu (Beitrag 1534834)
Es gibt noch die WerbeID, welche man auslesen konnte, falls der Zurgiff nicht verweigert wird.
Wenn es eine Telefonnummer gibt, könntest du Diese auslesen, falls Zugriff erlaubt wurde.

Es gibt aber kaume eine eindeutige ID.

Auch kann es sein, dass verschiedene Programme andere "IDs" genannt bekommen,
sowie nach deinstallieren und neuinstallation dein Programme eine neue ID bekommt
und es kann auch passieren, dass sie diese "ID" sich mal ändert. (kann der User für viele "IDs" anordnen)

Es wird absichtlich durch Android verhindert, dass man Nutzer nachverfolgen kann, schon garnicht programmübergreifend.

Es scheint so, dass ab Android 10 die Android-ID nicht abgefragt werden kann. Mir geht es lediglich um die Identifizierung eines Geräts, um eine App nur für dieses Gerät freischalten zu können.
Wie komme ich denn an die Werbe-ID?

alex517 19. Mär 2024 15:37

AW: Android Device ID ermitteln
 
Hi,

hilft dir das weiter..
Zitat:

Auf Android 8.0 (API-Level 26) und höheren Versionen der Plattform eine 64-Bit-Zahl (ausgedrückt als hexadezimale Zeichenfolge), die für jede Kombination aus App-Signaturschlüssel, Benutzer und Gerät eindeutig ist. Die Werte von ANDROID_ID werden durch den Signaturschlüssel und den Benutzer festgelegt. Der Wert kann sich ändern, wenn das Gerät auf die Werkseinstellungen zurückgesetzt wird oder wenn sich ein APK-Signaturschlüssel ändert.
https://developer.android.com/refere...ure#ANDROID_ID


Die Abfrage der ANDROID_ID funktioniert in unserer JAVA-App auch für Android >= 10.

alex

QuickAndDirty 19. Mär 2024 15:55

AW: Android Device ID ermitteln
 
Wenn es Dir um das Identifizieren von geräten geht. Ich habe es aufgegeben (da gabs aber noch keine Werbe-ID).
Die Macadresse des WLAN adapters sollte unique sein, dachte ich, kann aber manuel geändert werden und wir haben China Tablets gesehen die alle die selbe WLan-MAC hatten.
Mobiledaten, Telefonnummer &c. hat nicht jedes Gerät.
Es gibt Android Versionen, welche die Android-ID nicht preisgeben.
UUID wird bei jeder Installation neuerzeugt.
Letzten Endes habe ich mich dafür entschieden dass meine APP beim ersten Kontakt eine ID vom Server anfordert und die APP über diese ID verwaltet wird, so dass es zu Problemen kommt wenn man die ID kopieren würde.

Kas Ob. 19. Mär 2024 17:09

AW: Android Device ID ermitteln
 
Hi,

I don't have experience with this library, but it had been recommended from people who know more than me on this matter, even with the opensource version (not paid pro) they said it is reliable.
https://github.com/trustdecision/trustdevice-android

And please if you test it with your hardware then will be nice to share your opinion and experience with the rest of us here, i mean how to use it with Delphi and it did perform.

himitsu 19. Mär 2024 17:34

AW: Android Device ID ermitteln
 
Wenn es nur darum geht die Installation zu erkennen, würde die ANDROID_ID schon reichen,
ansonsten könntest du dir auch selbst beim ersten Programmstart eine ID generieren (Delphi-Referenz durchsuchenTGUID.NewGuid) und speichern, wenn noch nichts gespeichert wurde.

Jenachdem wo diese ID gepspeichert wurde, würde sie Backups und Wiederhersellung überleben. (aber natürlich auch ein Kopieren der Anwendung+Daten)

philipp.hofmann 19. Mär 2024 21:27

AW: Android Device ID ermitteln
 
Also ich komme mit der von dir genannten ID gut hin und kann die Geräte langfristig zuordnen, habe aber noch die folgende Alternative implementiert:

Delphi-Quellcode:
    result := JStringToString(TJSettings_Secure.JavaClass.getString(
         TAndroidHelper.Activity.getContentResolver,TJSettings_Secure.JavaClass.ANDROID_ID));
    if (result = '') then
      result:=JStringToString(TJBuild.JavaClass.SERIAL);

Rued 20. Mär 2024 06:28

AW: Android Device ID ermitteln
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1534857)
Also ich komme mit der von dir genannten ID gut hin und kann die Geräte langfristig zuordnen, habe aber noch die folgende Alternative implementiert:

Delphi-Quellcode:
    result := JStringToString(TJSettings_Secure.JavaClass.getString(
         TAndroidHelper.Activity.getContentResolver,TJSettings_Secure.JavaClass.ANDROID_ID));
    if (result = '') then
      result:=JStringToString(TJBuild.JavaClass.SERIAL);

So sieht auch bei mir der Code komplett aus. Die AID-Abfrage liefert oben angerissene Zeichenfolge die serial-Abfrage liefert "unknown".

MyRealName 20. Mär 2024 06:57

AW: Android Device ID ermitteln
 
Wenn Du Deine App Installation für Firebase anmeldest, kriegst von Google auch eine eindeutige ID, die Dein Handy + augenblickliche Installation identifiziert. Aber wenn DU das Handy resettest, wird die, soweit ich weiss, neu vergeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz