Использование структуры доступа к хранилищу для создания файла
Недавно я получил отчет о сбое от пользователя, который пытался создать резервную копию базы данных с помощью Storage Access Framework на устройстве с леденцом на палочке.
Исключение:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CREATE_DOCUMENT cat=[android.intent.category.OPENABLE] typ=*/* (has extras) }
Мой код:
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.putExtra(Intent.EXTRA_TITLE, "Backup.db");
intent.setType("*/*");
startActivityForResult(intent, REQUEST_CODE_BACKUP_SAF);
Qestion:
Все ли устройства v19+ действительно поддерживают Storage Access Framework? Как мы должны обращаться с такими случаями?
[ОБНОВИТЬ]
Получено 4 дополнительных отчета о сбоях с разных устройств.
1 ответ
Возможно, это может быть полезно для кого-то еще, у кого была такая же проблема, поэтому вот как я решил свою проблему
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.putExtra(Intent.EXTRA_TITLE, "Backup.db");
intent.setType("*/*");
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_CODE_BACKUP_SAF);
} else {
// start my custom file browser...
}