画像・動画・音声などを外部アプリで開く

画像や動画などのファイルを表示する場合、自前で表示・再生処理を実装するのは面倒であまり効率的ではありません。

そこでAndroid端末ではACTION_VIEWインテントを発行することで外部アプリから画像などを開くことができるような仕組みがあります。

例えば画像ビューワーを開きたければ次のようなインテントを発行します。

Intent intent = new Intent();
File file = new File("/data/data/myapp/app/cashe/image.png");
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "image/*");
getActivity().startActivity(intent);

ここで外部アプリの種類を指定しているのがsetDataAndTypeメソッドでこのメソッドに渡している"image/*"が画像全般を表すMIMEタイプです。

もし、動画プレイヤーを開きたいなら "video/*"、サウンド再生したいなら"audio/*"のようにMIMEタイプを指定すればOKです。

この例のように"image/*"を指定した場合は利用可能なすべての画像ビューワーが表示されます。

画像ビューワーの一覧

また、MIMEタイプを"audio/*"に変えると次のように音楽プレイヤーの一覧が表示されます。

音楽プレイヤーの一覧

ただ単に画像や音楽を再生するだけなら、わざわざ表示処理を実装しなくてもこれで十分だと思います。

以上、外部アプリからファイルを開く方法でした。では、また!

関連項目
プライバシーポリシー