Android 相机意图图片文件路径

Android 相机意图图片文件路径,android,path,image,Android,Path,Image,我试图得到我用相机拍摄的照片的路径。当我尝试用我的代码拍照时,字符串是空的。当我关闭我的应用程序时,打开相机应用程序并在那里拍照,然后重新打开我的应用程序并使用我的代码,然后我获得我使用相机应用程序拍摄的最后一张照片的字符串。我的问题是,为什么我的相机不工作,为什么我使用相机应用程序时它工作 这是我的密码: public void onClick(View arg0) { switch (arg0.getId()) { case R.id.btnImageCaptu

我试图得到我用相机拍摄的照片的路径。当我尝试用我的代码拍照时,字符串是空的。当我关闭我的应用程序时,打开相机应用程序并在那里拍照,然后重新打开我的应用程序并使用我的代码,然后我获得我使用相机应用程序拍摄的最后一张照片的字符串。我的问题是,为什么我的相机不工作,为什么我使用相机应用程序时它工作

这是我的密码:

public void onClick(View arg0) {
    switch (arg0.getId()) {     
      case R.id.btnImageCapture:
        Intent openCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
          startActivityForResult(openCamera, OPEN_CAMERA); 
                    break;
    }
}


试试这个。它起作用了

  private Uri imageUri;

  public void onClick(View arg0) {
    switch (arg0.getId()) {     
      case R.id.btnImageCapture:

    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    File photo = new File(Environment.getExternalStorageDirectory(),  "Pic.jpg");
    intent.putExtra(MediaStore.EXTRA_OUTPUT,
            Uri.fromFile(photo));
    imageUri = Uri.fromFile(photo);
    startActivityForResult(intent, OPEN_CAMERA);
                    break;
    }
}


为什么不使用onActivityResult中提供给您的图像的Uri?data.getData();这是因为我需要文件路径请使用Uri尝试我的答案。我不确定Uri是否已填充。如何检查它?我肯定需要文件路径,因为我必须将它保存在SQLite数据库中。它必须是jpg?不能是png吗?
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         switch(requestCode){
         case OPEN_CAMERA:
             if (resultCode == RESULT_OK && data != null) {
                 String picturePath = getLastImagePath(); 
                 break;
             } 
             }
        }
  private Uri imageUri;

  public void onClick(View arg0) {
    switch (arg0.getId()) {     
      case R.id.btnImageCapture:

    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    File photo = new File(Environment.getExternalStorageDirectory(),  "Pic.jpg");
    intent.putExtra(MediaStore.EXTRA_OUTPUT,
            Uri.fromFile(photo));
    imageUri = Uri.fromFile(photo);
    startActivityForResult(intent, OPEN_CAMERA);
                    break;
    }
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case OPEN_CAMERA:
        if (resultCode == Activity.RESULT_OK) {
            Uri selectedImage = imageUri;
            getContentResolver().notifyChange(selectedImage, null);
            ImageView imageView = (ImageView) findViewById(R.id.ImageView);
            ContentResolver cr = getContentResolver();
            Bitmap bitmap;
            try {
                 bitmap = android.provider.MediaStore.Images.Media
                 .getBitmap(cr, selectedImage);

                imageView.setImageBitmap(bitmap);
                Toast.makeText(this, selectedImage.toString(),
                        Toast.LENGTH_LONG).show();

            } catch (Exception e) {
                Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT)
                        .show();

            }
        }
    }
}