← Todas as extensões

Extensão nativa

KlugDeviceId

com.klug.deviceid

NÃO É NECESSÁRIO APM. Baixe e aproveite. Não tem como ser mais simples.

Um identificador estável por dispositivo para apps AIR no Android e iOS, lido diretamente do sistema.

iOSAndroid Em produção A partir de €19 / ano · Comprar

Visão geral

Muitos apps precisam reconhecer um dispositivo: para vincular um teste ou uma licença a ele, limitar o número de dispositivos por conta ou encontrar um dispositivo de novo depois que o usuário reinstalou o app. O KlugDeviceId lê um identificador estável diretamente do sistema operacional.

No Android, o identificador continua o mesmo depois que o app é desinstalado e instalado de novo, o que o torna uma âncora à prova de reinstalação. No iOS, o identificador do sistema é redefinido quando todos os apps do mesmo desenvolvedor são removidos; para uma âncora à prova de reinstalação no iOS e macOS, use o KlugKeychain.

O KlugDeviceId é usado diariamente em nossos apps, nossa prova de conceito.

Recursos

  • Autossuficiente: uma ANE, sem biblioteca principal nem ANEs de dependência para adicionar
  • Uma única chamada retorna o identificador do dispositivo no Android e iOS
  • Android 8.0 e posterior: continua o mesmo após desinstalar e reinstalar o app, desde que ele seja assinado com a mesma chave
  • Nenhuma permissão necessária
  • Retorna uma string vazia onde nenhum identificador está disponível, nunca um erro

Plataformas compatíveis

Android arm64 · armv7
iOS arm64

Em outras plataformas, isSupported retorna false, de modo que o mesmo código pode permanecer em um app multiplataforma.

Primeiros passos

Adicione a extensão ao descritor do seu aplicativo:

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

Exemplos de código

Três fluxos completos. Os getters retornam imediatamente, não exigem permissão e nunca lançam exceção: onde nenhum identificador está disponível, retornam uma string vazia. Documentação completa →

1 · Ler uma vez e enviar junto com o login
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 · Manter um teste entre reinstalações (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 e valores vazios
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 );
}

Visão geral da API

DeviceId.getInstance()Retorna a instância única.
isSupportedVerdadeiro no Android e iOS.
uniqueIdO identificador do dispositivo da plataforma em execução: ANDROID_ID no Android, identifierForVendor no iOS; uma string vazia onde não está disponível.
androidIdSomente o identificador de dispositivo do Android, que continua o mesmo após desinstalar e reinstalar; uma string vazia no iOS e em outras plataformas.

Compre o KlugDeviceId

Uma licença anual para um app AIR, com todas as atualizações por 12 meses. Após o pagamento, você recebe a extensão, a biblioteca ActionScript e a documentação por e-mail, normalmente em até um dia útil. Licença e termos

Simples
€19 / ano
  • Licença para um app AIR
  • Todas as atualizações por 12 meses
  • Sem suporte
Comprar Simples
Padrão
€149 / ano
  • Licença para um app AIR
  • Todas as atualizações por 12 meses
  • Resposta por e-mail em até 7 dias
Comprar Padrão
Prioritário
€299 / ano
  • Licença para um app AIR
  • Todas as atualizações por 12 meses
  • Resposta por e-mail em até 48 horas
Comprar Prioritário
Os impostos são calculados no checkout pelo Link (Stripe). Você informa o ID do aplicativo do seu app AIR durante o checkout.

Requisitos

AIR SDK51.x (HARMAN)
iOSiOS 17 ou posterior
AndroidAndroid 6.0 (API 23) ou posterior
PermissõesNenhuma