Trabajo con información sobre el motor de ejecución de AIR y el sistema operativo

Adobe AIR 1.0 y posterior

En esta sección se discuten las formas en que una aplicación de AIR puede gestionar la asociación con archivos del sistema operativo, detectar la actividad de los usuarios y obtener información sobre el motor de ejecución de Adobe® AIR™.

Gestión de asociaciones con archivos

Las asociaciones entre la aplicación y un tipo de archivo deben declararse en el descriptor de la aplicación. Durante el proceso de instalación el programa de instalación de la aplicación de AIR asocia esta como aplicación de apertura predeterminada para cada uno de los tipos de archivos declarados, a menos que otra aplicación ya sea la predeterminada. El proceso de instalación de la aplicación de AIR no suprime ninguna asociación de tipo de archivo existente. Para hacerse cargo de una asociación que antes era con otra aplicación, llame al método NativeApplication.setAsDefaultApplication() durante el tiempo de ejecución.

Conviene siempre verificar que las asociaciones con archivos esperadas estén establecidas cuando se inicia la aplicación. El motivo es que el programa de instalación de la aplicación de AIR no suprime las asociaciones de archivos existentes, y además las asociaciones de archivos del sistema del usuario pueden cambiar en cualquier momento. Cuando hay otra aplicación asociada con el archivo actual, es además buena educación pedir permiso al usuario antes de sustituir una asociación existente por otra.

Los siguientes métodos de la clase NativeApplication permiten que una aplicación gestione las asociaciones de archivos. Cada uno de los métodos toma como parámetro la extensión del tipo de archivo:

Método

Descripción

isSetAsDefaultApplication()

Devuelve un valor de "true" si la aplicación de AIR está asociada con el tipo de archivo especificado.

setAsDefaultApplication()

Crea la asociación entre la aplicación de AIR y la acción de abrir del tipo de archivo.

removeAsDefaultApplication()

Elimina la asociación entre la aplicación de AIR y el tipo de archivo.

getDefaultApplication()

Notifica la ruta de la aplicación que está asociada con el tipo de archivo.

AIR solo puede manejar asociaciones para los tipos de archivos originalmente declarados en el descriptor de la aplicación. No se puede obtener información sobre las asociaciones de un tipo de archivo no declarado, aunque el usuario haya creado manualmente la asociación entre ese tipo de archivo y la aplicación. Si se llama a cualquiera de los métodos de gestión de asociaciones con archivos con la extensión de un tipo de archivo que no está declarado en el descriptor de la aplicación, esta emitirá una excepción del motor de ejecución.

Obtención de la versión y el nivel de revisión del motor de ejecución

El objeto NativeApplication tiene una propiedad runtimeVersion que es la versión del motor de ejecución en que se ejecuta la aplicación (una cadena, por ejemplo "1.0.5" ). El objeto NativeApplication tiene también una propiedad runtimePatchLevel que es el nivel de revisión del motor de ejecución (un número, por ejemplo 2960). El código que sigue utiliza estas propiedades:

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

Detección de las capacidades de AIR

Para un archivo integrado en la aplicación de Adobe AIR, la propiedad Security.sandboxType tiene un valor definido por la constante Security.APPLICATION . Se puede cargar contenido (que puede o no contener API específicas de AIR) según esté un archivo en el entorno limitado de seguridad de Adobe AIR, como se muestra en el código siguiente:

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

Todos los recursos que no se instalan con la aplicación de AIR se asignan a los mismos entornos limitados de seguridad que asignaría Adobe® Flash® Player en un navegador web. Los recursos remotos se ponen en entornos limitados de acuerdo con sus dominios de origen, y los recursos locales se ponen en el entorno limitado local de red, local con sistema de archivos o local de confianza.

Se puede comprobar si la propiedad estática está definida en Capabilities.playerType "Desktop" para ver si el contenido se está ejecutando en el motor de ejecución (y no en Flash Player ejecutándose en un navegador).

Para obtener más información, consulte Seguridad en AIR .

Seguimiento de la presencia de usuarios

El objeto NativeApplication distribuye dos eventos que sirven para detectar cuándo está usando activamente el ordenador el usuario. Si no se detecta ninguna actividad del ratón o el teclado en el intervalo determinado por la propiedad NativeApplication.idleThreshold el objeto NativeApplication distribuye un evento userIdle . La próxima vez que se utiliza el teclado o el ratón, el objeto NativeApplication distribuye un evento userPresent . El intervalo idleThreshold se mide en segundos y tiene un valor predeterminado de 300 (5 minutos). También se puede obtener el tiempo transcurrido en segundos desde la última entrada realizada por el usuario, en la propiedad NativeApplication.nativeApplication.lastUserInput .

Las siguientes líneas de código definen el límite de inactividad en 2 minutos y detectan los eventos userIdle y 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: solo se distribuye un evento userIdle entre dos eventos userPresent cualesquiera.