7.アプリケーションの連携 7-1 インテント(intent) 1.アプリケーションの連携とは アプリケーションから他のアプリケーションを起動 (インテントという仕組みを用いる)
2.アプリケーションの連携の例 (電話を起動) インテントを作成してアクション(Action)を設定 Intent it = new Intent(); it.setAction(Intent.ACTION_VIEW);
主なアクションの種類 (android.content.Intentクラス) 種 類 内 容 ACTION_MAIN 起動する。 ACTION_VIEW データを表示する。 ACTION_GET_CONTENT データを選択して返す ACTION_SEARCH データを検索する。 ACTION_EDIT データを編集する。 ACTION_SEND データを送信する。 ACTION_SENDTO メッセージを送信する。 ACTION_DIAL ダイヤルをかける。
データ(電話番号など)の設定と アプリケーションの起動 【データの設定】 it.setData(URI.parse(“tel:0423906037”)); 【アプリケーションの起動】 startActivity(it);
関連クラス クラス 概 要 android.content.Intentクラス Intent() インテンツを作成する。 クラス 概 要 android.content.Intentクラス Intent() インテンツを作成する。 Intent setAction(String act) アクションを設定する。 Intent setData(Uri uri) URIデータを設定する。 Android.app.Activityクラス void startActivity 新しいActivityを起動する。
プログラム例(その1) package jp.tele; import android.app.*; import android.os.*; import android.content.*; import android.net.*; import android.view.*; import android.view.View.OnClickListener; import android.widget.*;
プログラム例(その2) public class TeleActivity extends Activity { Button btn; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL=new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL); btn=new Button(this); btn.setText("電話"); LL.addView(btn); btn.setOnClickListener(new telClickListener()); }
プログラム例(その2) class telClickListener implements OnClickListener{ @Override public void onClick(View v) { Intent it =new Intent(); //インテント作成 it.setAction(Intent.ACTION_VIEW); //アクション指定 it.setData(Uri.parse(“tel:0423069072”));//データ設定 startActivity(it); //電話の起動 }
実行例 設定された電話番号データで電話が起動
3.インテントを受け取るアプリケーションが 複数ある場合 アプリケーションの選択画面が表示されるので,ユーザがアプリケーションを選択する。
プログラム例(その1) package jp.retr; import android.app.*; import android.os.*; import android.content.*; import android.view.*; import android.view.View.*; import android.widget.*;
プログラム例(その2) public class RetrActivity extends Activity { Button button; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL=new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL); button=new Button(this); button.setText("検索"); LL.addView(button); button.setOnClickListener(new retClickListener()); }
プログラム例(その3) class retClickListener implements OnClickListener { public void onClick(View v) Intent intent=new Intent(); intent.setAction(Intent.ACTION_SEARCH); intent.putExtra(SearchManager.QUERY, "Android"); startActivity(intent); }
実行例 アプリケーション選択