TeamBlanks 2014-08-25 08:22 采纳率: 0%
浏览 2346

Android 调用系统默认的相机拍照

Android 拍照完确认的时候 onActivityResult()没有执行,但是取消的时候会调用。有的手机可以,但是华为的手机好像就没有执行

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 12:42
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在 Android 中,onActivityResult() 方法用于处理 Activity 的结果回调,包括成功和失败两种情况。

    在使用 CameraActivity 或者 MediaStore 获取图片时,如果没有调用 setResult() 方法来设置结果状态(例如:RESULT_OK),那么在用户点击返回键或退出应用后,onActivityResult() 方法不会被调用。

    以下是一个简单的示例:

    Intent intent = new Intent();
    intent.putExtra("image", image); // 将图像数据作为额外参数传递给结果意图
    startActivityForResult(intent, REQUEST_CODE);
    

    在这个例子中,我们通过 startActivityForResult() 方法启动了一个活动,并设置了请求码 REQUEST_CODE。当活动完成并返回结果时,我们将从 getIntent() 返回的结果中获取到图像数据。

    onActivityResult() 方法中,我们可以检查 requestCode 参数是否与我们的请求码相匹配,并根据需要进行相应的操作。如果 requestCode 与我们的请求码匹配,那么我们可以从 getIntent().getExtras() 中获取图像数据,并将其存储起来或者展示出来。

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            Bitmap bitmap = (Bitmap) extras.get("data");
            // 在这里处理得到的图像
        }
    }
    

    注意:这个示例假设你的 onActivityResult() 方法已经正确地实现了,即它能够接受来自 startActivityForResult() 方法的返回值,并将它们存储在 getIntent().getExtras() 中。如果你的 onActivityResult() 方法存在问题,请确保你已经修复了这些问题。

    此外,如果想要在应用退出时自动保存图片,你可以考虑使用 SharedPreferences 来存储图像路径。这样,即使应用关闭,这些信息也不会丢失。

    评论

报告相同问题?