Bonjour,
Je me permet de poster sur ce forum car je ne trouves vraiment pas de solution a mon problème !
Je souhaite prendre une photo et l'enregistrer sur le téléphone
J'ai mis en place une SurfaceView pour prendre la photo mais lors de l'enregistrement sa bloque !
En effet j'ai une erreur dans le log cat qui me dit (Permission Denied)
Voici le code :
Et voici l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Camera.PictureCallback pictureCallback = new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { //String fl = "test.jpg"; File path = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/pictures/test.jpg"); // Current state of the external media String extState = Environment.getExternalStorageState(); // External media can be written onto if (extState.equals(Environment.MEDIA_MOUNTED)) { try { // Make sure the path exists // boolean exists = (new File(path2)).exists(); /* if (!exists){ new File(path2).mkdirs(); } */ // Open output stream FileOutputStream fOut = new FileOutputStream(path); // Log.e("lol", path+fl); fOut.write(data); // Close output stream fOut.flush(); fOut.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } } };
Pourtant j'ai bien déclaré les droits dans mon manifest voici un extrait de celui ci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 05-11 09:04:57.156: W/System.err(3702): java.io.FileNotFoundException: /mnt/sdcard/DCIM/Camera/pictures/test.jpg (Permission denied) 05-11 09:04:57.195: W/System.err(3702): at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method) 05-11 09:04:57.195: W/System.err(3702): at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:239) 05-11 09:04:57.195: W/System.err(3702): at java.io.FileOutputStream.<init>(FileOutputStream.java:101) 05-11 09:04:57.195: W/System.err(3702): at java.io.FileOutputStream.<init>(FileOutputStream.java:77) 05-11 09:04:57.195: W/System.err(3702): at com.test.android.AppareilPhotoActivity$1.onPictureTaken(AppareilPhotoActivity.java:163) 05-11 09:04:57.195: W/System.err(3702): at android.hardware.Camera$EventHandler.handleMessage(Camera.java:612) 05-11 09:04:57.195: W/System.err(3702): at android.os.Handler.dispatchMessage(Handler.java:99) 05-11 09:04:57.195: W/System.err(3702): at android.os.Looper.loop(Looper.java:132) 05-11 09:04:57.195: W/System.err(3702): at android.app.ActivityThread.main(ActivityThread.java:4134) 05-11 09:04:57.195: W/System.err(3702): at java.lang.reflect.Method.invokeNative(Native Method) 05-11 09:04:57.195: W/System.err(3702): at java.lang.reflect.Method.invoke(Method.java:491) 05-11 09:04:57.195: W/System.err(3702): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 05-11 09:04:57.195: W/System.err(3702): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 05-11 09:04:57.195: W/System.err(3702): at dalvik.system.NativeStart.main(Native Method) 05-11 09:04:57.203: W/System.err(3702): java.io.FileNotFoundException: /mnt/sdcard/DCIM/Camera/pictures/test.jpg (Permission denied) 05-11 09:04:57.203: W/System.err(3702): at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method) 05-11 09:04:57.203: W/System.err(3702): at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:239) 05-11 09:04:57.203: W/System.err(3702): at java.io.FileOutputStream.<init>(FileOutputStream.java:101) 05-11 09:04:57.203: W/System.err(3702): at java.io.FileOutputStream.<init>(FileOutputStream.java:77) 05-11 09:04:57.203: W/System.err(3702): at com.test.android.AppareilPhotoActivity$1.onPictureTaken(AppareilPhotoActivity.java:163) 05-11 09:04:57.203: W/System.err(3702): at android.hardware.Camera$EventHandler.handleMessage(Camera.java:618) 05-11 09:04:57.203: W/System.err(3702): at android.os.Handler.dispatchMessage(Handler.java:99) 05-11 09:04:57.203: W/System.err(3702): at android.os.Looper.loop(Looper.java:132) 05-11 09:04:57.203: W/System.err(3702): at android.app.ActivityThread.main(ActivityThread.java:4134) 05-11 09:04:57.203: W/System.err(3702): at java.lang.reflect.Method.invokeNative(Native Method) 05-11 09:04:57.203: W/System.err(3702): at java.lang.reflect.Method.invoke(Method.java:491) 05-11 09:04:57.203: W/System.err(3702): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 05-11 09:04:57.203: W/System.err(3702): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 05-11 09:04:57.203: W/System.err(3702): at dalvik.system.NativeStart.main(Native Method)
J'ai fait un test j'ai essayé ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <uses-permission android:name="android.permision.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permision.WRITE_SECURE_SETTINGS"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.CAMERA"></uses-permission> <uses-feature android:name="android.hardware.camera"/> <uses-feature android:name="android.hardware.camera.autofocus"/> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
Sans succès, il y a donc un problème de droit d'écriture !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/test"); if (!f.exists()) { f.mkdir(); }
Mais je ne vois pas du tout ce qu'il manque !
Si quelqu'un a une idée
Cordialement
Partager