Intentで複数ファイルの共有

ご存知の通り、AndroidではIntentを使ってアプリ間でデータのやり取りを行うことができます。

共有できるデータはテキストや画像などいろいろありますが、今回は複数のファイルを一度に別のアプリ(例えばGoogleDriveやDropBoxなど)に共有する方法を紹介します。

やり方は簡単で複数のURIをまとめてIntentに渡すだけです。

言葉だととても分かりにくいので実際のソースを以下に載せます。

/** 1つめのファイル */
Uri uri1 = Uri.fromFile(
        new File("/sdcard/Dwonload/12345.png"));
/** 2つめのファイル */
Uri uri2 = Uri.fromFile(
        new File("/sdcard/Dwonload/abc.txt"));
ArrayList<Uri> uriArray = new ArrayList<Uri>();
uriArray.add(uri1); 
uriArray.add(uri2);

Intent sendIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
sendIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriArray);
sendIntent.setType("*/*");
startActivity(sendIntent);

複数のデータを渡すにはアクションにACTION_SEND_MULTIPLEを設定します。

後はURIのリストを渡してIntentを起動してやれば共有画面が表示され、その中からアプリを選択するとファイルが渡されます。

以上、複数のファイルを共有する方法についてでした。

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