startActivityForResult не работает в Android версии 4.4 (версия Kitkat)
С помощью моего приложения пользователь может выбрать файл из файлового менеджера и обработать выбранный файл (например, документ PDF) для других шагов, таких как печать или отправка по электронной почте.
Для этого я использовал приведенный ниже код для отображения намерения, из которого пользователь может выбрать файл из опции файлового менеджера.
protected void showFileChooser(String title, String type) {
Log.i(TAG, "FileChooserActivity showFileChooser(title,type)");
if (TextUtils.isEmpty(title)) title = getString(R.string.select_file);
if (TextUtils.isEmpty(type)) type = "*/*";
// Implicitly allow the user to select a particular kind of data
final Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// Specify the MIME data type filter (Must be lower case)
intent.setType(type.toLowerCase());
// Only return URIs that can be opened with ContentResolver
intent.addCategory(Intent.CATEGORY_OPENABLE);
// Display intent chooser
try {
startActivityForResult(
Intent.createChooser(intent, title),6384);
} catch (android.content.ActivityNotFoundException e) {
Log.i(TAG,"FileChooserActivity showFileChooser(title,type) Exception" +Log.getStackTraceString(e));
onFileError(e);
}
}
Проблема в версии Android Kitkat (4.4):
Используя приведенный выше код, я могу получить доступ ко всем файлам из файлового менеджера (то есть как из подпапки, так и из корневой папки) в Android 4.3 и во всех версиях Android, кроме Android 4.4.
В Android 4.4 я могу получить доступ к файлам из корневой папки, где я не могу получить доступ к файлам из подпапок. я получилjava.io.FileNotFoundException
как исключение.
Примечание: я установилAstro Файловый менеджер и через это я могу получить доступ как к корневым папкам, так и к подпапкам в Android 4.4. Но я не могу получить доступ к файлам подпапки через файловый менеджер Android по умолчанию.