Android 如何从“多媒体资料”中仅选择相机捕获图像?

Android 如何从“多媒体资料”中仅选择相机捕获图像?,android,Android,我只想从图库中选择那些从相机中点击的图像,而不是从其他来源显示的图像 Cursor imagecursor = getApplicationContext().getContentResolver().query( android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {MediaStore.Images.Media.DATA, Med

我只想从图库中选择那些从相机中点击的图像,而不是从其他来源显示的图像

Cursor imagecursor = getApplicationContext().getContentResolver().query(
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[] {MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID}, null,
                null, null);
这个查询提供了所有的图像


我想要相机图像的路径,不考虑画廊和相机的意图。是否有一些通用方法可以返回捕获图像的路径路径?这里是一个示例,希望对您有所帮助

package com.mahesh.gallerytestapp;


public class MainActivity extends Activity {

Uri selectedImageUri;
String  selectedPath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b = (Button) findViewById(R.id.bGallery);
Button bCam= (Button) findViewById(R.id.bCamera);
ImageView preview = findViewById(R.id.preview);
bCam.setOnClickListener(new OnClickListener() {

 @Override
 public void onClick(View v) {
  // TODO Auto-generated method stub
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
            startActivityForResult(cameraIntent, 100); 
 }
});


b.setOnClickListener(new OnClickListener() {

 @Override
 public void onClick(View v) {
  // TODO Auto-generated method stub
 openGallery(10);
 }
});
}



 public void openGallery(int req_code){

    Intent intent = new Intent();

    intent.setType("image/*");

    intent.setAction(Intent.ACTION_GET_CONTENT);

    startActivityForResult(Intent.createChooser(intent,"Select file to upload "), req_code);

 }

public void onActivityResult(int requestCode, int resultCode, Intent data) {



    if (resultCode == RESULT_OK) {
     if(data.getData() != null){
       selectedImageUri = data.getData();
     }else{
      Log.d("selectedPath1 : ","Came here its null !");
      Toast.makeText(getApplicationContext(), "failed to get Image!", 500).show();
     }

     if (requestCode == 100 && resultCode == RESULT_OK) {  
            Bitmap photo = (Bitmap) data.getExtras().get("data"); 
            selectedPath = getPath(selectedImageUri);
            preview.setImageURI(selectedImageUri);
            Log.d("selectedPath1 : " ,selectedPath);

        } 

        if (requestCode == 10)

        {

           selectedPath = getPath(selectedImageUri);
           preview.setImageURI(selectedImageUri);
           Log.d("selectedPath1 : " ,selectedPath);

        }

    }

}


public String getPath(Uri uri) {

    String[] projection = { MediaStore.Images.Media.DATA };

    Cursor cursor = managedQuery(uri, projection, null, null, null);

    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

    cursor.moveToFirst();

    return cursor.getString(column_index);

}

 }

尝试此操作我想要相机图像的路径,与画廊和相机意图无关。是否有一些通用方法返回捕获图像的路径路径。您可以获取图片公共目录的路径,因此这可能会有所帮助