Java 从Intent(MediaStore.ACTION\u image\u CAPTURE)获取图像uri
嗨,当我这样做的时候Java 从Intent(MediaStore.ACTION\u image\u CAPTURE)获取图像uri,java,android,android-intent,android-camera-intent,start-activity,Java,Android,Android Intent,Android Camera Intent,Start Activity,嗨,当我这样做的时候 Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (takePictureIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); } 在onActivit
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
在onActivityResult中,我从相机应用程序的数据意图中获取图像的缩略图
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView.setImageBitmap(imageBitmap);
我用的是像这样的位图
但是如果我想要imageuri,这样我就可以从中获得完整大小的图像了。我尝试从上面的意图中获取图像uri
Uri uri = data.getData();
if (uri != null) {
Log.d(TAG, uri.toString());
}else{
Log.d(TAG,"uri is null");
}
这样做,我得到的uri在我的logcat中是空的。因此,任何人都可以让我知道如何获得图像uri。我不想使用额外的输出并指定我自己的路径。提前感谢,在低分辨率设备中会出现一个。检查解决方法。在某些设备中有一个与此相关的bug。看一看,知道如何解决它 在某些设备中,onActivityForResult()中的Uri为空。所以你需要 将Uri设置为放置捕获的图像
谢谢我会看的谢谢我会看的请检查这个链接它对我有用
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// If there any applications that can handle this intent then call the intent.
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
Uri fileUri = Uri.fromFile(getOutputMediaFile());
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(takePictureIntent, CAMERA_PICKER);
}
public File getOutputMediaFile() {
// To be safe, you should check that the SDCard is mounted
// using Environment.getExternalStorageState() before doing this.
File mediaStorageDir;
// If the external directory is writable then then return the External pictures directory.
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyApp");
} else {
mediaStorageDir = Environment.getDownloadCacheDirectory();
}
// Create the storage directory if it does not exist
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("MyCameraApp", "failed to create directory");
return null;
}
}
// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
File mediaFile;
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
return mediaFile;
}