我创建了一个系统应用程序,其中我试图在SD卡上保存文本文件,我写了以下代码:
Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
if(isSDPresent)
{
try {
File myFile = new File("/sdcard/mysdfile.txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter =
new OutputStreamWriter(fOut);
myOutWriter.append("tttttttteeeeeest");
myOutWriter.close();
fOut.close();
Toast.makeText(getBaseContext(),
"Done writing SD 'mysdfile.txt'",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}//
}
else
{
Toast.makeText(getBaseContext(),"There is no SD Card",Toast.LENGTH_LONG).show();
}
它给了我以下错误:
open failed eacces (permission denied)
这是清单文件的开头:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test.myapplication"
android:sharedUserId="android.uid.system"
>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
任何帮助?
答案 0 :(得分:1)
该应用是系统应用,因此您无权访问SD。
在这种情况下,您必须创建另一个具有SD权限的应用程序,并使用intent调用来读取/写入SD。