使用getExternalStoragePublicDirectory保存的Android图像不会显示在内部存储中

时间:2015-10-13 09:26:47

标签: android android-camera-intent internal-storage

我正在开发一个应用程序,我需要在提交它们和相关数据之前拍摄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 /图片

1 个答案:

答案 0 :(得分:1)

尝试使用Environment.DIRECTORY_DCIM代替Environment.DIRECTORY_PICTURES,这可以让您

  

/存储/模拟/ 0 / DCIM

文件夹。然后,您可以创建Pictires文件夹并在那里保存图像。