gpt4 book ai didi

Android - 在运行时获得写入辅助SD卡的权限

转载 作者:行者123 更新时间:2023-11-29 17:22:49 25 4
gpt4 key购买 nike

The WRITE_EXTERNAL_STORAGE permission must only grant write access to the primary external 
storage on a device. Apps must not be allowed to write to secondary external storage
devices, except in their package-specific directories as allowed by synthesized
permissions. Restricting writes in this way ensures the system can clean up files
when applications are uninstalled.

但是我发现可以在运行时获得写入权限(概念证明:Total Commander),使用系统文件资源管理器选择一个文件夹,在文件夹选择完成后允许写入。但是我似乎找不到如何实现这个的例子。有什么帮助吗?下面显示了我正在引用的文件夹选择的屏幕截图。

enter image description here

最佳答案

我想我会为 future 的访问者回答我自己的问题...

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
intent.putExtra("android.content.extra.SHOW_ADVANCED", true);
startActivityForResult(intent, 1);


protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
boolean finish = true;
boolean selectionWasCorrect = false;
if(resultCode==RESULT_OK){
//Take persistant permission. This way you can modify the selected folder ever after a device restart.
Uri treeUri = data.getData();
int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
getContentResolver().takePersistableUriPermission(treeUri, takeFlags);
}
}

所有这些仅适用于 KIT_KAT 及以上版本

关于Android - 在运行时获得写入辅助SD卡的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35996341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com