Trabalho com informações de tempo de execução do AIR e de sistema operacional

Adobe AIR 1.0 e posterior

Essa seção discute formas através das quais um aplicativo do AIR pode gerenciar as associações do arquivo do sistema operacional, detectar a atividade do usuário e obter informações sobre o tempo de execução do Adobe® AIR®.

Gerenciamento de associações de arquivos

Associações entre seu aplicativo e um tipo de arquivo devem ser declaradas no descritor do aplicativo. Durante o processo de instalação, o instalador do aplicativo do AIR associa o aplicativo do AIR como o aplicativo de abertura padrão para cada um dos tipos de arquivo declarados, a menos que outro aplicativo já seja o padrão. O processo de instalação do aplicativo do AIR não substitui uma associação de tipo de arquivo existente. Para se apoderar da associação de outro aplicativo, chame o método NativeApplication.setAsDefaultApplication() no tempo de execução.

Constitui boa prática verificar se as associações de arquivos esperadas estão em vigor quando seu aplicativo inicializar Isso porque o instalador do aplicativo do AIR não sobrescreve associações de arquivo existentes e porque associações de arquivo em um sistema de usuário podem mudar a qualquer momento. Quando outro aplicativo tem a associação de arquivo atual, também é boa prática solicitar ao usuário antes de se apoderar de uma associação existente.

Os métodos seguintes da classe NativeApplication permitem que um aplicativo gerencie associações de arquivos. Cada um dos métodos toma a extensão de tipo de arquivo como um parâmetro:

Método

Descrição

isSetAsDefaultApplication()

Retorna true se o aplicativo do AIR está associado atualmente ao tipo de arquivo especificado.

setAsDefaultApplication()

Cria a associação entre o aplicativo do AIR e a ação aberta do tipo de arquivo.

removeAsDefaultApplication()

Remove a associação entre o aplicativo do AIR e o tipo de arquivo.

getDefaultApplication()

Reporta o caminho do aplicativo que está associado atualmente ao tipo de arquivo.

O AIR só pode gerenciar associações para os tipos de arquivo originalmente declarados no descritor do aplicativo. Você não pode obter informações sobre as associações de um tipo de arquivo não declarado, mesmo que um usuário tenha criado manualmente a associação entre esse tipo de arquivo e seu aplicativo. Chamar algum dos métodos de gerenciamento de associação de arquivo com a extensão de um tipo de arquivo não declarado no descritor do aplicativo faz com que o aplicativo lance uma exceção de tempo de execução.

Obtenção da versão do tempo de execução e do nível de patch

O objeto NativeApplication tem uma propriedade runtimeVersion , que é a versão do tempo de execução em que o aplicativo está sendo executado (uma string, como "1.0.5" ). O objeto NativeApplication também tem uma propriedade runtimePatchLevel , que é o nível de patch do tempo de execução (um número, como 2960). O código seguinte usa estas propriedades:

trace(NativeApplication.nativeApplication.runtimeVersion); 
trace(NativeApplication.nativeApplication.runtimePatchLevel); 

Detecção de recursos do AIR

Para um arquivo que esteja reunido com o aplicativo Adobe AIR, a propriedade Security.sandboxType está definida como o valor definido pela constante Security.APPLICATION . Você pode carregar o conteúdo (que pode ou não conter APIs específicas ao AIR) baseado em um arquivo estar na caixa de proteção de segurança do Adobe AIR, como ilustrado no código seguinte:

if (Security.sandboxType == Security.APPLICATION) 
{ 
    // Load SWF that contains AIR APIs 
} 
else 
{ 
    // Load SWF that does not contain AIR APIs 
} 

Todos os recursos não instalado com o aplicativo do AIR são atribuídos às mesmas caixas de proteção de segurança como seriam atribuídos pelo Adobe® Flash® em um navegador da Web. Recursos remotos são colocados em caixas de proteção, de acordo com seus domínios de origem, e recursos locais são colocados na caixa de proteção local com rede, local com sistema de arquivos ou local confiável.

Você pode verificar se a propriedade estática Capabilities.playerType está definida como "Desktop" para ver se o conteúdo está sendo executado no tempo de execução (e não em execução no Flash Player em execução em um navegador).

Para obter mais informações, consulte Segurança do AIR .

Rastreamento de presença do usuário

O objeto NativeApplication despacha dois eventos que o ajudam a detectar quando o usuário está usando o computador ativamente. Se não for detectada nenhuma atividade do mouse nem do teclado no intervalo de tempo determinado pela propriedade NativeApplication.idleThreshold , o NativeApplication despacha um evento userIdle . Quando ocorrer a próxima entrada de mouse ou teclado, o objeto NativeApplication despachará um evento userPresent . O intervalo idleThreshold é medido em segundos e tem um valor padrão de 300 (5 minutos). Você também ode obter o número de segundos desde a última entrada de usuário da propriedade NativeApplication.nativeApplication.lastUserInput .

As linhas seguintes de código definem o limite de ociosidade para 2 minutos e ouvem tanto eventos userIdle como userPresent :

NativeApplication.nativeApplication.idleThreshold = 120; 
NativeApplication.nativeApplication.addEventListener(Event.USER_IDLE, function(event:Event) { 
    trace("Idle"); 
}); 
NativeApplication.nativeApplication.addEventListener(Event.USER_PRESENT, function(event:Event) { 
    trace("Present"); 
}); 
Nota: Apenas um único evento userIdle é despachado entre quaisquer dois eventos userPresent .