无法在android 9和10中以编程方式重命名内部存储文件

gojuced7  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(460)

我正在构建一个应用程序,它有一个函数可以重命名内部存储中的文件。
代码:

Button button2 = (Button) findViewById(R.id.button2);
    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            File currentFile = new File("/sdcard/from.txt");
            File newFile = new File("/sdcard/to.txt"); 
           }

     private boolean rename(File from, File to) {
            return from.getParentFile().exists() && from.exists() && from.renameTo(to);
        }

它适用于android4.2.2,但是对于andoid9和andoid10它不起作用 android:requestLegacyExternalStorage="true" 并将外部读写权限转换为manifest.xml。
请帮忙。

ss2ws0br

ss2ws0br1#

其实这个“错误”自己解决了。我所做的只是在我的android10设备上卸载并重新安装这个应用程序,当运行时存储权限对话框弹出时,我先拒绝了这个权限,然后手动允许了它。在这之后它成功了。我没有更改上面的任何代码,所以这可能是运行时权限对话框的错误。

相关问题