Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Gerät (IOS/Android) zwecks Lizenz identifizieren (https://www.delphipraxis.net/189444-geraet-ios-android-zwecks-lizenz-identifizieren.html)

QuickAndDirty 13. Jun 2016 18:30

Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Gibt es eine Möglichkeit IOS und Android Geräte an einem Merkmal zu identifizieren, dass von Delphi aus zugänglich ist?

Für Android wäre es in Java meist die WifiMac-Adresse. Gibt es Wrapper dafür in Delphi XE8?
Für IOS,soweit meine Recherchen, ist alles Eindeutige verboten, außer eine speziellen VendorID die leider auch nicht reproduzierbar ist... somit ausfällt.


Gibts irgend eine elegante Lösung?
Kann man etwas, z.b. eine zufällige GUID, auf einem Gerät permanent hinerlassen was in der Regel nicht wo anders hinkopiert werden kann?


Edit:
da gibts vielleicht was
http://community.embarcadero.com/ans...ce-information

RWarnecke 13. Jun 2016 18:45

AW: Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Lies doch das Betriebssystem aus. Das ist doch ein eindeutiger Unterschied. Oder was willst Du damit erreichen ?

mkinzler 13. Jun 2016 18:57

AW: Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Ich vermute mal, es geht um einen Art Kopierschutz. Da wirst Du die offiziell verfügbaren Mittel verwenden müssen (AppleID), welche allerdings keine Einschränkung auf ein einziges Gerät ermöglichen.

QuickAndDirty 13. Jun 2016 19:15

AW: Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Nun ich habe eine Lizenznummer welche mehr als ein Device lizensiert.
Ich möchte das auf dem Lizenzserver zählen können.
Alles wäre soviel einfacher wenn eine Lizenznummer genau ein Gerät lizensieren würden....
Denn eindeutige lizenznummern auszugeben ist ja machbar.

in dem oben geposteten Link habe folgende Code-schnipsel gefunden.

Sind die eurer meinung nach brauchbar?

Bei der "Android_ID" weiß ich bereits das diverse NoName/NoGoogle Tablets unterumständen alle die selbe oder keine haben können.
Also muss man bei Android mindestens ne generierte GUID und die Android_ID führen...so das im Zweifel ein unterscheidungsmerkmal da ist.

IOS hat mit der UUID eine ausreichend sichere Identifizierungsmöglichkeit.


Android
Delphi-Quellcode:
uses
 
  Androidapi.Helpers, Androidapi.JNI.Provider,
 
function GetDeviceId: string;
 
begin
 
  Result := JStringToString(TJSettings_SECURE.JavaClass.getString(SharedActivity.getContentResolver, TJSettings_SECURE.JavaClass.ANDROID_ID));
 
end;
IOS
Delphi-Quellcode:
   
uses
 
  Macapi.Helpers, iOSapi.UIKit,
 
 
 
function GetDeviceId: string;
 
var
 
  Device : UIDevice;
 
begin
 
  Device := TUIDevice.Wrap(TUIDevice.OCClass.currentDevice);
 
  Result := NSStrToStr(Device.identifierForVendor.UUIDString);
 
end;

mm1256 13. Jun 2016 21:54

AW: Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Wenn du beim ersten Programmstart auf jedem Device "einmalig" eine GUID erzeugst und "an einem sicheren Ort auf dem Device" abspeicherst, dann hast du doch eine eindeutige Identifikation, die auch nicht verloren gehen dürfte, wenn der User die App wieder deinstalliert und neu installiert. So mache ich es jedenfalls mit Windows. Ob das 1:1 auf Android/IOS auch so funktioniert, weiß ich mangels Erfahrung leider nicht. Denke aber, es müsste machbar sein.

QuickAndDirty 13. Jun 2016 23:17

AW: Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Dessen bin ich mir bewusst.
Leider weiß ich nicht wie ich diesen Sicheren Ort finde in Android und IOS. Die meisten Apps laufen in einer Sandbox und können in den neusten Versionen von z.b. Android. garnicht mehr in Verzeichnisse zugreifen die außerhalb der Sandbox liegen.

In IOS gibt es wohl sowas wie KeyChain-Services. Ich habe mich darüber noch nicht genau informiert aber es könnte ein globaler Schlüsselbund sein um Passörter sicher zu speichern...da könnte man dann evtl. etwas hinterlegen...
https://developer.apple.com/library/...0897-CH204-TP9

QuickAndDirty 14. Jun 2016 09:25

AW: Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Kann ich ein Zertifiakt im AndroidKeystore hinterlegen und den verifizierungsschlüssel im moment des erzeugens an den Lizenzserver senden?
Oder ist das etwas anderes?
https://developer.android.com/traini.../keystore.html

bra 14. Jun 2016 09:25

AW: Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Zitat:

Zitat von mm1256 (Beitrag 1340060)
Wenn du beim ersten Programmstart auf jedem Device "einmalig" eine GUID erzeugst und "an einem sicheren Ort auf dem Device" abspeicherst, dann hast du doch eine eindeutige Identifikation, die auch nicht verloren gehen dürfte, wenn der User die App wieder deinstalliert und neu installiert. So mache ich es jedenfalls mit Windows. Ob das 1:1 auf Android/IOS auch so funktioniert, weiß ich mangels Erfahrung leider nicht. Denke aber, es müsste machbar sein.

Keine Chance unter iOS und Android ab Version 5. Jede App darf dort nur auf ihren eigenen Userspace zugreifen, was auch gut so ist.

QuickAndDirty 14. Jun 2016 09:57

AW: Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Bei Apple gibt es ja eine sichere Erkennungsmethode.
Ich bräuchte nen "ORT" in Android oder einen Dienst wo ich eine ID/Zertifikat/Whatever speichern kann um das Gerät zu markieren. Wichtig ist das der Ort nicht für einen mittelmäßig versierten Leser von XDA-developers der APP zugeordnet werden kann. Die Markierung darf niemals auf einem anderen Gerät landen.

bra 14. Jun 2016 10:04

AW: Gerät (IOS/Android) zwecks Lizenz identifizieren
 
Helfen da eventuell die SharedPreferences weiter? Ich meine, die bleiben auch nach Deinstallation der App bestehen (bin mir aber nicht sicher):
https://developer.android.com/refere...eferences.html

Ansonsten wäre vielleicht noch eine Möglichkeit die IMEI, sofern man an die rankommt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr.
Seite 1 von 4  1 23     Letzte » 

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