0

我正在开发一个 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 文件夹中)时,我看到相同的代码在执行时返回 'Can't create directory' 。这怎么可能,我在这里错过了什么?

4

1 回答 1

0

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

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

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

于 2014-08-14T03:54:20.623 回答