J'ai donc ce code demander des images de l'application de la caméra.Impossible de demander des images à l'appareil Samsung
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
try {
mUltimaFotoFile = createImageFile();
Uri photoURI = FileProvider.getUriForFile(this,
"br.com.nortemobile.sgaconsultor",
mUltimaFotoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, SHOOT_PIC);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
private File createImageFile() throws IOException {
// Create an image file name
String imageFileName = "registroFoto";
File directory = new File(getFilesDir(), "app_imageDir");
directory.mkdir();
return File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
directory
);
}
Cela fonctionne très bien dans un appareil Motorola. Mais quand j'essaie d'utiliser la même application dans un appareil Samsung, l'application appareil photo se casse toujours ... J'ai essayé quelques solutions dans stackoverflow, mais toujours pas regarder.
Edit:
Voici mon stacktrace:
java.lang.SecurityException: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{43965918 20244:com.sec.android.app.camera/u0a10082} (pid=20244, uid=10082) that is not exported from uid 10149
at android.os.Parcel.readException(Parcel.java:1431)
at android.os.Parcel.readException(Parcel.java:1385)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:2906)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:4829)
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2560)
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1152)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:667)
at android.content.ContentResolver.openOutputStream(ContentResolver.java:540)
at android.content.ContentResolver.openOutputStream(ContentResolver.java:516)
at com.sec.android.app.camera.Camera$LastContentUriCallback.onCompleted(Camera.java:5991)
at com.sec.android.app.camera.Camera.onLaunchGallery(Camera.java:5873)
at com.sec.android.app.camera.Camera.onImageStoringCompleted(Camera.java:5217)
at com.sec.android.app.camera.CameraEngine.imageStoringCompleted(CameraEngine.java:2331)
at com.sec.android.app.camera.CeStateInitialized.handleMessage(CeStateInitialized.java:47)
at com.sec.android.app.camera.CameraEngine$StateMessageHandler.handleMessage(CameraEngine.java:256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5493)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1225)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1041)
at dalvik.system.NativeStart.main(Native Method)
Toute aide est appréciée!
Pouvez-vous envoyer une trace de pile? – FrankR
Je n'ai pas accès à la pile, car mon application ne se bloque jamais, mais l'application appareil photo des appareils samsung est celle qui plante. Donc, je ne peux pas voir exactement ce qui s'est mal passé. –
Normalement, dans logcat vous devriez pouvoir changer le filtre pour montrer toutes les applications, cela pourrait aider à obtenir une pile de pile, sans quoi il est vraiment difficile de voir quel est le problème. – FrankR