Überblick
Viele Apps müssen ein Gerät wiedererkennen: um eine Testphase oder Lizenz daran zu binden, die Zahl der Geräte pro Konto zu begrenzen oder ein Gerät wiederzufinden, nachdem der Nutzer die App neu installiert hat. KlugDeviceId liest eine stabile Kennung direkt aus dem Betriebssystem.
Unter Android bleibt die Kennung gleich, nachdem die App deinstalliert und erneut installiert wurde, was sie zu einem neuinstallationssicheren Anker macht. Unter iOS wird die System-Kennung zurückgesetzt, wenn alle Apps desselben Entwicklers entfernt werden; für einen neuinstallationssicheren Anker unter iOS und macOS verwenden Sie KlugKeychain.
KlugDeviceId ist in unseren Apps täglich im Einsatz, unserem Praxisbeweis.
Funktionen
- Eigenständig: eine ANE, keine Kernbibliothek und keine abhängigen ANEs, die Sie ergänzen müssten
- Ein Aufruf liefert die Geräte-Kennung unter Android und iOS
- Android 8.0 und neuer: bleibt nach dem Deinstallieren und erneuten Installieren der App gleich, solange sie mit demselben Schlüssel signiert ist
- Keine Berechtigung nötig
- Gibt einen leeren String zurück, wo keine Kennung verfügbar ist, nie einen Fehler
Unterstützte Plattformen
Auf anderen Plattformen gibt isSupported false zurück, sodass derselbe Code in einer plattformübergreifenden App bleiben kann.
Erste Schritte
Fügen Sie die Erweiterung Ihrem Application Descriptor hinzu:
<extensions>
<extensionID>com.klug.deviceid</extensionID>
</extensions>
Codebeispiele
Drei vollständige Abläufe. Die Getter kehren sofort zurück, brauchen keine Berechtigung und werfen nie eine Exception: Wo keine Kennung verfügbar ist, geben sie einen leeren String zurück. Vollständige Dokumentation →
import com.klug.deviceid.DeviceId; import flash.events.Event; import flash.net.*; // read once at start and keep it: ANDROID_ID on Android, identifierForVendor on iOS var deviceId:String = DeviceId.getInstance().uniqueId; function login( user:String, password:String ):void { var vars:URLVariables = new URLVariables(); vars.user = user; vars.password = password; vars.device = deviceId; // your server binds the licence or the push token to it var req:URLRequest = new URLRequest( "https://your.server/login" ); req.method = URLRequestMethod.POST; req.data = vars; var loader:URLLoader = new URLLoader(); loader.addEventListener( Event.COMPLETE, onLoginResult ); loader.load( req ); }
var dev:DeviceId = DeviceId.getInstance(); // Android: ANDROID_ID stays the same after uninstall and reinstall; only a // factory reset changes it. From Android 8 it is specific to your signing key. var anchor:String = dev.androidId; if ( anchor != "" ) checkTrial( anchor ); // your server: has this device used the trial before? else checkTrialOnIOS(); // iOS: androidId is always "" and identifierForVendor is // reset on uninstall, use KlugKeychain as the anchor there
import flash.utils.setTimeout; function readDeviceId():void { var dev:DeviceId = DeviceId.getInstance(); if ( !dev.isSupported ) { useOwnDesktopId(); // desktop: isSupported is false, every getter returns "" return; } var id:String = dev.uniqueId; if ( id == "" ) setTimeout( readDeviceId, 1000 ); // iOS can briefly have no value: ask again else onDeviceId( id ); }
API-Übersicht
| DeviceId.getInstance() | Gibt die einzige Instanz zurück. |
| isSupported | True unter Android und iOS. |
| uniqueId | Die Geräte-Kennung der laufenden Plattform: ANDROID_ID unter Android, identifierForVendor unter iOS; ein leerer String, wo nicht verfügbar. |
| androidId | Nur die Android-Geräte-Kennung, die nach dem Deinstallieren und erneuten Installieren gleich bleibt; ein leerer String unter iOS und auf anderen Plattformen. |
KlugDeviceId kaufen
Eine Jahreslizenz für eine AIR-Anwendung, mit allen Updates für 12 Monate. Nach der Zahlung erhalten Sie die Erweiterung, die ActionScript-Bibliothek und die Dokumentation per E-Mail, in der Regel innerhalb eines Werktags. Lizenz und Bedingungen
- Lizenz für eine AIR-Anwendung
- Alle Updates für 12 Monate
- Kein Support
- Lizenz für eine AIR-Anwendung
- Alle Updates für 12 Monate
- Antwort per E-Mail innerhalb von 7 Tagen
- Lizenz für eine AIR-Anwendung
- Alle Updates für 12 Monate
- Antwort per E-Mail innerhalb von 48 Stunden
Voraussetzungen
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 oder neuer |
| Android | Android 6.0 (API 23) oder neuer |
| Berechtigungen | Keine |