J'ai commencé à travailler sur la capture d'une image de la came à l'aide du fournisseur de fichiers. Mon fragment appelle l'intention de capture de cam selon les documents android liés à take image simply.Valeur d'intention nulle dans la méthode onActivityResult du fragment
Le problème est dans onActivityResult
méthode intention renvoie null. Voici comment je définis tout. Je ne suis pas capable de comprendre ce que je fais mal.
AndroidManifest.xml
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_path" />
</provider>
file_path.xml
<paths>
<external-files-path name="my_images" />
</paths>
mise en œuvre sur l'intention de camcapture dans Fragment.class
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photoFile = null;
try {
photoFile = Utils.createImageFile(getContext());
String authorities = context.getPackageName()+".fileprovider";
uriForFile = FileProvider.getUriForFile(context, authorities, photoFile);
} catch (IOException e) {
e.printStackTrace();
}
Log.d(TAG, "handleCaptureImage: "+uriForFile); // shows this result in logs content://appid.fileprovider/my_images/Pictures/JPEG_20170918_181145_719404055.jpg
intent.putExtra(MediaStore.EXTRA_OUTPUT, uriForFile);
startActivityForResult(intent, OPEN_CAMERA);
onActivityResult dans le fragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == PICK_IMAGE) {
try {
//works fine bitmap generated correctly.
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), data.getData());
} catch (IOException e) {
e.printStackTrace();
}
} else if (requestCode == OPEN_CAMERA) {
Log.d(TAG, "onActivityResult: "+data); //data always null
}
}
}
J'essayé d'appeler onActivityResult() de l'activité d'hébergement mais comme même résultat. Besoin d'un pointeur dans la bonne direction .. Merci d'avance.
Avez-vous mis le résultat en revenant à la même activité ou le même fragment? ** setResult (RESULT_OK, intention) ** et terminez votre activité. –
oui .. ça n'aide pas .. plus je suis en fragment et je veux juste capturer des images résultat donc entre je n'ai pas besoin de terminer l'activité –