2

最近,我收到一个用户的崩溃报告,该用户试图在棒棒糖设备上使用存储访问框架创建数据库备份。

例外:

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);

问:

是否所有 v19+ 设备都真正支持存储访问框架?我们应该如何处理这种情况?

[更新]

从不同的设备收到 4 个额外的崩溃报告。

4

1 回答 1

2

也许它可能对遇到同样问题的其他人有用,所以这就是我解决问题的方法

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...
}
于 2015-10-11T19:30:37.680 回答