• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
夜子まま塾講義11(暗黙的intent)
 

夜子まま塾講義11(暗黙的intent)

on

  • 1,624 views

 

Statistics

Views

Total Views
1,624
Views on SlideShare
1,623
Embed Views
1

Actions

Likes
1
Downloads
7
Comments
0

1 Embed 1

http://us-w1.rockmelt.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    夜子まま塾講義11(暗黙的intent) 夜子まま塾講義11(暗黙的intent) Presentation Transcript

    • Now Loading. Please Wait ... Twitter @yokmama Androidの外部アプリの連携 夜子まま塾 講義11(アプリ連携 暗黙Intentによる呼び出し) Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 自己紹介 氏名   :寺園聖文(てらぞの まさふみ) 肩書   :株式会社Re:Kayo-System 代表取締役社長 活動拠点 :神戸近郊∼日本→海外行きたい 著書   :「10日でおぼえるAndroidアプリ開発入門教室」著(翔泳社)       「HTML5によるAndroidアプリ開発入門」監修(日経BP) アプリ  :「JUST PLAYER」「Skip Memo」「ふりがなオートマチック」等 好きなもの:アニメ、決して萌えじゃない、見てるけど、あくまで研究の一環 嫌いなもの:とくになし 最近のテーマ:電子工作、運動すること、英語 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 暗黙的Intent 講義10にて、Intentを使ったアプリを解説しました。 Intentを使えば、他の画面を呼び出すことができます。 ということは、Android端末内の他のアプリもIntentを 使えば呼び出せるわけです。 だけどちょっとここで疑問がでてくるはずです。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • Intentの生成 Intent(Context packageContext, Class<?> cls) おさらいです、上のメソッドはIntentの コンストラクタです。 Intentの生成には呼び出すクラスのクラ ス名が必要でした。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • クラスが生成できない しかし、 Classは同一アプリ内のクラスであれば取得でき るけど、そうでない場合は取得できません。 では、他のアプリを画面を呼び出すにはどうすれ ばいいの? Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 一応こんなメソッドがある Intent setClassName(String packageName, String className) 直接、文字列で呼び出し画面のクラス名と パッケージを設定する 例 AndroidManifest.xmlに書いてある Intent intent = new Intent(); パッケージである点に注意 intent.setClassName( ykmjuku.sample.android.app , ykmjuku.sample.android.app.Ykmjuku002Activity ); Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • クラスパスが分からない 場合は? 残念ながら、クラスパスがわからないクラ スは直接指定ができないため呼び出すこと ができないです。 では、分からない場合に他に方法ないの? Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • あります! その方法が、今回紹介する暗黙的 Intentという呼び方です。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 暗黙的Intent 暗黙的Intentとは、呼び出す相手を明 確に設定しないで、ActionとTypeと いった属性を元に該当するアプリを呼 び出す方法です。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 暗黙的Intentを図で 他の画面1 Action A 呼び出し元 Intent 他の画面2 Action=A ActionA 他の画面3 ActionB Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 暗黙的Intentをコードで 呼び出し Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivity(intent); Intent.javaより抜粋 public static final String ACTION_PICK = "android.intent.action.PICK"; GalleryアプリのAndroidManifest.xml <activity android:name="com.android.camera.ImageGallery" android:label="@string/gallery_label" android:icon="@drawable/ic_launcher_gallery"> <intent-filter> <action android:name="android.intent.action.PICK" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="image/*" /> <data android:mimeType="video/*" /> </intent-filter> </activity> Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 動かしてみる クリック ACTION_PICKは何かを選択するア クションです。ActivityForResult を使うと選択した画像を取得するこ とができます。 プログラム:ykmjuku009 http://bit.ly/x5P8xY Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • IntentFilterについて Intentにはパッケージやクラスの他に ActionやTypeを設定することができます。 そして、このAcitonやTypeにアプリが反応 するかどうかを設定する方法がIntent-Filter です。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • Intent-Filterの設定 ActivityのIntent-Filterは AndroidManifest.xmlで設定します。 タグ名:intent-filter 子の要素 action Intentのアクション名(必須) category Intentのカテゴリ名 data Intentのデータ使用 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • Intent-Filterの設定 AndroidManifest.xmlより <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".Ykmjuku009Activity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> この設定は、ランチャーアプリから起動でき るアプリを設定するフィルターです。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • Intent-Filterは複数書い てもよい <activity android:name=".Hoge" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> ランチャー起動用のフィルターと表示用 のフィルターの2つを定義している。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 色々なIntentの使用例 メールの送信 Intent intent=new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_SUBJECT,"件名"); intent.putExtra(Intent.EXTRA_TEXT,"本文"); startActivity(intent); 電話の発信 Uri uri=Uri.parse("tel:0120-2222"); Intent intent=new Intent(Intent.ACTION_CALL,uri); startActivity(intent); YouTube再生 Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=Ndoi4XYqDgw")); startActivity(intent); Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 作ってみよう テキスト連携を行い、入力した 文字列を渡すアプリ テキスト連携 Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, “文字列”); 参考例:ykmjuku010 http://bit.ly/zB6C3P Re:Kayo-System Co.,Ltd.Friday, March 9, 2012
    • 画面のないアプリは? 続きは夜子まま塾オンライン(無料)にて 毎週水曜日夜10:30∼11:00 (都合によりない場合もあります) 夜子まま塾 http://bit.ly/wTjjix GoogleID:101190223376062765723 上記アカウントをサークルに追加していると、 ハングアウトのお誘いが届きます。 是非ご参加ください。 Re:Kayo-System Co.,Ltd.Friday, March 9, 2012