如何拥有在Android中删除外部存储中写入文件的必要权限,而不必求助于Root

如何拥有在Android中删除外部存储中写入文件的必要权限,而不必求助于Root,android,Android,我正在使用三星J7 Unrooted进行测试 My AndroidManifest.xml包含写入外部存储所需的权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:

我正在使用三星J7 Unrooted进行测试

My AndroidManifest.xml包含写入外部存储所需的权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
它将文件保存在设备存储器上。 但当我使用代码指定可移动SD卡时:

File myFile = new File("sdcard/Billing/mysdfile.txt");
File myFile = new File("/storage/extSdCard/mysdfile.txt");
我遇到了错误: 打开失败:EACCES(权限被拒绝) 我尝试了不同的方法指向可移动SD卡,但遇到了相同的“打开失败:EACCES(权限被拒绝)”错误

我已经检查了我是否有写入外部存储的必要权限,它总是说“已授予”

我几乎尝试了谷歌搜索中列出的所有建议,但都没有用。有一些人建议“根”电话,但不幸的是,这不是我的选择


希望有人能帮助我获得在可移动外部存储器中保存文件所需的权限,而无需使用“根目录”手机。

不幸的是,SD卡存储器的路径因制造商而异。有关更多信息,请参见。您可以展示您的logcat@RemyLebeau,我已经有了可移动外部SD卡的正确路径,因为错误是“open failed:Enoint(没有这样的文件或目录)”。现在,我只想解决权限问题,我遇到了短根电话,并添加到系统/etc/权限-“Write_External_Storage”。@mr.icetea,日志中没有显示与被拒绝的权限相关的内容……请尝试以下操作:
public void verifyStoragePermissions() {
    if (ContextCompat.checkSelfPermission(InitActivity.this,
            Manifest.permission.WRITE_EXTERNAL_STORAGE)
            != PackageManager.PERMISSION_GRANTED) {
        Toast.makeText(getBaseContext(), "Denied", Toast.LENGTH_SHORT).show();
        if (ActivityCompat.shouldShowRequestPermissionRationale(InitActivity.this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE)) {

        } else {


        }
    }else{
        Toast.makeText(getBaseContext(), "Granted",Toast.LENGTH_SHORT).show();
    }
}