1

我试图将文本文件保存到 sd 卡,但我收到 Eacess(权限定义)错误。我的代码如下所示:

      try {
            File myFile = new File(Environment.getExternalStorageDirectory().getPath() + "/myfile");
            myFile.createNewFile();
            FileOutputStream fOut = new FileOutputStream(myFile);
            OutputStreamWriter myOutWriter = 
                                    new OutputStreamWriter(fOut);
            myOutWriter.append(text.getText());
            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();
        }

我已经允许`

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />`

在 android 清单中

我一直在查看与此问题相关的其他一些帖子,但没有解决它。

我错过了什么?

更新我的清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.files"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />   
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.files.FilesActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
4

1 回答 1

2

要将文件保存到外部存储,它有助于拥有外部存储。:-)

不幸的是,AVD 管理器默认没有外部存储(尽管我建议他们改变这个)。因此,如果您使用的是模拟器,请仔细检查以确保您已填写“SD 卡”大小的值。

我通常分配一些小的东西,比如 32MB——足够你可以使用外部存储,而不是太多以至于它会占用你的硬盘驱动器或减慢最初的 AVD 启动。当然,如果您计划测试需要更多外部存储的东西,请选择一个合适的值。

于 2013-04-10T22:18:21.470 回答