Android API 低于 19 相当于 ContentResolver takePersistableUriPermission
Android API below 19 equivalent for ContentResolver takePersistableUriPermission
我用它来让用户 select 文件,在 selection 之后我只在共享首选项中存储文件的 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 下面的等价物是什么?
一般来说,问题是如何在这种模式下获得API`s below 19中的persistnet权限?谢谢,
What is the equivalent for this below API 19?
有 none,缺少在您自己的应用程序中将内容复制为本地文件。
我用它来让用户 select 文件,在 selection 之后我只在共享首选项中存储文件的 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 下面的等价物是什么? 一般来说,问题是如何在这种模式下获得API`s below 19中的persistnet权限?谢谢,
What is the equivalent for this below API 19?
有 none,缺少在您自己的应用程序中将内容复制为本地文件。