Android系统应用无法创建目录

时间:2014-08-14 02:23:36

标签: android android-sdcard android-external-storage

我正在开发一个Android应用程序。在其中一个模块中,我在外部存储器中创建一个目录,使用下面的代码存储文件。这些工作正常,我可以创建目录。

    public class Main extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            Button btnCreateDir = (Button) findViewById(R.id.createDir);
            btnCreateDir.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    try {
                        File pictureFileDir = getDir();

                        if (!pictureFileDir.exists() && !pictureFileDir.mkdirs()) {
                            Toast.makeText(getApplicationContext(),"Can't create directory",Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(getApplicationContext(),"directory created/exists",Toast.LENGTH_LONG).show();
                        }
                    } catch (Exception e4) {
                        e4.printStackTrace();
                    }
                }
            });
        }   
        private File getDir() {
            File sdDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
            return new File(sdDir, "GaPopupFile");
        }
    }   

然而,当我将这个应用程序作为系统应用程序(通过使用系统证书签名并存储在system / app文件夹中)时,我看到执行时相同的代码,返回'无法创建目录& #39; 。这怎么可能,我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

您是否在AndroidManifest.xml文件中添加了此权限?

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

在Android应用程序中读取文件所需的读取权限。 在Android应用程序中写入文件所需的写入权限。