首页 > 解决方案 > 如何在 Android Studio 中使用 Uri 访问“Android/data/”中的文件夹

问题描述

我的问题是我无权访问“Android/data/”中的文件夹,但我可以通过向用户请求 Uri 来确认它来访问“Android/data/”文件夹。

这是代码,无论我尝试什么,它总是将文件保存到“Android/data/”而不是“Android/data/com.tencent.ig/”

public void copy(File src, Uri dst) throws IOException {

    Uri treeUri = getPersistedUriPermissions().getUri();
    Uri subDir = DocumentsContract.buildDocumentUriUsingTree(treeUri,DocumentsContract.getTreeDocumentId(treeUri)+"/com.tencent.ig/");
    Toast.makeText(MainActivity.this,subDir.toString(),Toast.LENGTH_LONG).show();
    DocumentFile file = DocumentFile.fromTreeUri(this,subDir);


    try (InputStream in = new FileInputStream(src)) {
        try (OutputStream out = getContentResolver().openOutputStream(file.createFile("","Active.sav").getUri(),"w")){
            byte[] buf = new byte[1024];
            int len;
            while ((len = in.read(buf)) > 0){
                out.write(buf,0,len);
            }
        }
    }
}

标签: javaandroidandroid-studio

解决方案


推荐阅读