Utilisation des informations sur le moteur d’exécution d’AIR et les systèmes d’exploitation

Adobe AIR 1.0 et les versions ultérieures

La présente section décrit comment une application AIR peut gérer des associations de fichiers de systèmes d’exploitation, constater les activités des utilisateurs et lire des informations sur le moteur d’exploitation Adobe® AIR®.

Gestion des associations de fichiers

Les associations entre votre application et un type de fichier doivent être déclarées dans le descripteur d’application. Au cours du processus d’installation, le programme d’installation de l’application AIR spécifie celle-ci comme application de démarrage par défaut pour chacun des types de fichiers déclarés, à moins qu’une autre application ne le soit déjà par défaut. Le processus d’installation de l’application AIR n’écrase pas une association de types de fichiers existants. Pour remplacer l’association par une autre application, appelez la méthode NativeApplication.setAsDefaultApplication() lors de l’exécution.

Il est recommandé de s’assurer que les associations de fichiers prévues sont en place lorsque votre application démarre. Ceci, parce que le programme d’installation de l’application AIR n’annule pas les associations de fichiers existantes et que ces associations sur un système d’utilisateur peuvent changer à tout moment. Lorsqu’une autre application dispose de l’association de fichiers actuelle, il est recommandé par courtoisie de demander une autorisation à l’utilisateur avant de prendre le contrôle de l’association en cours.

Les méthodes suivantes de la classe NativeApplication permettent à une application de gérer des associations de fichiers. Chacune des méthodes prend l’extension du type de fichier comme paramètre.

Méthode

Description

isSetAsDefaultApplication()

Renvoie true si l’application AIR est actuellement associée au type de fichier spécifié.

setAsDefaultApplication()

Crée l’association entre l’application AIR et l’opération d’ouverture du type de fichier.

removeAsDefaultApplication()

Annule l’association entre l’application AIR et le type de fichier.

getDefaultApplication()

Signale le chemin de l’application qui est actuellement associée au type de fichier.

AIR ne peut gérer des associations que pour des types de fichiers déclarés à l’origine dans le descripteur d’application. Il n’est pas possible de lire des informations sur les associations d’un type de fichier non déclaré, même si un utilisateur a créé manuellement l’association entre ce type de fichier et votre application. L’appel de toute méthode de gestion d’association de fichiers avec l’extension, pour un type de fichier non déclaré dans le descripteur d’application, provoque le renvoi d’une exception d’exécution par l’application

Lecture de la version du moteur d’exécution et du correctif

L’ objet NativeApplication possède une propriété runtimeVersion , qui correspond à la version du moteur d’exécution dans lequel l’application est exécutée (une chaîne telle que "1.0.5" ). L’objet NativeApplication possède également une propriété runtimePatchLevel qui est un niveau du correctif pour le moteur d’exécution, un nombre tel que 2960. Le code ci-dessous utilise ces propriétés :

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

Détection des capacités d’AIR

Pour un fichier regroupé avec l’application Adobe AIR, la propriété Security.sandboxType est définie sur la valeur spécifiée par la constante Security.APPLICATION . Vous pouvez charger le contenu, qui peut contenir ou non des interfaces de programmation spécifiques à AIR, selon qu’un fichier se trouve ou non dans le sandbox de sécurité d’Adobe Air, comme le montre le code ci-dessous :

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

Toutes les ressources qui ne sont pas installées avec l’application AIR sont affectées aux mêmes sandbox de sécurité que ceux qu’Adobe® Flash® Player auraient affecté dans un navigateur Web. Les ressources distantes sont placées dans des sandbox selon leurs domaines d’origine tandis que les ressources locales le sont dans un sandbox local avec accès au réseau, local avec système de fichiers ou approuvé localement.

Vous pouvez contrôler si la propriété statique Capabilities.playerType est définie sur "Desktop" pour voir si le contenu est exécuté dans le moteur d’exécution (et non pas dans Flash Player qui, lui, est exécuté dans un navigateur).

Pour plus d’informations, voir Sécurité AIR .

Suivi de la présence des utilisateurs

L’objet NativeApplication distribue deux événements qui vous aident à détecter à quel moment un utilisateur est actif sur son ordinateur. Si aucune activité de souris ou de clavier n’est détectée dans l’intervalle fixé par la propriété NativeApplication.idleThreshold , la NativeApplication distribue un événement userIdle . Lorsque survient l’entrée suivante par le clavier ou par la souris, l’objet NativeApplication distribue un événement userPresent . L’intervalle idleThreshold est mesuré en secondes et il a une valeur par défaut de 300, soit cinq minutes. Vous pouvez également lire le nombre de secondes depuis la dernière saisie de l’utilisateur grâce à la propriété NativeApplication.nativeApplication.lastUserInput .

Les lignes de code ci-dessous définissent le délai d’inactivité sur deux minutes et elles sont à l’écoute des deux événements userIdle et 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"); 
}); 
Remarque : il n’y a qu’un seul événement userIdle distribué entre deux événements userPresent quels qu’ils soient.