Oversikt
Mange apper må gjenkjenne en enhet: for å knytte en prøveperiode eller en lisens til den, for å begrense antall enheter per konto, eller for å finne en enhet igjen etter at brukeren har installert appen på nytt. KlugDeviceId leser en stabil identifikator direkte fra operativsystemet.
På Android forblir identifikatoren den samme etter at appen er avinstallert og installert på nytt, noe som gjør den til et ankerpunkt som tåler ny installasjon. På iOS nullstilles systemidentifikatoren når alle apper fra samme utvikler fjernes; for et ankerpunkt som tåler ny installasjon på iOS og macOS bruker du KlugKeychain.
KlugDeviceId brukes daglig i appene våre, vårt proof of concept.
Funksjoner
- Selvstendig: én ANE, ingen kjernebibliotek eller avhengige ANE-er å legge til
- Ett kall returnerer enhetsidentifikatoren på Android og iOS
- Android 8.0 og nyere: forblir den samme etter avinstallering og ny installasjon av appen, så lenge den er signert med samme nøkkel
- Ingen tillatelse nødvendig
- Returnerer en tom streng der ingen identifikator er tilgjengelig, aldri en feil
Støttede plattformer
På andre plattformer returnerer isSupported false, slik at den samme koden kan bli værende i en plattformuavhengig app.
Kom i gang
Legg utvidelsen til i applikasjonsbeskrivelsen din:
<extensions>
<extensionID>com.klug.deviceid</extensionID>
</extensions>
Kodeeksempler
Tre komplette flyter. Gettere returnerer med en gang, trenger ingen tillatelse og kaster aldri en feil: der ingen identifikator er tilgjengelig, returnerer de en tom streng. Full dokumentasjon →
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-oversikt
| DeviceId.getInstance() | Returnerer den ene instansen. |
| isSupported | True på Android og iOS. |
| uniqueId | Enhetsidentifikatoren til plattformen som kjører: ANDROID_ID på Android, identifierForVendor på iOS; en tom streng der den ikke er tilgjengelig. |
| androidId | Bare Android-enhetsidentifikatoren, som forblir den samme etter avinstallering og ny installasjon; en tom streng på iOS og andre plattformer. |
Kjøp KlugDeviceId
En årslisens for én AIR-applikasjon, med alle oppdateringer i 12 måneder. Etter betaling mottar du utvidelsen, ActionScript-biblioteket og dokumentasjonen på e-post, vanligvis innen én virkedag. Lisens og vilkår
- Lisens for én AIR-applikasjon
- Alle oppdateringer i 12 måneder
- Ingen støtte
- Lisens for én AIR-applikasjon
- Alle oppdateringer i 12 måneder
- Svar på e-post innen 7 dager
- Lisens for én AIR-applikasjon
- Alle oppdateringer i 12 måneder
- Svar på e-post innen 48 timer
Krav
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 eller nyere |
| Android | Android 6.0 (API 23) eller nyere |
| Tillatelser | Ingen |