简体   繁体   English

相机 onActivityResult : resultCode 是 RESULT_CANCELED

[英]Camera onActivityResult : resultCode is RESULT_CANCELED

I am new to Java and Android but I have an app that should take a picture from the camera and save it as a file.我是 Java 和 Android 的新手,但我有一个应用程序可以从相机拍摄照片并将其保存为文件。 I can start the camera and take a picture but in onActivityResult the resultCode is always RESULT_CANCELED (0).我可以启动相机并拍照,但在 onActivityResult 中,resultCode 始终为 RESULT_CANCELED (0)。 First I had an android.os.FileUriExposedException error but I followed this blog and the problem seems to be solved : https://medium.com/@ali.muzaffar/what-is-android-os-fileuriexposedexception-and-what-you-can-do-about-it-70b9eb17c6d0首先,我有一个 android.os.FileUriExposedException 错误,但我关注了这个博客,问题似乎得到了解决: https : //medium.com/@ali.muzaffar/what-is-android-os-fileuriexposedexception-and-what- You-can-do-about-it-70b9eb17c6d0

Though I still have a resultCode with value 0 (RESULT_CANCEL).虽然我仍然有一个值为 0 (RESULT_CANCEL) 的 resultCode。

Below is the code where I start the camera activity :下面是我开始相机活动的代码:

private void captureImage() {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    File file = new File(Environment.getExternalStorageDirectory() + File.separator + "image.jpg");

    Uri uri = FileProvider.getUriForFile(
            this,
            this.getApplicationContext()
                    .getPackageName() + ".provider", file);

    intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        intent.addFlags(FLAG_GRANT_WRITE_URI_PERMISSION);
    } else {
        List<ResolveInfo> resInfoList = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
        for (ResolveInfo resolveInfo : resInfoList) {
            String packageName = resolveInfo.activityInfo.packageName;
            grantUriPermission(packageName, uri, FLAG_GRANT_WRITE_URI_PERMISSION | FLAG_GRANT_READ_URI_PERMISSION);
        }
    }

    startActivityForResult(intent, CAMERA_REQUEST_CODE);
}

And below is my onActivityResult (but resultCode is always 0) :下面是我的 onActivityResult (但 resultCode 始终为 0):

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Résultat de la capture de la photo
    if (requestCode == CAMERA_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {

最后,我按照此处给出的确切说明进行了操作, https://developer.android.com/training/camera/photobasics ,现在可以使用了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 startActivityForResult() 返回 RESULT_CANCELED - startActivityForResult() returns RESULT_CANCELED 图片文件于RESULT_CANCELED - Picture File on RESULT_CANCELED Google片段getSignInIntent()返回RESULT_CANCELED - Google fragment getSignInIntent() returning RESULT_CANCELED 为拨号器意图获取 RESULT_CANCELED - Getting RESULT_CANCELED for Dialer Intent 如何在发布模式下构建 Android 应用程序? GoogleFit:RESULT_CANCELED - How to build Android app in release mode? GoogleFit: RESULT_CANCELED OnActivityResult 始终在 Android 11 上返回 RESULT CANCELED(代码:0) - OnActivityResult always returns RESULT CANCELED (Code: 0) on Android 11 如何从onActivityResult(int requestCode,int resultCode,Intent data)获取结果? - How can I get a result from an onActivityResult(int requestCode, int resultCode, Intent data)? onActivityResult中的requestCode和resultCode指的是什么? - What does requestCode and resultCode in onActivityResult refer to? requestCode = -1和resultCode = 0选择器来自图库或相机的图像的意图 - requestCode = -1 and resultCode = 0 chooserIntent for image from gallery or camera 相机未输入onActivityResult - Camera doesn't enter onActivityResult
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM