我使用它来让用户选择文件,选择之后,我仅将文件的URI存储在共享首选项中。将来用户可以打开此文件-所以我有了URI,因此可以完成

        final Intent intent = new Intent();
        if (Integer.valueOf(android.os.Build.VERSION.SDK_INT) >= 19) {
            intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
        }
        else {
            intent.setAction(Intent.ACTION_GET_CONTENT);
        }
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("application/msword,application/pdf,text/plain");  //Text, DOC, PDF
        startActivityForResult(intent, READ_REQUEST_CODE);

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK && data != null) {
    //Get and Store the URI in shared prefs...
    final int takeFlags = data.getFlags()
                    & (Intent.FLAG_GRANT_READ_URI_PERMISSION
                    | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
    getContentResolver().takePersistableUriPermission(uri, takeFlags);
}


最后一行代码(如果我理解正确,则保存了读取权限以供以后使用)仅在API 19及更高版本上有效。
API 19下的等效项是什么?
通常,问题是如何以这种方式在19岁以下的API中获得持久性网络许可?谢谢,

最佳答案

API 19下的等效项是什么?


除了在您自己的应用程序中将内容的副本作为本地文件复制外,没有其他方法。

关于android - 适用于ContentResolver的19以下版本的Android API takePersistableUriPermission,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30424473/

10-12 00:31
查看更多