Bundle extra = data.getExtras()在使用摄像头拍摄后没有任何照片
我是Android新手,正在开发关于Google的培训课程,现在遇到问题。在执行Bundle extra = data.getExtras()
后,extra为空。此外,它会抛出一个NullPointerException之前,我添加代码"if(extra!=null)"
下面是onActivityResult的代码()方法Bundle extra = data.getExtras()在使用摄像头拍摄后没有任何照片
下面是代码部分,启动摄像头,并保存照片在本地
我的所有代码都遵循培训课程,我很困惑哪里出错。 有人可以帮我吗?
请更新您的onActivityResult()
,拍摄照片的结果不响应图像。它返回你在photo_intent.putExtra(MediaStore.EXTRA_OUTPUT, <<uri>>)
中通过的Uri。所以,请声明<<uri>>
全球那么你可以如果你通过了额外的参数MediaStore.EXTRA_OUTPUT
用相机意图,然后相机活动将写入所拍摄的图像,以这条道路在onActivityResult()
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
hasWriteContactsPermission = checkSelfPermission(Manifest.permission.CAMERA);
if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CAMERA},
REQUEST_CODE_ASK_PERMISSIONS);
return;
}
} else {
Intent intent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null) {
File photo = new File(Environment
.getExternalStorageDirectory(),
"Journal" + Utils_class.getID() + ".jpeg");
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photo));
mSelectedFilePath = photo.getAbsolutePath();
startActivityForResult(intent,
ACTION_TAKE_PICTURE);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
try {
if (resultCode == RESULT_OK) {
if (requestCode == ACTION_TAKE_PICTURE) {
// flag = true;
// new Utils();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
checkPermissionForStorageForCam();
} else {
Uri selectedImageUri = data.getData();
}
}
}
} catch (Exception e) {
}
}
@smilebuz你必须检查它的marshmellow与否。如果沼泽醇厚意味着您已获得运行时间的许可。 –
得到这个值并不会返回onActivityResult方法中的位图。
如果您将检查您传递的路径,那么您将知道实际上摄像头已将捕获的文件写入该路径。
把你的代码放在这里,而不是图像。 – currarpickt