
先日リリースされた FDT5 で モバイルアプリビルド機能 が強化され、
AIR アプリのプロパティ設定や、パブリッシュなどが、GUIで行えるようになりました。
その一部に Extentions タブがあり、
AIR Native Extenision (以下ANE) アプリをサクッとコンパイル出来るようになっています!
(この機能は FDT5 FREE でも利用可能!)
今までコマンド、 Ant などでやっていたのを考えると便利ですね!
ANEアプリコンパイル設定
ということで Android のバッテリー値を取得&表示する ANE アプリを作成する手順を書いてみます。
[1]. ANE ファイルを用意。
ここに素敵なANEサンプルが多数公開されています。
http://extensionsforair.com/extensions/powerflasher-collection/
今回はこの中の「battery」を使わさせて頂きました。
[2]. Mobile Project を作成
File > New > New FDT Project > Mobile > AS3 でプロジェクト作成し
「aneフォルダ」を作成。(任意の名前でもOK)
[3]. ANEファイル、ライブラリの設置
[1]でDownloadしたbatteryフォルダ内の.aneファイルと.swfファイルをプロジェクトにコピー。

battery/extension/de.patrickkulling.air.mobile.extensions.battery.ane
>「ane」フォルダへコピー
battery/extension/android_battery_extension.swc
>「lib」フォルダへコピー
※これでExtensionのクラスにパスが通せるようになります
[4]. Extensions の設定
プロジェクトフォルダ右クリック > Properties を選択すると下記のウィンドウが出てきます。

FDT Mobile Properties > Android > Extensionsを選択。
「Extensions location」に「aneフォルダ」を選択。
「Extensions」に、battery/extension/descriptor_extensions.xml に記述されている「extensionID」 を追加。
※これでアプリケーション記述ファイルに自動的に extensionID が追記されます。
ANEの設定はここまで。
もうちょっとです。
AIR3.0コンパイル設定
ここからはAIR3.0でコンパイルするためのお決まり設定です。
[5]. コンパイル時定数を追加
「Run / Debug Configurations」を作成し、
Compiler Arguments タブの Use launcher specific compiler arguments を選択。
「-swf-version=13」を追記。

[6]. アプリケーション記述ファイルの修正

bin/xxxxxx-app.xmlの冒頭を
「<application xmlns=”http://ns.adobe.com/air/application/3.0“>」に変更。
設定は以上!
ANEを呼び出すドキュメントクラス
上記設定から、バッテリー値を取得&表示するサンプルドキュメントクラスです。
package jp.itoz.ane.android.battery {
import de.patrickkulling.air.mobile.extensions.battery.Battery;
import de.patrickkulling.air.mobile.extensions.battery.event.BatteryEvent;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
/**
* ANE Android Battery Sample
* @see http://extensionsforair.com/extensions/powerflasher-collection/
*/
public class ANEBatteryApp extends Sprite {
private var _tf : TextField;
private var _bat : Battery;
public function ANEBatteryApp() {
// ----------------------------------
// battery
// ----------------------------------
_bat = new Battery();
_bat.addEventListener(BatteryEvent.UPDATE, onBatteryUpdate);
// ----------------------------------
// textfield
// ----------------------------------
_tf = addChild(new TextField()) as TextField;
_tf.defaultTextFormat = new TextFormat(null, 20, 0xcc0000);
_tf.autoSize = TextFieldAutoSize.LEFT;
}
/**
* バッテリーイベント
*/
private function onBatteryUpdate(event : BatteryEvent) : void {
var d : Date = new Date();
var stamp : String = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
// @see http://www.adakoda.com/android/000140.html
_tf.text = "update " + stamp + "\n";
_tf.text += "バッテリー残量 " + event.level + "\n";
_tf.text += "バッテリー最大値 " + event.scale + "\n";
_tf.text += "バッテリー温度 " + (event.temperature / 10) + "度\n";
_tf.text += "バッテリー電圧 " + event.voltage + "mV\n";
}
}
}
あとは コンパイルするだけ!
これでバッテリー値が取得できるサンプルANEアプリが完成しました。
今回のサンプル一式をアップしました。
FDT5 の File > import から Archive File で読み込んでください。
その他
FDT5 FREE のダウンロードはこちらから
(今回紹介した機能はFREEでも利用可)
FDT5 MAX だと、アプリケーション記述ファイルの設定もGUIから行えます。
(AppricationID や Permission、Aspect Ratio など)
その他 FTD5 から追加された機能はこちら
fdt.jp » FDT5がリリース。新機能一覧