IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Enregistrement d'image Android


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Homme Profil pro
    Marchand de glace
    Inscrit en
    Mai 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Marchand de glace
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2012
    Messages : 88
    Par défaut Enregistrement d'image Android
    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 :

    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();
    	                }
    			}
    		}
    	};
    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
     
    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)
    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
     
        <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"/>
    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
     
    File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/test");
    if (!f.exists()) {
      f.mkdir();
    }
    Sans succès, il y a donc un problème de droit d'écriture !!!
    Mais je ne vois pas du tout ce qu'il manque !
    Si quelqu'un a une idée

    Cordialement

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 168
    Par défaut
    Y a une carte mémoire au moins ?

  3. #3
    Inactif
    Homme Profil pro
    Marchand de glace
    Inscrit en
    Mai 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Marchand de glace
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2012
    Messages : 88
    Par défaut
    Je n'ai pas ajouté de carte mémoire externe mais je pense enregistrer sur la mémoire interne de la tablette. En effet, quand je prend une photo avec l'application Appareil photo la photo s'enregistre dans DICM/Camera. J'en ai donc déduis que je pouvais également faire mes enregistrements dans ce dossier.

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 168
    Par défaut
    Oui tu peux il me semble, mais regarde bien où t'enregistre ton image :

    /mnt/sdcard/DCIM/Camera/pictures/test.jpg

    sdcard = Carte mémoire

    Si y a pas de carte mémoire normal que ça ne marche pas

  5. #5
    Inactif
    Homme Profil pro
    Marchand de glace
    Inscrit en
    Mai 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Marchand de glace
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2012
    Messages : 88
    Par défaut
    J'ai essayé de chercher un autre lieu de stockage mais je viens de voir que je ne peux pas mettre de carte SD dans ma tablette... Pour info c'est la Motorola Xoom 2 Media Edition.

    Je suis allé voir directement dans les paramètres de stockage de la tablette et je peux voir ceci :
    Mémoire interne /mnt/sdcard/
    Espace total 12,17Go
    Utilisation des applis...
    Photos vidéo
    etc

    J'ai bien l'impression d'être dans la mémoire interne (malgré le nom sdcard) et je ne comprend donc pas d'ou viens mon problème

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 33
    Par défaut
    Voila comment j'enregistre mes images sur mon portable (donc directement sur le disque dur et pas sur la SDCard)
    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
    	public static StoreByteImage(Bitmap myImage, int quality)
    	{
    		FileOutputStream fileOutputStream = null;
     
    		File sdCard = Environment.getExternalStorageDirectory();
    		File file = new File(sdCard, "image" + 1 + ".jpg");
    		try
    		{
    			fileOutputStream = new FileOutputStream(file);
    			BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream);
    			myImage.compress(CompressFormat.JPEG, quality, bos);
    			bos.flush();
    			bos.close();
    		}
    		catch (FileNotFoundException e)
    		{
    			Log.i("EXCP FNF", e.getMessage());
    		}
    		catch (IOException e)
    		{
    			Log.i("EXCP IO", e.getMessage());
    		}
    		return true;
    	}
    En espérant, que sa va t'aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. enregistrer une image
    Par meli0207 dans le forum MFC
    Réponses: 35
    Dernier message: 12/07/2005, 09h00
  2. Enregistrement d'image dans Interbase(champ Blob)
    Par the watcher dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/06/2005, 12h33
  3. [GLScene] Comment enregistrer une image au format TGA
    Par Invité dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 27/05/2005, 15h12
  4. Enregistrer une image
    Par N@sH dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 04/05/2005, 10h07
  5. enregistrer une image et un identifiant
    Par dosach dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 18/03/2004, 17h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo