[an error occurred while processing this directive]
[an error occurred while processing this directive]
iアプリのお勉強 (DoJa)
ひょんなことから、iアプリを勉強することになりました。
とても参考になったページ: http://www.ne.jp/asahi/hishidama/home/tech/iappli/iappli.html
基礎知識
docomoの携帯は905iとか701iとか、機種ごとに当然機能も違っているので、
最新機種の機能をフルに使うにはiアプリの仕様も変えないといけません。
iアプリの仕様はDoJa プロファイルとして規定されていて、
2008年4月現在の最新は5.1 (905i用)です。
でも、DoJa 5.1用のアプリを書いてしまうと、905i以降の携帯を持っている人しか使えない可能性があります。
なので、ちょっと古めのプロファイルで作るといいでしょう。
僕は今Doja4.1用 (902i) で書いています。
実行環境のセットアップ
PC用にくらべ、Javaのバージョンチェックが厳しいので注意が必要です。
それに加えて問題は、EclipseがJava1.4以前の環境だと動かない(ことがある)こと。
だからDoJa + Eclipseの環境構築手順としては、
トラブルシュート
-
jarを作れませんでしたというエラー (com.nttdocomo.eclipse.DoJaBuildException)
→ Javacを探せていない可能性があります。PATH (Windowsの環境変数か、Eclipse内の変数か)を設定しましょう。
-
DoJa の携帯エミュレータの画面が出かかって一瞬で消える→JarがDoJaで実行できない
→ コンパイラ(javac)が5.0以上になっている可能性があるので、上のバージョンのところを確認。
-
HTTPで通信させるクラスを書いて実行しようとしたら、以下のエラー。
java.lang.SecurityException: UseNetwork key not found in ADF
これは、jamファイルに通信方法が指定されていないためらしい。そこで、以下の1行を追加した。
(jamファイルは、binディレクトリの中にあります)
UseNetwork = Http
上のようにjamでホストを指定すると、さらに次のエラー。
java.lang.SecurityException: Illegal host
もう1行、ダウンロード元のサイト名も書かないといけないらしい。
PackageURL = http://funini.com
これでようやくDoJaエミュレータ上でHTTP通信するアプリが動きました。
その他Tips
-
SoftKeyListenerを実装できるのはIApplicationではなくてPanel。
Panelというのがウィンドウにあたるのかな。
だから、Panel中心の設計にすると書きやすいと思う。
-
"Camera"クラスは、DoJa 3.xではcom.nttdocomo.ui.opt.Cameraだけど、
DoJa 4.x以降ではcom.nttdocomo.device.Cameraに移動しているっぽい。
でも中身のメソッドとかはそのままでいけるっぽい。
[an error occurred while processing this directive]