Android: 暗黙的Intent呼び出し

個人でAndroidアプリを思いつきで作ったのですが(まだリリースしてない)、そのときに他のアプリを呼び出したいなぁと思ったのだけれど、やり方がわからなかったんで調べました。自分で作ったアクティビティだけに限りませんが、特定のアクティビティを呼び出すのを明示的Intent呼び出しというのに対して、とりあえずIntentを作ってデータを放って、ユーザ側にアプリを選択させるのを暗黙的Intent呼び出しというらしいですね。

参考にさせてもらったのは以下のサイトです。

Intent(インテント)連携をまとめてみる – コードを貼り付けながら。

今回はEditTextに入力された内容を、メーラーやtwitterクライアントに対して渡すというのを実装してみました。

// ActivityのonCreate内
// 他のインテントを呼び出す
btnCollaboration.setOnClickListener(new OnClickListener() {
	public void onClick(View v) {
		String data = editText.getText().toString();
		if (data.length() > 0) {
			try {
				// メーラーやtwitterクライアントなどを呼び出す
				Intent intent = new Intent();
				intent.setAction(Intent.ACTION_SEND);
				intent.setType("text/plain");
				intent.putExtra(Intent.EXTRA_TEXT, data);
				startActivity(Intent.createChooser(intent, getString(R.string.txt_please_select)));
			} catch (ActivityNotFoundException e) {
				e.printStackTrace();
				// 呼び出せるActivityが存在しない
				Toast.makeText(VoiceEditor.this, R.string.txt_no_collaboration_found, Toast.LENGTH_SHORT).show();
			}
		} else {
			// EditTextにデータがないのでToast呼び出し
			Toast.makeText(VoiceEditor.this, R.string.txt_no_text, Toast.LENGTH_SHORT).show();
		}
	}
});

全部を自分で実装しなくても、入り口だけ作ってあとは他のアプリにデータを渡せるってのは、便利ですねぇ。


カテゴリー Android, Java | タグ   | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です