2017-01-17 1 views
0

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!

+0

Pouvez-vous envoyer une trace de pile? – FrankR

+0

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é. –

+0

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

Répondre

0

Je pense que votre problème est que vous essayez d'enregistrer l'image de la caméra sur le stockage interne, je ne pense pas que ce soit possible.Peut-on essayer d'enregistrer à un emplacement sur la carte SD à la place?

+0

Il est possible d'enregistrer dans le stockage interne ... Je n'avais tout simplement pas la permission. J'ai utilisé la réponse à cette question: http://stackoverflow.com/questions/33650632/fileprovider-not-working-with-camera et cela fonctionne maintenant. –

+0

Heureux que cela a fonctionné pour vous. – FrankR