0

私はAndroidアプリを開発しています。モジュールの1つで、以下のコードを使用してファイルを保存するために外部ストレージにディレクトリを作成しています。問題なく動作し、ディレクトリを作成できます。

    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 フォルダーに保存することにより)、この同じコードを実行すると、「ディレクトリを作成できません」が返されることがわかります。これはどのように可能ですか、ここで何が欠けていますか?

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 に答える