暗黙的インテント
暗黙的インテントでの起動
例:ブラウザの起動
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.yahoo.co.jp/"));
startActivity(intent);
具体的なアプリは指定せず、URLを指定。対応するアプリが自動的に起動される。
対応するアプリが複数ある場合、選択する画面が出る。
ACTION_DIALの例:ダイヤラーの起動
Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:0123456789"));
startActivity(intent);
ACTION_CALLの例:電話をかける
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:0123456789"));
startActivity(intent);
ACTION_GET_CONTENTの例:ギャラリーから画像を指定
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 1);
※データを取得しImageViewに表示
※onActivityResult内
if( resultCode == RESULT_OK ){
Uri uri= data.getData();
ImageView imageView1 = (ImageView)findViewById(R.id.imageView1);
imageView1.setImageURI(uri);
}
カメラを起動し画像を取得
Uri PictureUri; を宣言しておく。
String filename = System.currentTimeMillis() + ".jpg";
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, filename);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
PictureUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, PictureUri);
startActivityForResult(intent, 1);
※データを取得しImageViewに表示
※onActivityResult内
if( resultCode == RESULT_OK ){
ImageView imageView = (ImageView)findViewById(R.id.imageView1);
imageView.setImageURI(PictureUri);
}
■intent-filter
暗黙的インテントに対し、起動される側のアプリを作るには intent-filter を AndroidManifest.xml に指定する。
intent-filterとは受け取るインテントをフィルタリングするものと言える。
intent-filterの例
| action | 対応するアクション |
| category | 対応するカテゴリ(Intentオブジェクトに addCategoryで指定) |
| data | 対応するデータ |
例:特定サイトのURLに対応し起動
その場合のURL取得
String url = getIntent().getDataString();
Android開発 虎の巻