Android 意图问题
我有一个类可以访问本机相机来拍照。拍摄完照片后,照片将保存在文件夹中,并显示在新活动中 问题是,在拍摄完照片后,我试图获取输入到intent中的数据,但它总是说intent是Android 意图问题,android,Android,我有一个类可以访问本机相机来拍照。拍摄完照片后,照片将保存在文件夹中,并显示在新活动中 问题是,在拍摄完照片后,我试图获取输入到intent中的数据,但它总是说intent是null.pointer.exception。下面是我的班级,任何人请帮助我 import java.io.File; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.B
null.pointer.exception
。下面是我的班级,任何人请帮助我
import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class CameraTestActivity extends Activity {
Button start;
final int TAKE_PICTURE = 2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start = (Button)findViewById(R.id.startButton);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
File file = new File(Environment.getExternalStorageDirectory().toString() + "/testImage/" + "toBeUpload.jpg");
Uri imageUri = Uri.fromFile(file);
Intent cameraIntent = new Intent("android.media.action.IMAGE_CAPTURE");
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
cameraIntent.putExtra("path", imageUri.toString());
startActivityForResult(cameraIntent,TAKE_PICTURE);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
if(resultCode == RESULT_OK)
{
if(requestCode == TAKE_PICTURE)
{
/*ERRROR OCCUR HERE*/
Bundle extras = intent.getExtras();
}
}
}
}
我想知道对super.onActivityResult的调用是否正在使用Intent实例,并在完成后将其设置为null。您不需要调用super类,因为您自己正在实现它,所以请尝试一下。调用
super.onActivityResult(requestCode、resultCode、intent)代码>在您处理事件之后。Rich和userSeven7s是正确的,但在您的特定情况下,这不是重点:您实际上不需要照片选择器的意图返回数据(例外:一些有缺陷的非常旧的手机只在附加功能中写入缩略图,实际上并没有将图像写入您指定的路径,但这是另一回事)——只需查找写入您最初传递意图的URI的图像即可。尝试:
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
参考:
检查logcat,他们会给出错误行的详细信息,并尝试解决问题……。检查意图为空??可能重复我尝试过不调用super.onActivityResult,但意图为空。可以稍微了解一下您的最后一句话“只需查找写入您最初传递意图的URI的图像。”对不起,我的英语不是很好。你写了这行:cameraIntent.putExtra(MediaStore.EXTRA\u输出,imageUri)
在那里可以找到完整大小的图像。你是说我直接访问Uri,但没有从意图中获取Uri?这可能会起作用,但我仍然不知道意图为空的原因。意图为空还是额外数据为空?如果只是额外数据,请参阅(哪个Lukas标记为重复)。意图为空,而不是额外的数据。您使用的请求代码纯粹用于内部引用(因此您可以准确地消除您启动的活动返回结果的歧义)。使用不同的值不会更改实际返回的意图,只会更改它返回的请求代码。