Android - 拍摄照片时,resultCode永远不会是RESULT_OK

时间:2014-05-14 17:31:21

标签: android android-camera-intent

当我试图拍照并将其存储在外部存储设备中时,我被卡在应用上。相机意图工作,但我无法确认捕获的图像。然后我将onActivityResult更改为以下内容以监视resultCode。触摸确认按钮从不记录任何内容。触摸取消按钮虽然记录了预期的日志。

private static final int TAKE_PHOTO_CODE = 2;
private File destination;

takePhoto.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        destination = new File(Environment
        .getExternalStorageDirectory(), "name");
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT,
                Uri.fromFile(destination));
        intent.putExtra("return-data", true);
        startActivityForResult(intent, TAKE_PHOTO_CODE);
    }
});

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    Log.d("Test", "App is inside onActivityResult");
    Log.d("Test", String.valueOf(resultCode));
}

编辑:我相信我已经正确地提供了所有必需的权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"
        android:required="true" />

1 个答案:

答案 0 :(得分:2)

片段或活动中定义的“ onActivityResult(int requestCode,int resultCode,Intent data)”?

...如果它在Fragment中,请将日志添加到Activity中的相应方法,有时会带来这样的惊喜。

另一种可能是相机无法在提供的路径上写字。“目的地=新文件(环境)         .getExternalStorageDirectory(),“name”); “......确保创建并正确访问。