系统应用程序未将文本文件保存在SD卡上

时间:2015-10-09 13:01:39

标签: android

我创建了一个系统应用程序,其中我试图在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" />

任何帮助?

1 个答案:

答案 0 :(得分:1)

该应用是系统应用,因此您无权访问SD。

在这种情况下,您必须创建另一个具有SD权限的应用程序,并使用intent调用来读取/写入SD。