<< Android-Note
他アプリから起動可能なActivityの作り方
あるアクティビティを作ったとして、、AndroidManifest.xmlのintent-filter内にアクションとMIMEタイプを指定することでアプリを外部から起動できるようになります。
例えば外部から起動される画像ビューワーのようなアプリの場合はactivity内に次のようなintent-filterを記述します。
<activity
android:name="com.xxx.myapp.GallaryActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="image/*"/>
</intent-filter>
</activity>
actionタグにはアクションの種類、dataには受け取るMIMEタイプの種類を書けばそれだけで外部からの起動を許可することが可能です。
もしこのアプリを外部から起動するにはつぎのようなコードを書きます。
String imagePath = "/storage/emulated/0/MyApp/image.png"; Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri myUri = Uri.parse(imagePath); intent.setDataAndType(myUri , "image/*"); startActivity(Intent.createChooser(intent, "Open image"));
これを実行すると下の画像のように画像ビューワーの候補一覧が表示されます。
起動したビューワー側では次のようにしてデータ(ここでは画像パス)を受け取れます。
String imagePath = getIntent().getData().toString();
///画像の表示...
以上、外部から起動可能なアプリを作る方法でした。では、また!
© Kaz