AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi 10.3.3 Android 10

Ein Thema von Chaosfreak · begonnen am 7. Feb 2020 · letzter Beitrag vom 20. Feb 2020
Antwort Antwort
Chaosfreak

Registriert seit: 25. Jan 2005
6 Beiträge
 
#1

Delphi 10.3.3 Android 10

  Alt 7. Feb 2020, 12:55
Hallo,

ich habe ein Problem beim Auslesen der IMEI eines Smartphones auf Geräten mit Android 10.
Die Methode getIMEI() des TelephonyManager liefert mir zwar eine Nummer, diese stimmt aber nicht der IMEI überein. Bis Android 9 funktionierte das alles noch.

Aus der Dokumentation geht hervor das ab API-Level 26 die Berechtigung READ_PRIVILEGED_PHONE_STATE dafür notwendig ist. Ich finde die aber in Delphi 10.3.3 nicht.

Hat evt. jemand das gleich Problem?
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
239 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 10.3.3 Android 10

  Alt 7. Feb 2020, 13:25
Hier ist der Grund dafür.

Kurz gesagt hat sich Android entschieden, bestimmte Geräteinformationen hinter einer privilegierten Berechtigung zu verstecken, welche nur unter bestimmten Umständen gewährt wird, welche unter dem Link zu finden sind.

Du müsstest also mal gucken, inwiefern das bei deiner App erreichbar ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi 10.3.3 Android 10

  Alt 7. Feb 2020, 14:07
Vielleicht kennt Delphi das neue READ_PRIVILEGED_PHONE_STATE noch nicht?

Ich glaub man konnte sowas aber auch irgendwie direkt in irgendeine Datei eintragen, auch wenn es GUI selber das noch nicht kann.


Kurz gesagt hat sich Android entschieden
Das hier betrifft den Datenschutz und geht auch in Richtung Tracking-Schutz.

Es ist auch gut so, dass die Sicherheit weiter verbessert wird. (OK, auch wenn Google/Android standardmäßig selbst auch noch zuviele Infos abgreift)
Auch schön, dass man, gegenüber älteren Androids, inzwischen Anwendungen auch geziehlt Rechte wegnehmen und teilweise durch "Dummies" ersetzen kann,
bzw. die Anwendung nicht nur installieren kann, nachdem man alles gewehrt hat, was so manche Anwendung verlangt. (obwohl es für deren "eigentliche" Funktion garnicht "nötig" ist)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Feb 2020 um 14:12 Uhr)
  Mit Zitat antworten Zitat
Chaosfreak

Registriert seit: 25. Jan 2005
6 Beiträge
 
#4

AW: Delphi 10.3.3 Android 10

  Alt 7. Feb 2020, 14:20
Danke! Wir haben die IMEI bisher zu Lizenzzwecken genutzt. Ich werde das wohl umbauen und eine eigene Id erzeugen. Damit sind auch die Berechtigungen nicht mehr notwendig.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi 10.3.3 Android 10

  Alt 7. Feb 2020, 14:31
Ist die Dummy-IMEI denn bei allen Geräten gleich, oder bekommst du dort für Gerät/Benutzer dennoch was Unterschiedliches?
(maximal bei Erstellen eines Users bzw. Einrichtung des Gerätes oder bei Erstinstallation deiner App zufällig erstellt)

Dann brauchst ja selbst nichts Eigenes zu erfinden und kannst die Nummer weiterhin verwenden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
857 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Delphi 10.3.3 Android 10

  Alt 7. Feb 2020, 15:18
Zitat:
Ich glaub man konnte sowas aber auch irgendwie direkt in irgendeine Datei eintragen, auch wenn es GUI selber das noch nicht kann.
In der Delphi-IDE unbekannte Permissions kann man wahrscheinlich in der Datei AndroidManifest.template.xml eintragen (hier ist die zweite Zeile eingefügt):
Code:
   
    <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
    <uses-permission android:name="android.permission.XYZ" />
    <%uses-permission%>
Bei MacOS gibt es definitiv mir bekannte Permissions für die man dies tun muss.
Ich empfehle immer zusätzlich ein Ticket bei https://quality.embarcadero.com aufzumachen, damit EMBT diese Permission in der IDE einfügt.

Und ich nutze aktuell die folgende Implementierung um eine ID für die Lizenz zu erzeugen:
Delphi-Quellcode:
    result := JStringToString(TJSettings_Secure.JavaClass.getString(TAndroidHelper.Activity.getContentResolver,TJSettings_Secure.JavaClass.ANDROID_ID));
    if (result = '') then
      result:=JStringToString(TJBuild.JavaClass.SERIAL);

Geändert von philipp.hofmann ( 7. Feb 2020 um 15:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Delphi 10.3.3 Android 10

  Alt 7. Feb 2020, 15:51
Bitte formuliere den Titel so, dass er etwas über dein Problem oder Frage aussagt. Der jetzige lässt keinerlei Rückschlüsse auf dein Problem.

Editiere dazu deinen ersten Beitrag und klicke auf "Erweitert", um den Titel zu editieren.

Vielen Dank.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#8

AW: Delphi 10.3.3 Android 10

  Alt 20. Feb 2020, 12:20
Falls es dir um das Tracken des Gerätes geht. Das möchte man nicht so gerne und es geht auch echt schwer...Insbesondere manche China-Tabletts haben zum Teil alle die selbe IMEI oder Seriennummer. IMEI und Telefonnummer fallen weg, wenn das Gerät nicht telefonieren kann.
Relativ zuverlässig war mal die WLAN-Macadresse, aber da gibts auch Chinageräte mit identischen W-LAN Macadressen.
Das Einzige was wirklich trackbar ist, ist die Installation der Instanz deiner App mittels UUID von Android...
Deshalb benutze ich plattformübergreifend ein Verfahren, das eine ID von unserem Server generieren lässt und speichert. Dann braucht man für einen ID-Wechsel zwar nur die Daten der App löschen, aber man hat ein identisches Verfahren auf allen Plattformen.

Wenn man zur ID noch einen Handshake mit TAN-Austausch ausführt, dann kann mann sogar Kopien von IDs erkennen und sie deaktivieren.
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (20. Feb 2020 um 13:33 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 Uhr.
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