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 :

Création d'activité Android


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Par défaut Création d'activité Android
    Bonjour,

    J'ai suivi les tutoriels pour la création d'application Java sous Android, et je viens vers vous un peut en désespoir de cause.

    Je m'explique : j'ai essayé de créer une petite application qui permette de faire une copie d'une photo depuis l'appareil photo de l'appareil Android vers un répertoire partagé sur un serveur.

    Le souci, c'est que mon activité n'a pas l'air de se lancer au démarrage et je désespère un peut d'y arriver un jour.

    Je pourrais vous poster mon source dès lundi si vous le souhaitez.

    Pourriez-vous m'aider s'il vous plait ?

    Par avance je vous remercies.

    Marco.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Citation Envoyé par cotmar Voir le message
    Pourriez-vous m'aider s'il vous plait ?
    Evidemment, ce forum est fait pour ça.
    Cependant, il nous faut plus d'informations sur l'erreur (code source, message d'erreur, logcat, stacktrace, ...)
    Alors à lundi

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Par défaut
    Bonjour,

    Merci de cette réponse si rapide et amicale.

    Je donnerais en effet plus détails.
    En attendant je peux juste apporter un ou deux petites précisions à ma demande.

    Je travailles sous Eclipse avec le bundle ADT.

    Pour ce qui est du projet, il s'agit d'un nouveau projet Android que j'ai créé pour l'occasion.

    J'ai tout d'abord créé le projet dans le "onCreate" puis j'ai mis dans le "onResume" de mon activity, mais dans l'un et l'autre cas, lorsque je le lance sur le téléphone (Run as -> Android project -> le téléphone dans la liste connecté via USB), rien ne se passe et au bout d'un moment j'ai un message "l'application s'est arrêtée".

    Je rajouteras l'application dans le post de lundi tu as raison.

    Peux tu me dire ce que signifie "stacktrace" et "logcat" s'il te plait ?

    Par avance merci.

    Marco.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    La stackTrace correspond à une description de l'erreur générée par le système.
    Le logcat est un utilitaire qui permet de visualiser le "journal d'évènements" du système.
    Ce logcat te permettra d'afficher et de lire la stacktrace correspondant à ton erreur. Le logcat peut être affiché depuis eclipse : Window->Show View->Logcat

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Par défaut
    Merci de ta réponse.

    En fait pour tout te dire, je sais que rien ne se passe car le fichier que j'essaye de copier n’apparaît pas dans le répertoire ciblé, pas plus au niveau du réseau que (plus modestement) sur un répertoire local. Je montrerais le source lundi, mais d'ors et déjà, je peux dire que j'ai mis les méthodes de copie dans une classe à part.

    Du coup, je ne pense pas que ça puisse être un problème de droits insuffisants comme a pu me le dire une collègue.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Par défaut
    Bonjour,

    Voici donc le source promis ce weekend en espérant que vous pourrez m'aider.

    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
     
     
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.copyfile"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
     
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.copyfile.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
     
    </manifest>
    Et le code source de mon activité :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
     
    package com.example.copyfile;
     
    import java.io.File;
     
    import android.os.Bundle;
    import android.os.Environment;
    import android.os.Message;
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.view.Menu;
    import android.widget.Toast;
     
    public class MainActivity extends Activity {
     
     
     
    	@Override
    	protected void onResume() {
    		// TODO Auto-generated method stub
    		super.onResume();
     
    		Context context = getApplicationContext();
    		CharSequence text = "Hello toast!";
    		int duration = Toast.LENGTH_SHORT;
     
    		Toast toast = Toast.makeText(context, text, duration);
    		toast.show();
     
     
    		//Préparation de la copie
    		FileUtils fu = new FileUtils();
    //		System.out.println(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/20130328_183059.jpg");
    		File source = new File (Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/20130328_183059.jpg") ;
     
     
    		fu.copyFile(source, dest1);
    //		fu.copyFilePartage(source, dest);
    //		//Exécution de la copie RESEAU
    //		if(fu.copyFilePartage(source, dest)){
    //			builder.setMessage("Copie terminée... SUCCES");
    //			dialog = builder.create();
    //			dialog.show();
    //		}
    //		else{
    //			builder.setMessage("Copie terminée... ECHEC");
    //			dialog = builder.create();
    //			dialog.show();
    //		}
    	}
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    	}
     
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
     
    }

    Comme vous le voyez, j'ai essayé avec une copie locale et une copie sur un disque réseau.

    La classe dans laquelle j'ai regroupé ce qui est nécessaire à la copie est la suivante :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
     
    package com.example.copyfile;
     
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    import jcifs.smb.SmbFileOutputStream;
     
    public class FileUtils {
    	/** Copie le fichier source vers le fichier résultat (réseau)
            * Utiliser une librairie spécifique pour le protocole SMB.
            * Inclure la librairie jcifs-1.3.16(ici .17) dans votre projet.
            */
     
    	private File source;
    	private File dest;
     
    	public File getSource() {
    		return source;
    	}
     
    	public void setSource(File source) {
    		this.source = source;
    	}
     
    	public File getDest() {
    		return dest;
    	}
     
    	public void setDest(File dest) {
    		this.dest = dest;
    	}
     
    	public static boolean copyFilePartage(File source, File dest){
    		if(dest == null)
    			return false;
     
    		try{
    			// Declaration et ouverture des flux	
    			java.io.FileInputStream sourceFile = new java.io.FileInputStream(source);
    			SmbFileOutputStream destinationFile = new SmbFileOutputStream("smb://"+dest.getPath()+"/"+source.getName());
     
    			// Lecture par segment de 0.5Mo 
    			byte buffer[] = new byte[512 * 1024];
    			int nbLecture;
     
    			while ((nbLecture = sourceFile.read(buffer)) != -1){
    				destinationFile.write(buffer, 0, nbLecture);
    			}
     
    			sourceFile.close();
     
    		} catch (Exception e){
    			e.printStackTrace();
    			return false; // Erreur
    		}
     
    		return true; // Résultat OK  
    	}
     
    	/** Copie le fichier source dans le fichier resultat (locale)
             * Retourne vrai si cela réussit
             * Pour comparaison avec le précédent
             */
    	public static boolean copyFile(File source, File dest){
    		try{
    			// Declaration et ouverture des flux en entrée
    			java.io.FileInputStream sourceFile = new java.io.FileInputStream(source);
     
    			try{
    				java.io.FileOutputStream destinationFile = null;
     
    				try{
    					// Destination et ouverture des flux en sortie
    					destinationFile = new FileOutputStream(dest);
     
    					// Lecture par segment de 0.5Mo 
    					byte buffer[] = new byte[512 * 1024];
    					int nbLecture;
     
    					while ((nbLecture = sourceFile.read(buffer)) != -1){
    						destinationFile.write(buffer, 0, nbLecture);
    					}
    				} finally {
    					destinationFile.close();
    				}
    			} finally {
    				sourceFile.close();
    			}
    		} catch (IOException e){
    			e.printStackTrace();
    			return false; // Erreur
    		}
     
    		return true; // Résultat OK  
    	}
     
     
    }

    A toutes et tous je souhaite un très bon début de semaine, en espérant que vous pourrez m'aider. C'est surement bête comme erreur, mais je sèche complètement.

    Cordialement,
    Marco.

Discussions similaires

  1. Réponses: 37
    Dernier message: 25/03/2014, 23h15
  2. Création d'activité à la volée ?
    Par Invité dans le forum Android
    Réponses: 9
    Dernier message: 02/04/2012, 13h18
  3. Premiers pas création appli sous android
    Par enrico83600 dans le forum Android
    Réponses: 3
    Dernier message: 17/04/2011, 13h10
  4. Réponses: 13
    Dernier message: 17/12/2010, 10h26

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