J'utilise actuellement des URI de contenu sur mon fournisseur de fichiers pour récupérer les images de caméra renvoyées par une intention ACTION_IMAGE_CAPTURE
. Cela fonctionne bien.Utilisation de l'URI de contenu avec ACTION_VIDEO_CAPTURE
Pour une raison étrange, le même appel ne fonctionne pas lorsque vous essayez de récupérer un fichier vidéo de la caméra.
destinationFile = File.createTempFile("video", ".mp4", this.getFilesDir());
Uri uri = FileProvider.getUriForFile(this, getPackageName() + ".fileprovider", destinationFile);
Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
cameraIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
cameraIntent.setClipData(ClipData.newRawUri(null, uri));
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(cameraIntent, ID);
Lorsque les déclarations d'intention dans le onActivityResult()
DestinationFile est vide.
Le simple remplacement de MediaStore.ACTION_VIDEO_CAPTURE
par MediaStore.ACTION_IMAGE_CAPTURE
me donne le comportement attendu: L'image capturée est enregistrée dans destinationFile.
Ceci se produit sur stock Android 6.0.1 sur un appareil Nexus et l'application de caméra Google par défaut.
Les URI de contenu ne sont-ils pas réellement pris en charge pour la capture vidéo? Je préférerais ne pas utiliser un fichier URI dans un répertoire accessible au public.
* offtopic * vous avez supprimé votre dernière réponse à ma question (SERVICE D'EMPREINTE DIGITALE) veuillez la refaire - vous aviez raison! juste besoin de faire invalider les caches après !! s'il vous plaît refaire pour que je puisse vous accepter –
Donc pour le moment nous devons continuer à utiliser les URI de fichiers - à moins de cibler Android N. Merci pour la clarification! – limmatplatz
@limmatplatz: "devoir" est un terme fort. Certainement, pour vos tests (et votre santé mentale), vous devrez vous en tenir à 'file' jusqu'à ce que votre application Google Camera prenne en charge' content' correctement, après quoi vous pourrez y passer et le tester. Cependant, vous voudrez peut-être saisir cette opportunité pour déterminer ce que vous allez faire lorsque d'autres applications d'appareil photo ne pourront pas gérer correctement le contenu. Jusqu'à ce que 'targetSdkVersion' atteigne' N', 'file' devrait être sûr et devrait être supporté assez universellement. J'espère que vous pouvez attendre longtemps avant de lever 'targetSdkVersion'. Comme, disons, une dizaine d'années. :-) – CommonsWare