2010年4月15日木曜日

androidアプリ開発勉強中③

今回は、 http://www.atmarkit.co.jp/fjava/rensai4/android03/android03_1.html を参考に進める。

登場するサンプルアプリは、
http://www.atmarkit.co.jp/fjava/rensai4/android03/Dual%20Activities.zip
http://www.atmarkit.co.jp/fjava/rensai4/android03/Intent%20Caster.zip 。

「Dual Activities」の方は、前回と同様に下記を実行すればいいので問題ないが…

    ----------------------------------------
    ダウンロードした Dual Activities.zip を、
    C:\Programming\eclipse-project に移動。

    Eclipse を起動。
    Fileメニュー > Inmport
    General > Existing Projects into Workspace
    Select archive file にZIPファイルへのパスを設定。
    Finish

    対象プロジェクトで右クリックメニュー > Properties
    Android > Android 1.6 にチェック

    src 側にある R.java を削除。

    デバッグ実行。
    ----------------------------------------

「Intent Caster」の方は、そうはいかない。
正確には、Uriとアクションの組み合わせによって実行できたり出来なかったりする。@ITの記事の表3にある組み合わせ全6パターンを上から順に試してみようと思う。

①「ブラウザの起動」は問題なくできた。

②@ITの記事に正常に機能しないと書いているのでskip。

③ 「電話を発信」。ここから。

デバッグ実行すると、

「java.lang.SecurityException
...
requres android.permission.CALL_PHONE」

みたいな感じでエラーが出るので、下記のようにパーミッションの設定をする。

AndroidManifest.xml > Permissionsタブ
Add > Uses Permission
  Name: android.permission.CALL_PHONE
保存

これでOK。
デバッグ実行して確認すると、それっぽい動作をする。


④「電話番号入力画面を起動」。これは問題なし。

⑤「地図アプリケーションを起動」。現状のAVDでは、地図アプリが無いので動作しない。
新しいAVDを作成する。
Virtual Devices > New 
  Name: TestAVD2
  Target: Target: Google APIs (Google Inc.) - API Level 4  


そして、対象プロジェクトで右クリックメニュー > Properties
Android > Google APIs (Platform1.6) にチェック

これでOK。

だが、現在AVDが2個ある状態なので、debug時にどちらのAVDを使用するか設定。
対象のプロジェクト上で右クリックメニュー
Debug As > Debug Configrations...
Debug > Tergetタブ > manual
私はmanualで毎回選択するようにしたが、autoでTestAVD2に固定して問題ないと思う。


⑥「ストリートビューを起動」。動かない。⑤で追加したAVD上でもそのようなアプリが見当たらない。ということで、諦める。

こんなところです。


ここまでで@ITの記事の範囲は終わりだが、
「emulator-5554 disconnected! Cancelling 'com.example.android.dual.Main activity launch'!」
とエラーが出て、アプリを実行できないトラブルが何度かあったので、対処方法を書いておく。

Runメニュー > Debug Configurations
Commonタブ
Launch in background のチェックを外す。


以上!

0 件のコメント:

コメントを投稿