私は、Android で小さなファイル共有プログラムを作成しました。ユーザーは、ネイティブ Android ギャラリーまたはファイル マネージャー (ES ファイル エクスプローラーなど) から、アプリを介して共有する複数のファイルを選択できます。まず、選択したファイル パスを MainActivity の TextView に表示しているだけです。ここに私のコードスニペットがあります:
if (Intent.ACTION_SEND_MULTIPLE.equals(getIntent().getAction())
&& getIntent().hasExtra(Intent.EXTRA_STREAM)) {
ArrayList<Parcelable> list = getIntent()
.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
for (Parcelable parcel : list) {
Uri uri = (Uri) parcel;
String sourcepath = getPath(uri);
filepathNameArray.add(sourcepath); //building file path name array from gallery
myTextView.append(sourcepath + "\n"); //displaying selected files' path in textView
}
}
上記のコードは、ユーザーがギャラリーから複数のファイルを選択すると正常に動作しますが、ES ファイル エクスプローラーから (アプリ経由で共有するために) ファイルを選択するとアプリがクラッシュします。誰でもこれに対する回避策を提案できますか? ご協力いただきありがとうございます!