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 :

Envoyer un fichier créer par l'appli en pièce jointe d'un mail


Sujet :

Android

  1. #1
    Membre régulier Avatar de Rappunzell
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 91
    Points
    91
    Par défaut Envoyer un fichier créer par l'appli en pièce jointe d'un mail
    Bonjour,

    Je souhaite que mon appli log certaines informations dans un fichier.

    En cas d'erreur, je bascule sur une activité qui permet de m'envoyer un mail avec le message d'erreur obtenu. Je souhaiterai attacher le fichier de log en pièce jointe.

    J'ai d'abord créer une class que je fais dériver de Activity dans laquelle j'ai écris la méthode writeInLog. Je fais ensuite dériver toutes mes activités de cette class afin de pouvoir utiliser cette méthode partout :

    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
    protected void writeInLog(String s, String nomActivite, boolean newSession) {
    		String date = new String(new Date().toGMTString());
     
    		try {
    			FileOutputStream fos = openFileOutput("log.txt", Context.MODE_WORLD_READABLE);
     
    			if(newSession) {
    				String entete = new String(date + " : -------------------------"+nomActivite+"-------------------------\n");
    				fos.write(entete.getBytes());	
    			}
     
    			fos.write(new String(date + " : " + s + "\n").getBytes());
     
    			fos.close();
     
    		} catch (IOException e) {
    			Toast toast = Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG);	
    			toast.show();
    		}
     
    	}
    Notez que j'ouvre le fichier en MODE_WORLD_READABLE.

    Autre part, dans mon activité qui envoie le mail :

    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
    public void onButEnvoiMailClick(View v) {
    		if(v instanceof Button) {
     
    			final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
     
                emailIntent.setType("text/plain");
     
                emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"nicolas@aciafr.com"});
     
                emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, new String("AciaSMS erreur"));
     
                emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message_erreur);
     
                emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("file://"+getFilesDir()+"/log.txt"));
     
                this.startActivity(Intent.createChooser(emailIntent, "Envoi mail..."));
     
                this.finish();
    		}
    	}
    Problème, avec cette façon de faire, le fichier est bien joint au mail, et je le reçois correctement sur ma boite mail. Mais celui-ci ne contient qu'une seule ligne : la dernière écrite en fait.

    En ouvrant le fichier avec MODE_APPEND, le log garde bien toutes les lignes, mais l'appli d'envoi de mail ne peut plus y avoir accès.

    Auriez-vous une solution à me soumettre ? Utiliser deux fichiers ? Comment faire ?

    Merci d'avance

  2. #2
    Membre habitué Avatar de linked
    Profil pro
    Développeur Android
    Inscrit en
    Mai 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Mai 2008
    Messages : 88
    Points : 133
    Points
    133
    Par défaut
    Il existe une librairie pour envoyer les rapports d'erreurs par mail ou sur google doc:

    http://code.google.com/p/acra/

    Pas besoin de réinventer la roue si c'est ce que vous recherchez.
    Je l'utilise souvent, c'est vraiment génial.
    Applications et jeux gratuits sur http://www.kamaxandroid.com

  3. #3
    Membre régulier Avatar de Rappunzell
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 91
    Points
    91
    Par défaut
    Ben non, c'est pas ce que je recherche... Mais merci quand même.

    Je préfère une solution "maison"

Discussions similaires

  1. Envoyer un fichier wav par modem
    Par jhmallot dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 23/07/2013, 15h45
  2. Réponses: 2
    Dernier message: 18/03/2011, 21h18
  3. Réponses: 2
    Dernier message: 06/01/2011, 17h35
  4. Réponses: 5
    Dernier message: 11/08/2009, 15h59
  5. [C#2005] Supprimer un fichier utiliser par mon appli
    Par Herlece dans le forum Windows Forms
    Réponses: 9
    Dernier message: 09/09/2008, 18h06

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