Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android摄像头:从摄像头保存图像时的奇怪行为_Android - Fatal编程技术网

Android摄像头:从摄像头保存图像时的奇怪行为

Android摄像头:从摄像头保存图像时的奇怪行为,android,Android,我在我的应用程序中使用Android的摄像头。。。。。。我的要求是,我拍摄的现场照片,并保存在一个由我决定的位置,而不是在画廊的相机文件夹。 然后在Uri的帮助下获取照片并将其显示在我的应用程序中 但我实现的是在某些设备上正常运行,在某些设备上,我的代码无法创建文件夹和捕获的图像。。。。因此,当我的应用程序想要显示照片时,我什么也得不到 我已经在Galaxy S和Galaxy SII上试用了我的应用程序。。。。在galaxy S上,它不能正常工作,奇怪的是在一些SII设备上,它工作正常,但有些无

我在我的应用程序中使用Android的摄像头。。。。。。我的要求是,我拍摄的现场照片,并保存在一个由我决定的位置,而不是在画廊的相机文件夹。 然后在Uri的帮助下获取照片并将其显示在我的应用程序中

但我实现的是在某些设备上正常运行,在某些设备上,我的代码无法创建文件夹和捕获的图像。。。。因此,当我的应用程序想要显示照片时,我什么也得不到

我已经在Galaxy S和Galaxy SII上试用了我的应用程序。。。。在galaxy S上,它不能正常工作,奇怪的是在一些SII设备上,它工作正常,但有些无法在指定位置创建图像和文件夹。但在Galaxy选项卡上,一切都正常

我也在Nexus S上测试过。。。。这里的问题是不同的,在Nexus S上,当我启动相机并拍摄图像后,我可以看到图像预览,在那个里我有两个选项来保存、取消或重新拍摄。。。。但当我要求保存时,什么也没有发生,当我取消时,它会释放相机,并重新恢复其设计的工作状态

我不明白为什么在不同的设备上有不同的发现。。。。甚至设备也来自同一制造商,如Galaxy SII

我正在发布我的代码。。。如果有人有提示,请与我分享。。。多谢各位

    public static String EXTERNAL_STORAGE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath().toString()+"/DCIM/";

    private String imagePath = ImageDecoder.EXTERNAL_STORAGE_PATH;

   imagePath = imagePath + projectdata.getProjectName().toString().trim() + "/"
                            + System.currentTimeMillis() + ".jpg";
                    File imageFile = new File(imagePath);
                    Uri imageFileUri = Uri.fromFile(imageFile);
                    Intent captureImage = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                    captureImage.putExtra(MediaStore.EXTRA_OUTPUT, imageFileUri);
                    startActivityForResult(captureImage, CAMERA_PIC_REQUEST);



    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            String imgDescription = null;
            switch (requestCode) {

            case CAMERA_PIC_REQUEST:
                if (resultCode == RESULT_OK) {

                    cam = new Controller_Camera(context, sessiondata, projectdata);
                    imgDescription = getString(R.string.DEFAULT_IMAGE_TITLE) + DateTimeUtility.GetSystemDate();

                    String response = cam.savePhotoWithIssue(imagePath, app, imgDescription,
                            getString(R.string.DEFAULT_ISSUE_NAME), getString(R.string.DEFAULT_IMAGE_TITLE));
                    if (response == "Successfull") {
                        Intent issueeditor = new Intent(context, IssueEditor.class);
                        issueeditor.putExtra("TODO", "editissue");
                        issueeditor.putExtra("TAB", "Photos");
                        issueeditor.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        finish();
                        startActivity(issueeditor);
                    } else {
                        Toast.makeText(context, getResources().getString(R.string.FAILURE_SAVING), Toast.LENGTH_SHORT)
                                .show();
                    }
                }
                break;

只需检查SD卡是否已安装

 private boolean isSDCARDMounted() {
    String status = Environment.getExternalStorageState();
    if (status.equals(Environment.MEDIA_MOUNTED))
        return true;
    return false;
    }



if (isSDCARDMounted()) {

        File f = new File(Environment.getExternalStorageDirectory(),
            TEMP_PHOTO_FILE);
        try {
        f.createNewFile();
        } catch (IOException e) {

        }
        return f;
    }