意图操作OPEN_DOCUMENT并不总是与FLAG_GRANT_PERSISTABLE_URI_PERMISSION一起使用

时间:2014-04-03 06:59:53

标签: android android-intent

我正在尝试使用新的Storage Access Framework但是在保存打开的文件时会出现间歇性问题。这就是我正在做的事情。

要选择文件,我使用ACTION_OPEN_DOCUMENT,如下所示:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("audio/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);

startActivityForResult(intent, 1);

然后在onActivityResult()

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    uri = data.getData();
    final int takeFlags = data.getFlags() & Intent.FLAG_GRANT_READ_URI_PERMISSION;
    getContentResolver().takePersistableUriPermission(uri, takeFlags);
    ...
}

这似乎在大多数情况下都有效,即uri被持久化,即使重启后我也可以打开文件。但是,情况并非总是如此,并非所有设备都没有。我让一些用户抱怨他们在重启手机后无法打开文件,必须再次选择它。

我可以在升级应用时模拟此处的问题。有时升级后,似乎持久性会丢失。但它又是间歇性的,因此很难找出可能出现的问题。

有什么想法吗?

0 个答案:

没有答案