【发布时间】:2012-02-10 17:14:27
【问题描述】:
好的,这就是我要发送的意图
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
startActivityForResult(intent, REQUEST_CODE);
然后在 onActivityResult 我这样做:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i("Intent name:",data.toString());
if (requestCode == REQUEST_CODE){
if (resultCode == Activity.RESULT_OK){
Toast.makeText(this, "Image saved to \n" + fileUri.toString() , Toast.LENGTH_LONG).show();
Toast.makeText(this, "Result Code: " + resultCode , Toast.LENGTH_LONG).show();
//Bitmap mBitMap = BitmapFactory.decodeFile(data.getData().toString());
//imageView.setImageBitmap(mBitMap);
}
else if (resultCode == RESULT_CANCELED){
Toast.makeText(this, "Capture Cancelled", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(this, "Capture failed", Toast.LENGTH_LONG).show();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
LogCat 在显示 Image Saved....的行显示 NullPointerException。
还有这个:java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=null}
无论我尝试使用我班级的data 对象还是fileUri 字段,都会发生这种情况。
为什么返回数据null?
为什么即使我使用类的字段,我仍然会得到同样的错误?
【问题讨论】:
-
你没有使用 getIntent() 来访问 onActivity Result 中的 MediaStore.EXTRA_OUTPUT
-
不。不知道如何使用它。能给我个sn-p代码吗?
-
fileUri 是静态全局变量吗?
-
intent.putExtra(MediaStore.EXTRA_OUTPUT,fileUri);在 Activity 的 Result_OK 中使用 Uri u = data.getData();获取 uri 还要确保 fileUri 是 Uri 而不是文件名..
-
数据返回 null。我已将文件的所有处理移出
onActivityResult。我在其中所做的只是imageView.setImageBitmap并且仍然会因 LogCat 中具有相同描述的致命异常而停止
标签: java android android-intent