我试图从我使用相机意图拍摄的拍摄图像中获取文件路径。拍摄照片并返回它工作正常,但是当我尝试通过从intent获取数据并获取其路径时在OnActivityResult方法中获取它的路径时,我收到以下错误:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1888, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.package.app/com.package.app.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List android.net.Uri.getPathSegments()' on a null object reference
正如我所说,拍照工作,甚至设法将其作为附件提交给邮件应用程序,没有任何问题,但是它的路径是一个问题。这是我的OnActivityResult方法的代码(我在TextView上放置一个setText()只是为了看看getPath()结果是什么样的):
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){
if(requestCode == 1){
imageUri = data.getData();
}
}
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
imageUri = data.getData();
path = imageUri.getPath();
tv = (TextView) findViewById(R.id.tvField);
tv.setText(path);
}
}
没有最后3行,它完美无瑕。错误指向该行:
path = imageUri.getPath();
感谢您事先对我的问题感兴趣。
这是“相机请求”的意图
ibCam= (ImageButton) findViewById(R.id.ibCam);
ibCam.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
});
答案 0 :(得分:0)
imageUri = data.getData();
ACTION_IMAGE_CAPTURE
未返回Uri
。
根据您的ACTION_IMAGE_CAPTURE
Intent
,使用Bitmap photo=data.getParcelableExtra("data")
检索您请求的缩略图大小的照片。