Камера onActivityResult: код результата равен RESULT_CANCELED - PullRequest
0 голосов
/ 27 января 2020

Я новичок в Java и Android, но у меня есть приложение, которое должно сделать снимок с камеры и сохранить его в виде файла. Я могу запустить камеру и сделать снимок, но в onActivityResult resultCode всегда RESULT_CANCELED (0). Сначала у меня была ошибка android .os.FileUriExposedException, но я последовал за этим блогом, и проблема, кажется, решена: https://medium.com/@ali.muzaffar / what-is- android -os-fileuriexposedexception-and-what-you- can-do-about-it-70b9eb17c6d0

Хотя у меня все еще есть resultCode со значением 0 (RESULT_CANCEL).

Ниже приведен код, с которого я запускаю действие камеры:

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);
}

А ниже мой 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) {

1 Ответ

0 голосов
/ 29 января 2020

Наконец, я следовал точным инструкциям, приведенным здесь, https://developer.android.com/training/camera/photobasics, и теперь это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...