Android演習

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()
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);
}
}
}
実行例
アプリケーション選択