Översikt
Många appar behöver känna igen en enhet: för att knyta en provperiod eller licens till den, för att begränsa antalet enheter per konto eller för att hitta en enhet igen efter att användaren installerat om appen. KlugDeviceId läser en stabil identifierare direkt från operativsystemet.
På Android förblir identifieraren densamma efter att appen avinstallerats och installerats igen, vilket gör den till ett ankare som överlever ominstallation. På iOS återställs systemets identifierare när alla appar från samma utvecklare tas bort; för ett ankare som överlever ominstallation på iOS och macOS använder du KlugKeychain.
KlugDeviceId används dagligen i våra appar, vårt proof of concept.
Funktioner
- Fristående: ett ANE, inget kärnbibliotek eller beroende-ANE:er att lägga till
- Ett anrop returnerar enhetens identifierare på Android och iOS
- Android 8.0 och senare: förblir densamma efter att appen avinstallerats och installerats om, så länge den är signerad med samma nyckel
- Ingen behörighet behövs
- Returnerar en tom sträng där ingen identifierare finns, aldrig ett fel
Plattformar som stöds
På andra plattformar returnerar isSupported false, så att samma kod kan ligga kvar i en plattformsoberoende app.
Kom igång
Lägg till tillägget i din applikationsbeskrivning (application descriptor):
<extensions>
<extensionID>com.klug.deviceid</extensionID>
</extensions>
Kodexempel
Tre kompletta flöden. Getters returnerar direkt, kräver ingen behörighet och kastar aldrig undantag: där ingen identifierare finns returnerar de en tom sträng. Fullständig 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-översikt
| DeviceId.getInstance() | Returnerar den enda instansen. |
| isSupported | True på Android och iOS. |
| uniqueId | Enhetsidentifieraren för den plattform som körs: ANDROID_ID på Android, identifierForVendor på iOS; en tom sträng där den inte finns. |
| androidId | Endast Android-enhetens identifierare, som förblir densamma efter avinstallation och ominstallation; en tom sträng på iOS och andra plattformar. |
Köp KlugDeviceId
En årslicens för en AIR-applikation, med alla uppdateringar i 12 månader. Efter betalning får du tillägget, ActionScript-biblioteket och dokumentationen via e-post, vanligtvis inom en arbetsdag. Licens och villkor
- Licens för en AIR-applikation
- Alla uppdateringar i 12 månader
- Ingen support
- Licens för en AIR-applikation
- Alla uppdateringar i 12 månader
- Svar via e-post inom 7 dagar
- Licens för en AIR-applikation
- Alla uppdateringar i 12 månader
- Svar via e-post inom 48 timmar
Krav
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 eller senare |
| Android | Android 6.0 (API 23) eller senare |
| Behörigheter | Inga |