← Todas las extensiones

Extensión nativa

KlugDeviceId

com.klug.deviceid

NO NECESITAS APM. Descarga y disfruta. No puede ser más sencillo.

Un identificador estable por dispositivo para apps AIR en Android e iOS, leído directamente del sistema.

iOSAndroid En producción Desde €19 / año · Comprar

Resumen

Muchas apps necesitan reconocer un dispositivo: para vincularle una prueba o una licencia, para limitar el número de dispositivos por cuenta o para encontrar un dispositivo de nuevo después de que el usuario haya reinstalado la app. KlugDeviceId lee un identificador estable directamente del sistema operativo.

En Android el identificador sigue siendo el mismo después de desinstalar e instalar de nuevo la app, lo que lo convierte en un ancla a prueba de reinstalaciones. En iOS el identificador del sistema se restablece cuando se eliminan todas las apps del mismo desarrollador; para un ancla a prueba de reinstalaciones en iOS y macOS usa KlugKeychain.

KlugDeviceId se usa a diario en nuestras apps, nuestra prueba de concepto.

Funciones

  • Autónoma: una ANE, sin biblioteca central ni ANE de dependencias que añadir
  • Una sola llamada devuelve el identificador del dispositivo en Android e iOS
  • Android 8.0 y posterior: sigue siendo el mismo tras desinstalar y reinstalar la app, siempre que esté firmada con la misma clave
  • No requiere permisos
  • Devuelve una cadena vacía donde no hay identificador disponible, nunca un error

Plataformas compatibles

Android arm64 · armv7
iOS arm64

En otras plataformas isSupported devuelve false, por lo que el mismo código puede permanecer en una app multiplataforma.

Primeros pasos

Añade la extensión al descriptor de tu aplicación:

app.xml
<extensions>
    <extensionID>com.klug.deviceid</extensionID>
</extensions>

Ejemplos de código

Tres flujos completos. Los getters devuelven de inmediato, no requieren permisos y nunca lanzan excepciones: donde no hay identificador disponible devuelven una cadena vacía. Documentación completa →

1 · Leerlo una vez y enviarlo con el inicio de sesión
Login.as
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 );
}
2 · Mantener una prueba entre reinstalaciones (Android)
Trial.as
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
3 · Código multiplataforma y valores vacíos
Device.as
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 );
}

Resumen de la API

DeviceId.getInstance()Devuelve la instancia única.
isSupportedVerdadero en Android e iOS.
uniqueIdEl identificador del dispositivo de la plataforma en ejecución: ANDROID_ID en Android, identifierForVendor en iOS; una cadena vacía donde no esté disponible.
androidIdSolo el identificador de dispositivo de Android, que sigue siendo el mismo tras desinstalar y reinstalar; una cadena vacía en iOS y otras plataformas.

Compra KlugDeviceId

Una licencia anual para una aplicación AIR, con todas las actualizaciones durante 12 meses. Tras el pago recibes la extensión, la biblioteca ActionScript y la documentación por e-mail, normalmente en un día hábil. Licencia y términos

Simple
€19 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Sin soporte
Comprar Simple
Standard
€149 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Respuesta por e-mail en un plazo de 7 días
Comprar Standard
Priority
€299 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Respuesta por e-mail en un plazo de 48 horas
Comprar Priority
Link (Stripe) calcula los impuestos al pagar. Durante el pago indicas el ID de aplicación de tu app AIR.

Requisitos

AIR SDK51.x (HARMAN)
iOSiOS 17 o posterior
AndroidAndroid 6.0 (API 23) o posterior
PermisosNinguno