Работа с информацией среды выполнения AIR и операционной системы

Adobe AIR 1.0 и более поздних версий

В данном разделе описываются способы, которыми приложение AIR может управлять сопоставлением файлов операционной системы, обнаруживать активность пользователя и получать информацию о среде выполнения Adobe® AIR™.

Управление сопоставлением файлов

Сопоставление приложения и типа файла должно быть объявлено в дескрипторе приложения. Во время процесса установки программа установки приложения AIR назначает приложение AIR в качестве приложения по умолчанию для открытия каждого из объявленных типов файлов, если уже не назначено другое приложение по умолчанию. Процесс установки приложения AIR не переопределяет существующее сопоставление типов файлов. Чтобы сопоставить другое приложение, необходимо вызвать метод NativeApplication.setAsDefaultApplication() во время выполнения.

Рекомендуется убедиться в правильности сопоставления файлов перед запуском приложения. Причина в том, что программа установки приложения AIR не переопределяет существующие сопоставления файлов, к тому же сопоставления файлов в системе пользователя могут измениться в любое время. Если файлам сопоставлено другое приложение, считается вежливым спросить пользователя перед изменением существующего сопоставления.

Следующие методы класса NativeApplication позволяют приложению управлять сопоставлением файлов. В каждом из методов расширение типа файла используется в качестве параметра:

Метод

Описание

isSetAsDefaultApplication()

Возвращает значение true, если приложение AIR в данный момент сопоставлено указанному типу файла.

setAsDefaultApplication()

Назначает приложение AIR приложением для открытия заданного типа файла.

removeAsDefaultApplication()

Удаляет сопоставление приложения AIR заданному типу файла.

getDefaultApplication()

Сообщает путь к приложению, которое в настоящий момент сопоставлено типу файла.

AIR может управлять сопоставлением только тем типам файлов, которые исходно объявлены в дескрипторе приложения. Информацию о сопоставлении необъявленным типам файлов получить невозможно, даже если пользователь вручную установил такое сопоставление. При вызове одного из методов управления сопоставлением файлов с использованием расширения типа файла, не объявленного в дескрипторе приложения, приложение выдает исключение этапа выполнения.

Получение версии среды выполнения и уровня исправлений

Объект NativeApplication имеет свойство runtimeVersion , которое представляет версию среды, в которой выполняется приложение (строка, например "1.0.5" ). Объект NativeApplication также имеет свойство runtimePatchLevel , которое представляет уровень исправлений среды выполнения (число, например 2960). В следующем коде используются эти свойства:

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

Обнаружение возможностей AIR

Для файла, входящего в пакет приложения Adobe AIR, свойство Security.sandboxType установлено на значение, определяемое константой Security.APPLICATION . Можно загружать содержимое (которое может содержать или не содержать API-интерфейсы AIR) в зависимости от того, находится ли файл в изолированной программной среде безопасности Adobe AIR, как показано в следующем коде:

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

Все ресурсы, не установленные с приложением AIR, назначаются тем же изолированным программным средам безопасности, которым они были бы назначены проигрывателем Adobe® Flash® Player в веб-обозревателе. Удаленные ресурсы помещаются в изолированные программные среды в соответствии с исходными доменами, а локальные ресурсы помещаются в одну из трех изолированных программных сред: локальную с сетевым подключением, локальную файловой системы или локальную доверенную.

Можно проверить, установлено ли статическое свойство Capabilities.playerType на значение "Desktop" , чтобы понять, выполняется ли содержимое в среде выполнения (а не в проигрывателе Flash Player, запущенном в обозревателе).

Дополнительные сведения см. в разделе « Безопасность AIR ».

Отслеживание присутствия пользователя

Объект NativeApplication отправляет два события, которые позволяют отслеживать активность пользователя. Если в течение периода времени, заданного свойством NativeApplication.idleThreshold , не обнаружена активность мыши или клавиатуры, объект NativeApplication отправляет событие userIdle . При следующем вводе с клавиатуры или мыши объект NativeApplication отправляет событие userPresent . Интервал idleThreshold измеряется в секундах и имеет значение по умолчанию, равное 300 (5 минут). При помощи свойства NativeApplication.nativeApplication.lastUserInput можно определить количество секунд, прошедших с момента последнего ввода данных пользователем.

Следующие строки кода устанавливают предел времени ожидания на 2 минуты и прослушивают оба события: userIdle и 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"); 
}); 
Примечание. Только одно событие userIdle отправляется между двумя событиями userPresent .