アーカイブ : 2011年 3月

デバイスが通信可能かどうか調べる。(NetworkInfoクラス)

デバイスがwifiや3Gなどの通信網に接続しているかどうかを確認する関数のサンプルです。

下の関数は通信出来る状態にある場合true,通信できない場合はfalseを返します。あくまでネットワークの接続が出来ているかどうかの確認なので確実に通信できるかどうかはまた別の問題になります。ネットワークに繋ゲル必要がある場合、ネットワークの状態を確認した上で通信する際のエラーチェックも行う必要があると思います。

権限の設定はこちら。

単純にネットワークが利用出来るかどうかを調べる関数サンプル。

import flash.net.NetworkInfo;
import flash.net.NetworkInterface;

function checkNetworkEnabled():Boolean{
	var isCheck = false;

	if(NetworkInfo.isSupported){
		//NetworkInfoを参照します。
		var networkinfo:NetworkInfo = NetworkInfo.networkInfo;
		//NetworkInfoの中に複数のNetworkInterfaceが含まれていて個別に調べます。
		for each (var networkinterface:NetworkInterface in networkinfo.findInterfaces()){
			//通信可能なインターフェイスがある場合はそのインターフェイスの情報を表示します。
			if(networkinterface.active){
				isCheck = true;
			}
		}
	}
	return isCheck;
}

ネットワークの状態が変更された場合にイベントを発行して、変更後にネットワークが利用可能か調べてくれるサンプル。

※注意事項として、イベントはネットワークインターフェイスが複数ある場合個々のステータスが変化した場合に発生されます。例えばwifiと3Gネットワーク両方つながっていたとして3Gが切れてしまった場合でもネットワークはwifiで接続できますがステータスの変更イベントは発行されることになります。

import flash.net.NetworkInfo;
import flash.net.NetworkInterface;
import flash.text.TextField;
import flash.events.Event;

var txtf:TextField = new TextField();
txtf.autoSize = "left";
addChild(txtf);

//ネットワークの状態が変更された場合にイベントを発行します。
if(NetworkInfo.isSupported){
	NetworkInfo.networkInfo.addEventListener(Event.NETWORK_CHANGE, onNetworkChange);
}

function onNetworkChange(e:Event):void{
	txtf.appendText("networkchanging : "+ checkNetworkInfo().toString() + "\n");
}

//ネットワークが利用可能かを調べる関数
function checkNetworkInfo():Boolean{

	var isCheck:Boolean = false;

	if(NetworkInfo.isSupported){
		//NetworkInfoを参照します。
		var networkinfo:NetworkInfo = NetworkInfo.networkInfo;
		//NetworkInfoの中に複数のNetworkInterfaceが含まれていて個別に調べます。
		for each (var networkinterface:NetworkInterface in networkinfo.findInterfaces()){
			//通信可能なインターフェイスがある場合はそのインターフェイスの情報を表示します。
			if(networkinterface.active){
				isCheck = true;
			}
		}
	}

	return isCheck;

}

書画カメラを作る(アプリではない)

モバイル系のアプリつくったり、スマートフォンやタブレットの操作を記録しておきたい時ってあると思います。そんな時、書画カメラを使うのが一般的ですが価格的(5万円以上します。)な問題で入手が難しかったりします。そこで手持ちのWEBカメラをつかって書画カメラを自作します。

・持ち歩くことは想定しない。据え置きタイプ
・既になんらかのWEBカメラを持っている。

上の条件で想定したとして、こんな感じになりました。

用意するのはwebカメラ除いて4点。

マンフロット 237 フレックスアーム

マンフロット 035 スーパークランプ

マンフロット 118 1/4″-3/8″オスアダプター

WEBカメラ固定用ホルダー

Logicool Webcam Pro 9000

カメラを除いて約8000円弱で作れました。全部ネジなので固定用ホルダーとアダプターは他に用途がなければ固定してしまってもいいかもしれません。

つくってみて思ったのが、フレキシブルアームが結構長いので短いのがあればソッチの方がいいかもしれない。クランプも他にいくつか種類があるので小さめのにすれば持ち歩くことも可能。などなど。

 

XOOMをゲットしたので各種テストしてみました。

先日XOOMをアメリカのモトローラの通販サイトで購入し、ようやくGETしました。

※日本ではauからXOOM(日本語版)とdocomoからOptimus Padの2種のandroid3.0タブレットの発売が予定されています。

購入はクレジットカードで、アメリカの住所がないので転送サービスを利用してアメリカの指定の住所に転送後に日本に送ってもらえるようにお願いしました。使ったサービスはJISAさんです。かかった費用は本体68000+転送費用4311円+関税1800円でした。
ケースも買ったしまったんで全部含めると8万ぐらいです。

※輸入版なので日本語入力、表示はデフォルトの設定ではできません。輸入される方は自己責任でお願いします。

んで、早速いろいろテスト!!

Box2d Flash Alchemy Port + World Construction Kit

perfMaster delux

上条さんが公開しているモバイル向けパフォーマンス測定アプリでxoomのベンチとった結果です。

まだあんまりいじれていませんが、そのうちGPU使ったものもテストしていきたいと思います。

—-2011/3/14 追記————————-

Android3.0でサポートされているはずのマルチカメラですが、XOOMでは背面カメラしかサポートしていませんでした。

Camera.names.length が 1でした。

Android3.0 HoneyComb での変更点 (AIR for Android)

android3.0(honeycom)がでてエミュレータが少し安定してきたので、android2.2(Froyo),android2.3(GingerBread)からの変更点をまとめてみました。

・HOME画面UIおさらい

下のホーム画面見るだけでも既に全然違います。今までホーム長押しで表示されていた起動アプリ一覧がキーとして配置されています。さらに下の時計が表示されているバーは常に表示されます。

(外部リンク) HoneyComb新機能一覧まとめ

・メニューキーの扱い

ハードウェアキーがすべてなくなっています。HOME画面上ではメニュキーがなく、アプリが立ち上がった時点でメニュキーが画面左下に出現するような仕組みになっています。既にインストールされているアプリは画面右上にメニュキーがでるのがマナーのような感じがしているのですがどうなんでしょうか??知ってる方いたら教えてください。

僕の理想では下のようなメニューが理想的なのではと感じたのですが。。。。他のアプリと揃えたい!!

・サーチキーがない。キーイベントもとれない。

サーチキーはありませんがホーム画面にボタンやウィジェットとして配置されています。アプリ実装時はfroyo,gbも含めてサーチキーは何も割り当てないことをお勧めします。

・フルスクリーンモードの無効

フルスクリーンON/OFFどちらにチェックを入れても以下のようにフッターのキー部分はそのまま表示された状態で展開されます。

ハードウェアキーないので当たり前といえば当たり前ですが。。。

下のキャプチャはフルスクリーンON時の白紙Flaファイルを展開した画面です。

 

・マルチカメラサポート

実機がないので試せていませんが、インカメラをサポートしているようです。UIとは関係有りませんが。。。

以上、主なUI部分の変更点まとめでした。初見でまとめ書いたので気づいてない部分等ありましたらご指摘頂ければ幸いです。