Yleiskatsaus
Moni sovellus tarvitsee laitteen tunnistamista: kokeilun tai lisenssin sitomiseen laitteeseen, laitteiden määrän rajoittamiseen tiliä kohden tai laitteen löytämiseen uudelleen, kun käyttäjä on asentanut sovelluksen uudelleen. KlugDeviceId lukee vakaan tunnisteen suoraan käyttöjärjestelmästä.
Androidilla tunniste pysyy samana, kun sovellus poistetaan ja asennetaan uudelleen, mikä tekee siitä uudelleenasennuksen kestävän ankkurin. iOS:llä järjestelmän tunniste nollautuu, kun saman kehittäjän kaikki sovellukset poistetaan; uudelleenasennuksen kestävää ankkuria iOS:llä ja macOS:llä varten käytä KlugKeychainia.
KlugDeviceId on päivittäisessä käytössä sovelluksissamme, todisteenamme toimivuudesta.
Ominaisuudet
- Itsenäinen: yksi ANE, ei ydinkirjastoa tai riippuvaisia ANE-laajennuksia lisättäväksi
- Yksi kutsu palauttaa laitetunnisteen Androidilla ja iOS:llä
- Android 8.0 ja uudempi: pysyy samana sovelluksen poistamisen ja uudelleenasennuksen jälkeen, kunhan se on allekirjoitettu samalla avaimella
- Lupaa ei tarvita
- Palauttaa tyhjän merkkijonon, kun tunnistetta ei ole saatavilla, ei koskaan virhettä
Tuetut alustat
Muilla alustoilla isSupported palauttaa false, joten sama koodi voi pysyä monialustaisessa sovelluksessa.
Aloitus
Lisää laajennus sovelluksesi descriptoriin:
<extensions>
<extensionID>com.klug.deviceid</extensionID>
</extensions>
Koodiesimerkit
Kolme täydellistä esimerkkiä. Getterit palaavat heti, eivät tarvitse lupaa eivätkä koskaan heitä virhettä: kun tunnistetta ei ole saatavilla, ne palauttavat tyhjän merkkijonon. Koko dokumentaatio →
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 ); }
Rajapintayleiskatsaus
| DeviceId.getInstance() | Palauttaa yksittäisen instanssin. |
| isSupported | True Androidilla ja iOS:llä. |
| uniqueId | Käynnissä olevan alustan laitetunniste: ANDROID_ID Androidilla, identifierForVendor iOS:llä; tyhjä merkkijono, kun ei saatavilla. |
| androidId | Vain Androidin laitetunniste, joka pysyy samana poiston ja uudelleenasennuksen jälkeen; tyhjä merkkijono iOS:llä ja muilla alustoilla. |
Osta KlugDeviceId
Vuosilisenssi yhdelle AIR-sovellukselle, kaikki päivitykset 12 kuukauden ajan. Maksun jälkeen saat laajennuksen, ActionScript-kirjaston ja dokumentaation sähköpostitse, yleensä yhden arkipäivän kuluessa. Lisenssi ja ehdot
- Lisenssi yhdelle AIR-sovellukselle
- Kaikki päivitykset 12 kuukauden ajan
- Ei tukea
- Lisenssi yhdelle AIR-sovellukselle
- Kaikki päivitykset 12 kuukauden ajan
- Vastaus sähköpostitse 7 päivän kuluessa
- Lisenssi yhdelle AIR-sovellukselle
- Kaikki päivitykset 12 kuukauden ajan
- Vastaus sähköpostitse 48 tunnin kuluessa
Vaatimukset
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 tai uudempi |
| Android | Android 6.0 (API 23) tai uudempi |
| Oikeudet | Ei mitään |