我正在开发一个应用程序,我需要在提交它们和相关数据之前拍摄3张图像。 我有以下代码:
听众:
View.OnClickListener imgListeners = new View.OnClickListener() {
@Override
public void onClick(View v) {
String sSuffix = "_PIC";
String sElementName = poleId.getText().toString();
switch (v.getId()) {
case R.id.ImagePoleId:
sSuffix = "_ID";
break;
case R.id.ImagePole:
sSuffix = "_POLE";
break;
case R.id.ImagePoleBulbs:
sSuffix = "_BULBS";
break;
}
takeCameraPic(sElementName, sSuffix + ".jpg");
}
};
设置监听器:
idImgButton.setOnClickListener(imgListeners);
poleImgButton.setOnClickListener(imgListeners);
bulbsImgButton.setOnClickListener(imgListeners);
听众使用的函数:
private void takeCameraPic(String elementName ,String picNameSuffix) {
if (elementName.equals("")) return;
idImgFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), elementName + picNameSuffix);
Uri idImgUri = Uri.fromFile(idImgFile);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, idImgUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 0);
}
当我进入应用程序时,一切正常,相机弹出,我可以拍摄图像并返回。 但是当我在整个内部存储中查找图像时,它就不存在了。我检查过DCIM \ PICTURES文件夹,什么都没有。 使用该应用程序保存的唯一图片在图片信息中显示它保存在以下文件夹中:
/存储/模拟/ 0 /图片
答案 0 :(得分:1)
尝试使用Environment.DIRECTORY_DCIM
代替Environment.DIRECTORY_PICTURES
,这可以让您
/存储/模拟/ 0 / DCIM
文件夹。然后,您可以创建Pictires文件夹并在那里保存图像。