在外部SD卡中写入文件时,我收到错误的EACCESS权限被拒绝。我已经设置了许可 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
但是当我读取文件时,我成功地能够读取它,但无法写入文件。我使用了SD卡写入文件的代码是:Android中的EACCESS权限被拒绝
String path="mnt/extsd/Test";
try{
File myFile = new File(path, "Hello.txt"); //device.txt
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(txtData.getText());
myOutWriter.close();
fOut.close();
Toast.makeText(getBaseContext(),"Done writing SD "+myFile.getPath(),Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),Toast.LENGTH_SHORT).show();
System.out.println("Hello"+e.getMessage());
}
}
用于外部存储卡的路径是mnt/extsd/
。这就是为什么我无法使用Environment.getExternalStorageDirectory().getAbsolutePath()
这是给我一个路径mnt/sdcard
和此路径是我的平板电脑的内部存储路径。请告诉我为什么这是如此n我该如何解决这个问题
ok ..那么是否有其他书写方式? – CodingDecoding
你有平板电脑的root权限吗?如果你还可以做这样的测试:1)让你的应用使用WRITE_MEDIA_STORAGE权限,然后重建它; 2)卸载你的应用程序,如果它已经安装,然后运行“adb root”,“adb remount”,“adb push YouApp.apk /system/app/YouApp.apk”这将使你的应用程序成为系统应用程序; 3)启动您的应用程序并检查测试代码是否正常工作。如果是的话,除了通过平台证书签署应用程序或使其成为系统应用程序,似乎没有其他办法。或者你可以等待看看其他人是否有更好的主意。 –
感谢您的信息。它真的帮助:) – CodingDecoding