Использование структуры доступа к хранилищу для создания файла

Недавно я получил отчет о сбое от пользователя, который пытался создать резервную копию базы данных с помощью 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...
}
Другие вопросы по тегам