Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据目录在Android中没有读/写权限_Android_Android Emulator_Android Manifest - Fatal编程技术网

数据目录在Android中没有读/写权限

数据目录在Android中没有读/写权限,android,android-emulator,android-manifest,Android,Android Emulator,Android Manifest,我使用的是Android 1.5。我的数据目录没有读/写权限 System.out.println("DAta can write??--->"+Environment.getDataDirectory().canWrite()); System.out.println("DAta can read??--->"+Environment.getDataDirectory().canRead()); 因此,请建议我如何为数据目录提供权限 我试图做的是创建一个文件,并在emulator

我使用的是Android 1.5。我的数据目录没有读/写权限

System.out.println("DAta can write??--->"+Environment.getDataDirectory().canWrite());
System.out.println("DAta can read??--->"+Environment.getDataDirectory().canRead());
因此,请建议我如何为数据目录提供权限

我试图做的是创建一个文件,并在emulator的数据存储中添加一些内容,如下所示

private void writeToSDCard() {
        try {

            File lroot = Environment.getDataDirectory();

            if (lroot.canWrite()){
                File lfile = new File(lroot, "samplefile.txt");
                FileWriter lfilewriter = new FileWriter(lfile);
                BufferedWriter lout = new BufferedWriter(lfilewriter);
                lout.write("XXXXXXXXXXXXXXXXXX");
                lout.close();
            }
        } catch (IOException e) {
            Log.e(m_cTAG, "Could not write file " + e.getMessage());
        }
    }

您不应该查看数据目录。这是手机存储器中的一个系统目录,通常为
/data
,您的应用程序将永远没有写入该目录的权限

应用程序应将文件写入的目录由返回。它类似于
/data/data/com.yourdomain.YourApp/files

如果要写入手机存储器中的文件,请使用

如果需要SD卡的路径,请使用。要写入SD卡,您需要通过将以下内容添加到清单中,为应用程序授予相应的权限:

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

下面是要做的工作:private void writeToSDCard(){try{File lroot=Environment.getDataDirectory();if(lroot.canWrite()){File lfile=new File(lroot,“samplefile.txt”);FileWriter lfilewriter=new FileWriter(lfile);BufferedWriter lout=new BufferedWriter(lfilewriter);lout.write(“xxxxxxxxxxxx”);lout.close();}}catch(IOException e){Log.e(m_cTAG,“无法写入文件”+e.getMessage();}}是的,感谢您的宝贵建议..:-)哪些特定的外部存储状态将允许写入文件?。
OutputStream os = openFileOutput("samplefile.txt", MODE_PRIVATE);
BufferedWriter lout = new BufferedWriter(new OutputStreamWriter(os));