如何拥有在Android中删除外部存储中写入文件的必要权限,而不必求助于Root
我正在使用三星J7 Unrooted进行测试 My AndroidManifest.xml包含写入外部存储所需的权限如何拥有在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:
<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();
}
}