调用相机进行拍照,我们一般会用到如下代码: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, reqCode);//reqCode是返回的code。 但是在有些手机会在protected void onActivityResult(int requestCode, int resultCode, Intent data)里返回的data为空,这时候我们就要想一些办法来解决了。 在我们调用系统相机的时候,我们可以这样做: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); SimpleDateFormat timeStampFormat = new SimpleDateFormat( "yyyy_MM_dd_HH_mm_ss"); String filename = timeStampFormat.format(new Date()); ContentValues values = new ContentValues(); values.put(Media.TITLE, filename); photoUri = getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); startActivityForResult(intent, reqCode); 在我们的onActivityResult里我们可以这样子处理: if (data != null && data.getData() != null) { uri = data.getData(); } // 一些机型无法从getData中获取uri,则需手动指定拍照后存储照片的Uri if (uri == null) { if (photoUri != null) { uri = photoUri; } } 其中data是指Intent data。 这样就很好的解决了返回为空的问题了。这样我们就仍然可以获取到我们拍到的图片了
android 拍照后返回的data为空
最新推荐文章于 2023-07-24 15:46:20 发布