Je suis nouveau sur Java et Android, mais j'ai une application qui devrait prendre une photo de l'appareil photo et l'enregistrer sous forme de fichier. Je peux démarrer l'appareil photo et prendre une photo, mais dans onActivityResult, le code de résultat est toujours RESULT_CANCELED (0). J'ai d'abord eu une erreur android.os.FileUriExposedException mais j'ai suivi ce blog et le problème semble être résolu : https://medium.com/@ali.muzaffar/what-is-android-os-fileuriexposedexception-and-what -vous-pouvez-en-faire-70b9eb17c6d0

Bien que j'ai toujours un resultCode avec la valeur 0 (RESULT_CANCEL).

Ci-dessous se trouve le code où je démarre l'activité caméra :

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

Et ci-dessous est mon onActivityResult (mais resultCode est toujours 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) {
0
DevAct 27 janv. 2020 à 17:48

1 réponse

Meilleure réponse

Enfin, j'ai suivi les instructions exactes données ici, https://developer.android.com/training/camera /photobasics, et cela fonctionne maintenant.

2
DevAct 29 janv. 2020 à 11:38