我已经多次看过这个问题,但没有一个答案符合我的情况。我有一个应用程序,可以读取NFC标签并对数据执行某些操作。我现在想要为应用程序添加相机功能,这样当我按下按钮时,它会带我到相机,在拍完照片后,应该显示该图像。但是,onActivityResult中的resultCode总是返回0而不是1.我只有1个活动,所以我无法看到我的问题所在。 我的清单中有这个:
<uses-feature android:name="android.hardware.camera" android:required="true"/>
当我按下调用launchCamera的onClick方法的按钮时,它会执行这个..
public void launchCamera(View view)
{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
Log.i(TAG, "launchCamera");
}
然后调用只有
的OnPausesuper.onPause();
相机启动,我正常拍照,然后关闭并返回我的Activity,并在ActivityResult上调用(我知道这是因为logcat消息)。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(TAG, "onActivityResult");
Log.i(TAG, String.valueOf(resultCode));
Log.i(TAG, String.valueOf(requestCode));
if(requestCode == 1 && resultCode == RESULT_OK)
{
Bundle extras = data.getExtras();
Bitmap photo = (Bitmap) extras.get("data");
imgView.setImageBitmap(photo);
}
}
但由于某些未知原因,resultCode为0,我也从logcat消息中知道。在此之后,然后调用onResume。
我不知道为什么它返回为0,我找不到任何问题或答案来帮助我这个问题所以任何输入都会很好或者如果有一个我无法找到的问题的答案,请指出我在那个方向,欢呼。
答案 0 :(得分:0)
试试这个,看看会发生什么;
- 在类中定义一个静态int,并将其作为参数赋予startactivity。
private final static int REQUEST_IMAGE_CAPTURE = 1; startActivityForResult(intent,REQUEST_IMAGE_CAPTURE);
- 并听取这样的结果;
if(requestCode == REQUEST_IMAGE_CAPTURE&amp;&amp; resultCode == getActivity()。RESULT_OK)
你可以使用&#39; this.RESULT_OK&#39;如果你在活动中写这个代码。如果它 片段使用getActivitiy()。RESULT_OK