Intent.ACTION_OPEN_DOCUMENTで選択したファイルのファイル拡張子を取得したいとします。それを得る方法?Intent.ACTION_OPEN_DOCUMENTで選択したファイルのファイル拡張子を取得する方法は?
これは私がピッカーを起動する方法です:
private void startFilePicker(){
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(intent, CODE_ACTION_OPEN_DOCUMENT_FILE);
}
ファイルが選ばれたときにこれがコールバックです:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//region New Picker
if (requestCode == CODE_ACTION_OPEN_DOCUMENT_FILE){
if (resultCode == RESULT_OK){
if (data != null){
if (data.getData() != null){
Uri uri = data.getData();
//Get file extension here.
}
}
}
}
}
私はuri.getPath()
をすることによって、ファイルのパスを取得しようとすると、私はimage:105571
のような何かを得ます、またはacc=1;doc=9204
。だから私はそれを道から得ることはできない。
質問は、選択したファイルのファイル拡張子を確認する方法ですか?
をありがとう!これは私の問題を解決しましたが、私はこの問題について別の素早い質問があります。ファイル自体を取得するにはどうすればよいですか?私はFile file = new File(uri.getPath())を使用しています。これは安全ですか? –
ファイルファイル=新しいファイル(filePath); –
もう一度おねがいします!しかし、これには1つの問題があります.UriやGoogleドライブから選択したファイルは取得できません。これに対する解決策はありますか? –