Android-Получить путь к файлу из URI?
Мне нужно получить путь к файлу, чтобы преобразовать его в поток ввода для загрузки purose. Поэтому я выбираю pdf document
используя файл chooser. Я получаю Uri в onActivityResult()
Используя URI, я получаю путь к файлу. Но он не возвращает правильный путь. Абсолютный путь:
when choosing file from internal storage
/document/primary:pdf/HA License Plate.pdf
when choosing file from external storage
/document/9016-4EF8:certificates/img002.pdf
Поэтому я не мог получить правильный путь к файлу, чтобы преобразовать в inputtream. Поэтому, пожалуйста, предложите мне получить правильный путь к файлу в моем приложении для Android? Код, который я использую, выглядит следующим образом.
Код является:-
public void ChoosePDF(View v) {
Intent intent = new Intent();
// intent.setType("pdf/*");
intent.setType("application/pdf");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Pdf"),
REQUEST_CODE);
}
public void onActivityResult(int requestCode, int resultCode, Intent result) {
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_CODE) {
Uri data = result.getData();
if (data.getLastPathSegment().endsWith("pdf")) {
String pdfPath = data.getPath();
File myFile = new File(data.getPath());
Log.i("FirstActivity", "pdfPath is " + pdfPath);
Log.i("FirstActivity", "uri abs path is " + myFile.getAbsolutePath());
} else {
Toast.makeText(SplashScreenActivity.this,
"Invalid file type.Please choose valid file!",
Toast.LENGTH_LONG).show();
}
}
}
}
Есть ли какие-либо проблемы с версией Android при получении пути к файлу? Я использую устройство Android Lollipop для тестирования?
1 ответ
Использовать файл file= новый файл (новый URI(data.toString()));