▼Androidメモ▼
インテントの利用

インテントの用途
アクティビティの起動
インテントレシーバーへの通知
サービスの起動
サービスの起動

インテントの利用例
アクション サンプル 備考
特定のアクティビティの起動 Intent intent=new Intent("android.intent.action.MAIN");
intent.setClassName("net.npaka.actiongame","net.npaka.actiongame.ActionGame");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
-
WEBページの表示
Uri uri=Uri.parse("http://npaka.net");
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
http://xxxxx
https://xxxxxx
地図の表示 Uri uri=Uri.parse("geo:0,0?q=Tokyo");
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
geo:latitude,longitude
geo:latitude,longitude?z=zoom
geo:0,0?q=my+street+address
geo:0,0?q=business+near+city
google.streetview:cbll=lat,lng&
cbp=1,yaw?pitch,zoom&mz=mapZoom
コンタクトリストの表示 Uri uri=Uri.parse("content://contacts/people/");
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
-
SMSの表示 Intent intent=new Intent(Intent.ACTION_VIEW);
intent.putExtra("sms_body","SMSのテキスト");
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);
-
SMSの送信 Uri uri=Uri.parse("smsto:09012345678");
Intent intent=new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body","SMSのテキスト");
startActivity(intent);
-
Eメール送信 Intent intent=new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT,"タイトル");
intent.putExtra(Intent.EXTRA_TEXT,"テキスト");
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_STREAM,Uri.parse("file://"+path));
startActivity(intent);
事前にメーラーのセットアップが必要
リンク付きEメール送信 SpannableString ss=new SpannableString("http://npaka.net");
ss.setSpan(new URLSpan("http://npaka.net"),
0,ss.length(),Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
SpannableStringBuilder body=new SpannableStringBuilder();
body.append("リンク>");
body.append(ss);
Intent intent=new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT,"タイトル");
intent.putExtra(Intent.EXTRA_TEXT,body);
intent.setType("message");
startActivity(intent);
事前にメーラーのセットアップが必要
宛先付きEメール送信 Uri uri=Uri.parse("mailto:npaka@npaka.net");
Intent intent=new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra(Intent.EXTRA_SUBJECT,"タイトル");
intent.putExtra(Intent.EXTRA_TEXT,"ボディのテキスト");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
事前にメーラーのセットアップが必要
通話の開始 Uri uri=Uri.parse("tel:117");
Intent intent=new Intent(Intent.ACTION_CALL,uri);
startActivity(intent)
パーミッション
android.permission.CALL_PHONE
ダイアラーの表示 Uri uri=Uri.parse("tel:117");
Intent intent=new Intent(Intent.ACTION_DIAL,uri);
startActivity(intent);
-
設定画面の表示 Intent intent=new Intent("android.settings.SETTINGS");
startActivity(intent);
-
AndroidMarketのアプリ表示 Uri uri=Uri.parse("market://search?q=pname:net.npaka.actiongame");
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
AndroidMarket必要
(エミュレータ不可)

market://search?q=pname:<PackageName>
market://search?q=pub:<DeveloperName>
market://search?q=<PackageName/DeveloperName>
market://details?id=<PackageName>
アプリのアンインストール Uri uri=Uri.fromParts("package","net.npaka.helloworld",null);
Intent intent=new Intent(Intent.ACTION_DELETE,uri);
startActivity(intent);
-
Youtubeの再生 startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.youtube.com/watch?v=yv4TSg5-c3A")));
-

Youtubeの検索

Intent intent=new Intent(Intent.ACTION_SEARCH);
intent.setPackage("com.google.android.youtube");
intent.putExtra("query","電脳空間カウボーイズ");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
-
ギャラリーからの画像取得 Intent intent=new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent,REQUEST_GALLERY);
-
private final static int REQUEST_GALLERY=0;
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
    if (resultCode==RESULT_OK && 
        requestCode==REQUEST_GALLERY) {
        try{
            InputStream in=getContentResolver().openInputStream(data.getData());
            Bitmap bmp=BitmapFactory.decodeStream(in);
            in.close();
        }catch(Exception e){
        }
    }
}

アクティビティのアクション
定数 説明
ACTION_MAIN アプリの起動
ACTION_MAIN データの実行
ACTION_ALL_APPS 利用可能なアプリの一覧表示
ACTION_ATTACH_DATA データの添付
ACTION_CHOOSER Activityの選択画面の表示
ACTION_PICK データを1つ選択して選択情報を返す
ACTION_PICK_ACTIVITY Activityを1つ選択して選択クラスを返す
ACTION_EDIT データの編集
ACTION_GET_CONTENT データの1つ選択して選択情報を表示して返す
ACTION_CREATE_SHORTCUT ホーム画面にショートカットを作成
ACTION_ANSWER 電話を受信
ACTION_CALL 電話をかける
ACTION_CALL_BUTTON 電話をかける画面かその他のUIアプリを起動
ACTION_DIAL 電話をかける画面の表示
ACTION_INSERT 空要素を新規作成
ACTION_INSERT_OR_EDIT 空要素を新規作成または編集
ACTION_DELETE データの削除
ACTION_SEARCH ローカル検索
ACTION_WEB_SEARCH Web検索
ACTION_SEND データのブロードキャスト
ACTION_SENDTO データのユニキャスト
ACTION_SEND_MULTIPLE 複数データのブロードキャスト
ACTION_SET_WALLPAPER 壁紙の設定
ACTION_VIEW URL指定のデータを画面表示
ACTION_VOICE_COMMAND 音声による命令聞き取り開始
ACTION_SEARCH_LONG_PRESS 検索キーに権限付加させて実行
ACTION_SYNC 外部データと携帯電話の同期
ACTION_POWER_USAGE_SUMMARY 端末起動の通知
ACTION_SYSTEM_TUTORIAL チュートリアルの開始
ACTION_FACTORY_TEST 出荷テストの実行
ACTION_BUG_REPORT バグレポートの表示

カテゴリ
定数 説明
CATEGORY_ALTERNATIVE 代替手段を提供可能
CATEGORY_BROWSABLE ブラウザから起動可能
CATEGORY_CAR_DOCK カードック
CATEGORY_CAR_MODE カーモード
CATEGORY_DEFAULT 標準
CATEGORY_DESK_DOCK デスクドック
CATEGORY_DEVELOPMENT_PREFERENCE 開発用プリファレンス
CATEGORY_EMBED 活性化
CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST フレームワークテスト
CATEGORY_HOME ホームスクリーン
CATEGORY_INFO パッケージ情報の提供
CATEGORY_LAUNCHER ホームスクリーンから起動
CATEGORY_MONKEY Monkeyテスト
CATEGORY_OPENABLE オープン可能
CATEGORY_PREFERENCE プリファレンス
CATEGORY_SAMPLE_CODE サンプルコード
CATEGORY_SELECTED_ALTERNATIVE 代替手段の選択
CATEGORY_TAB タブアクティビティ内のタブ
CATEGORY_UNIT_TEST Unitテスト
CATEGORY_TEST テスト

−戻る−