AIR ランタイムとオペレーティングシステムに関する情報の操作

Adobe AIR 1.0 およびそれ以降

この節では、オペレーティングシステムファイルの関連付けの管理、ユーザーアクティビティの検出、Adobe® AIR® ランタイムに関する情報の取得を AIR アプリケーションで行う方法について説明します。

ファイルの関連付けの管理

アプリケーションとファイルの種類との関連付けは、アプリケーション記述子で宣言する必要があります。インストールプロセス時、AIR アプリケーションインストーラーでは、宣言済みの各ファイルの種類を開くデフォルトのアプリケーションとして AIR アプリケーションを関連付けます。ただし、別のアプリケーションが既にデフォルトのアプリケーションになっている場合を除きます。AIR アプリケーションのインストールプロセスでは、既存のファイルの種類の関連付けを上書きしません。別のアプリケーションから関連付けを引き継ぐには、実行時に NativeApplication.setAsDefaultApplication() メソッドを呼び出します。

アプリケーションの起動時に、期待されるファイルの関連付けが適切であるかどうかを確認することをお勧めします。この理由は、AIR アプリケーションインストーラーでは既存のファイルの関連付けを上書きしないため、また、ユーザーのシステムにおけるファイルの関連付けは常に変更される可能性があるためです。現在のファイルの関連付けが別のアプリケーションに設定されている場合は、既存の関連付けを変更する前にユーザーに確認することも推奨されます。

NativeApplication クラスの次のメソッドを使用すると、アプリケーションでファイルの関連付けを管理できます。各メソッドは、ファイルの種類の拡張子をパラメーターとして受け取ります。

メソッド

説明

isSetAsDefaultApplication()

指定されたファイルの種類に AIR アプリケーションが現在関連付けられている場合は、true を返します。

setAsDefaultApplication()

AIR アプリケーションと特定のファイルの種類を開くアクションとの間の関連付けを作成します。

removeAsDefaultApplication()

AIR アプリケーションと特定のファイルの種類との間の関連付けを削除します。

getDefaultApplication()

特定のファイルの種類に現在関連付けられているアプリケーションのパスを報告します。

AIR で管理できるのは、アプリケーション記述子であらかじめ宣言されているファイルの種類の関連付けだけです。宣言されていないファイルの種類の関連付けに関する情報は、そのファイルの種類とアプリケーションの間の関連付けをユーザーが手動で作成した場合も含めて取得できません。アプリケーション記述子で宣言されていないファイルの種類の拡張子を指定して、ファイルの関連付けの管理メソッドを呼び出すと、ランタイム例外がアプリケーションからスローされます。

ランタイムのバージョンとパッチレベルの取得

NativeApplication オブジェクトには、アプリケーションが実行されているランタイムのバージョン(「 1.0.5 」などのストリング)を示す runtimeVersion プロパティがあります。また、NativeApplication オブジェクトには、ランタイムのパッチレベル(2960 などの番号)を示す runtimePatchLevel プロパティもあります。次のコードでは、これらのプロパティを使用します。

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

AIR 機能の検出

Adobe AIR アプリケーションに付属するファイルでは、 Security.sandboxType プロパティは、 Security.APPLICATION 定数で定義されている値に設定されます。ファイルが Adobe AIR セキュリティサンドボックス内にあるかどうかに基づいて、コンテンツ(AIR 固有の API を含んでいるかどうかわからないコンテンツ)を読み込むことができます。これを次のコードに示します。

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

AIR アプリケーションのインストールに含まれないすべてのリソースは、Web ブラウザーの Adobe® Flash® Player によって割り当てられる場合と同じセキュリティサンドボックスに割り当てられます。リモートリソースは、そのソースドメインに従ってサンドボックスに配置され、ローカルリソースは、local-with-networking、local-with-filesystem、local-trusted のいずれかのサンドボックスに配置されます。

Capabilities.playerType 静的プロパティが「 Desktop 」に設定されているかどうかをチェックして、コンテンツがランタイムで実行される(ブラウザーで実行される Flash Player では実行されない)かどうかを確認できます。

詳しくは、 AIR のセキュリティ を参照してください。

ユーザープレゼンスの追跡

NativeApplication オブジェクトは、ユーザーがコンピューターをアクティブに使用していることを検出するのに役立つ 2 つのイベントを送出します。 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"); 
}); 
注意: 2 つの userPresent イベントの間に、 userIdle イベントが 1 つだけ送出されます。