の内部ストレージにないのsdcardに存在するファイルを選択してサーバーにアップロードしたいが、サイズを取得するためのパスを取得できません。ユーザは、SDカード(取り外し可能)から任意のファイルを選択しない限り、私はthis answerとその作業を使用していますファイルへのパスを取得するためのsdcardのファイルのURIから実際のパスを取得
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
String[] mimetypes = {"application/*"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
startActivityForResult(
Intent.createChooser(intent, "Select a File to Upload"), FILE_SELECT_CODE);
:私は、コードの下に使用してファイルを選ぶための意図を開始しています。私はコードをデバッグし、タイプが主要でないことが判明した場合ので、この条件の内側に行くことはありません。
if("primary".equalsIgnoreCase(type)){
return Environment.getExternalStorageDirectory() + "/" + split[1];
}
だから私の質問はどうなるか、それは他の人のですか?タイプがプライマリでない場合はどうなりますか?その場合、どのようにファイルへのパスを得ることができますか?私は多くの質問とチュートリアルを探していますが、他には何もありません。私はまた、this answerの他の一部を試してみましたが、そのは「SECONDARY_STORAGE」と「EXTERNAL_STORAGE」のSDカードためSystem.getenv()
リターンヌルので、動作していません。
if ("primary".equalsIgnoreCase(type)) {
return Environment.getExternalStorageDirectory() + "/" + split[1];
}else{
return System.getenv("EXTERNAL_STORAGE") + "/" + split[1];
}
ウリとドキュメントIDファイルの一見のためのように:
ウリ:私は、私がしようとすると、見つからない例外ファイル取得コンテンツ://com.android.externalstorage.documents/document/ 0EF9-3110%の3Adevice-2016-12-02-130553.png
DOCID:0EF9-3110:デバイス2016-12-02-130553.pngを
ヘルプがありますか?
問題は何度も報告されています。毎週私が思う最後の月です。だからちょうどこのサイトを読んでください。さらに、ファイルパスが必要な理由を説明する必要があります。あなたはほとんどあなたが持っているコンテンツスキームで同じことをすることができます。 – greenapps
@greenapps私はすでにそれを検索してリンクも投稿しています。あなたの質問に関連するリンクがあれば、それを共有してください –
'私の質問はそれ以外は何ですか? '。あなたは 'タイプ'を意味しますか?さて、あなたは言うことができます! – greenapps