我正在开发一个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; 。这怎么可能,我在这里缺少什么?
答案 0 :(得分:0)
您是否在AndroidManifest.xml文件中添加了此权限?
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在Android应用程序中读取文件所需的读取权限。 在Android应用程序中写入文件所需的写入权限。