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

API standards et tierces Android Discussion :

Connecter android emulator à un serveur Distant


Sujet :

API standards et tierces Android

  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut Connecter android emulator à un serveur Distant
    Bonjour

    1)
    - Est ce que je peut établir une connexion directement depuis Android vers serveur distant ?

    - Est ce que Jdbc fonctionne sur Android?

    - L'interrogation d'une base de donnée distante peut-elle se faire directement ou je doit créer des scripts PHP pour l'interroger ( le client doit émettre une requête de type HTTP auprès du serveur web et le script PHP va interroger la base et renvoie au client une réponse sous la forme d'un fichier XML).


    je serais ravis si vous me donner un petit tuto pour voir comment sa tourne.

    2)J'hésite entre MySQL et PostgreSQL, le quel de ces SGBD est meilleur pour une connexion avec Android et pour un traitement de Données spatiales.

    Merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Android ne supporte pas JDBC en tant que telle mais la connection avec un serveur distant est tout a fait possible.

    Important : Sur l'emulateur l'addresse localhost est pas pour ordinateur sur la quelle tu travaille mais pour l'emulateur lui meme.
    il suffit de remplacer localhost par 10.0.2.2

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Citation Envoyé par jahbromo Voir le message
    Android ne supporte pas JDBC en tant que telle mais la connection avec un serveur distant est tout a fait possible.

    Important : Sur l'emulateur l'addresse localhost est pas pour ordinateur sur la quelle tu travaille mais pour l'emulateur lui meme.
    il suffit de remplacer localhost par 10.0.2.2
    Merci Jahbromo

    - Tu peut me donner plus de détails sur l'interrogation d'une base de donnée distante peut-elle se faire directement ou je doit créer des scripts PHP pour l'interroger ( le client doit émettre une requête de type HTTP auprès du serveur web et le script PHP va interroger la base et renvoie au client une réponse sous la forme d'un fichier XML).


    je serais ravis si vous me donner un petit tuto pour voir comment sa tourne.

    J'hésite entre MySQL et PostgreSQL, le quel de ces SGBD est meilleur pour une connexion avec Android et pour un traitement de Données spatiales.


  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Entre mysql et postgresql le choix te reviens car mysql est le plus utilisé et postgresql s'occupe pour des donnée importantes,je te conseille mysql grace à sa facilité d'utilisation,sa rapidité etc... mais par contre si tes donnée sont importantes ( images, etc..) je te conseille postgresql

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Si tu ne trouve pas de reponse avant le vendredi, le samedi je vais mettre un mini tutorial sur ce meme thread resolvant ton poblème.

  6. #6
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Citation Envoyé par jahbromo Voir le message
    Si tu ne trouve pas de reponse avant le vendredi, le samedi je vais mettre un mini tutorial sur ce meme thread resolvant ton poblème.
    Je suis entrain de chercher mais y a pas un tutorial qui explique la méthode de connexion et de dialogue avec une base distante.


  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Voici les etapes

    Coté serveur ( le cas de enregistrement d'un personne (nom, prenom)

    1. Creer une table personne ( nom, prenom).
    2. Creer un script php pour pouvoir remplir cette table.
    3. Creer un scrip php qui peut recuperer les parametre d'une requette url.

    4. Creer un projet android qui contient deux champs de text + un bouton ok
    5. Recuperer les contenue de ses champ de text avec getText;
    mettre l'addresse du scrip phpt?param1=nom&param2=prenom;

    Ecouter le bouton

    Utiliser cette url avec les parametres dans le code suivants :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String myurl="http://10.0.2.2:8080/Developppez/Envoiemaposition?latitude="+latitude+"&longitude="+longitude+"&speed="+speed+"";
        	URL url = new URL(myurl);
     
        	HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     
    		}
    Il faut signaler que 10.0.2.2 est comme localhost en android.

  8. #8
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Bonsoir jahbromo

    voila ce que j'ai fait:
    Coté Serveur:
    j'ai crée une base de donnée "maison" avec une table personne(nom,prenom)
    j'ai crée un fichier php Andr.php:

    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
     
    <?php
    $connexion=mysql_connect( "localhost" ,  "root"  ,  "" );
    mysql_select_db("maison");
    $requete="SELECT nom,prenom FROM personne where prenom='Mohamed'";
    $resultat=mysql_query($requete);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans nom</title>
    </head>
    <body>
     <?php 
    $personne=mysql_fetch_array($resultat); 
    echo "Nom:".$personne['nom'];
    ?>
    </body>
    </html>
    Coté Client Android:

    J'ai crée un projet Android: ExternalDB voila le main:

    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
     
    package com.saturne.externalDB;
     
    import java.io.IOException;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
     
    public class Main extends Activity implements OnClickListener {
     
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            ((Button)findViewById(android.R.id.button1)).setOnClickListener(this);
        }
     
    	public void onClick(View arg0) {
    		String nom = null;
    		String prenom = null;
    		try {
    		String myurl="http://192.168.56.1:25/www/Andr.php?Nom="+nom+"&Prenom="+prenom+"";
        	URL url;
     
    		url = new URL(myurl);
     
        	HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     
    		} catch (MalformedURLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		}
    }
    j'ai ajouté la permission Internet dans le Manifest.

    Pour l'adresse du fichier php, j'ai mis:
    http://192.168.56.1:25 (adresse du serveur dans ma machine virtuelBox)
    /www/ (fichier php est dans le dossier C:\wamp\www
    est ce que c'est juste comme paramétrage?

    il manque encore la récupération dans un TextView, et il y a d'autre erreur je pense


  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    A cet instant c'est juste, il faut recuperer le champ de text et essayer de voire.
    Dans tous les cas faits nous suite du resultat.

  10. #10
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Citation Envoyé par jahbromo Voir le message
    A cet instant c'est juste, il faut recuperer le champ de text et essayer de voire.
    Dans tous les cas faits nous suite du resultat.
    HY
    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
     
    package com.saturne.externalDB;
     
    import java.io.IOException;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
     
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
     
    public class Main extends Activity implements OnClickListener {
     
    	Button button;
    	EditText edit;
     
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            button=((Button)this.findViewById(R.id.Bouton01));
            edit=((EditText)this.findViewById(R.id.edit1));
            button.setOnClickListener(this);
            if(this.getIntent().getExtras()!=null);
            String s=this.getIntent().getExtras().getString("Data");
            edit.setText(s);
        }
     
    	public void onClick(View arg0) {
     
    		String nom = null;
    		String prenom = null;
    		try {
    		String myurl="http://192.168.56.1:25/www/Andr.php?Nom="+nom+"&Prenom="+prenom+"";
        	URL url;
    		url = new URL(myurl);
        	HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        	Intent intent= new Intent(this,Main.class);
    		intent.putExtra("Data", nom);
    		this.startActivityForResult(intent, 1000);
     
    		} catch (MalformedURLException e) {
    			// TODO Auto-generated catch block
     
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		}
    }
    Message d'erreur dans emulateur Android:

    The application ExternalDB (process com.saturne.externalDB)has stopped unexpectedly. Please try again.

    voila le LogCat:
    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
     
    03-01 11:03:05.424: INFO/ActivityManager(560): Starting activity: Intent { action=android.intent.action.MAIN categories={android.intent.category.LAUNCHER} flags=0x10200000 comp={com.saturne.externalDB/com.saturne.externalDB.Main} }
    03-01 11:03:05.568: INFO/ActivityManager(560): Start proc com.saturne.externalDB for activity com.saturne.externalDB/.Main: pid=712 uid=10020 gids={3003}
    03-01 11:03:05.892: INFO/ActivityManager(560): Starting activity: Intent { action=android.intent.action.MAIN categories={android.intent.category.LAUNCHER} flags=0x10200000 comp={com.saturne.externalDB/com.saturne.externalDB.Main} }
    03-01 11:03:05.923: INFO/jdwp(712): received file descriptor 20 from ADB
    03-01 11:03:05.966: DEBUG/dalvikvm(541): GC freed 274 objects / 10280 bytes in 403ms
    03-01 11:03:06.001: ERROR/jdwp(712): Failed sending req to debugger: Broken pipe (-1 of 27)
    03-01 11:03:06.033: ERROR/jdwp(712): Failed sending reply to debugger: Broken pipe
    03-01 11:03:06.033: INFO/dalvikvm(712): Debugger has detached; object registry had 2 entries
    03-01 11:03:06.167: DEBUG/dalvikvm(541): GC freed 50 objects / 2128 bytes in 181ms
    03-01 11:03:06.446: DEBUG/dalvikvm(541): GC freed 2 objects / 48 bytes in 260ms
    03-01 11:03:06.612: DEBUG/AndroidRuntime(712): Shutting down VM
    03-01 11:03:06.612: WARN/dalvikvm(712): threadid=3: thread exiting with uncaught exception (group=0x4000fe70)
    03-01 11:03:06.612: ERROR/AndroidRuntime(712): Uncaught handler: thread main exiting due to uncaught exception
    03-01 11:03:06.636: ERROR/AndroidRuntime(712): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.saturne.externalDB/com.saturne.externalDB.Main}: java.lang.NullPointerException
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at android.app.ActivityThread.access$1800(ActivityThread.java:112)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at android.os.Handler.dispatchMessage(Handler.java:99)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at android.os.Looper.loop(Looper.java:123)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at android.app.ActivityThread.main(ActivityThread.java:3948)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at java.lang.reflect.Method.invokeNative(Native Method)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at java.lang.reflect.Method.invoke(Method.java:521)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at dalvik.system.NativeStart.main(Native Method)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712): Caused by: java.lang.NullPointerException
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at com.saturne.externalDB.Main.onCreate(Main.java:28)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     ... 11 more
    03-01 11:03:06.658: INFO/Process(560): Sending signal. PID: 712 SIG: 3
    03-01 11:03:06.668: INFO/dalvikvm(712): threadid=7: reacting to signal 3
    03-01 11:03:06.766: INFO/dalvikvm(712): Wrote stack trace to '/data/anr/traces.txt'
    03-01 11:03:07.023: INFO/jdwp(712): received file descriptor 24 from ADB
    03-01 11:03:07.144: WARN/System.err(712): Can't dispatch DDM chunk 46454154: no handler defined
    03-01 11:03:07.144: WARN/System.err(712): Can't dispatch DDM chunk 4d505251: no handler defined
    03-01 11:03:15.483: WARN/ActivityManager(560): Launch timeout has expired, giving up wake lock!
    03-01 11:03:16.232: WARN/ActivityManager(560): Activity idle timeout for HistoryRecord{43755bf8 {com.saturne.externalDB/com.saturne.externalDB.Main}}
    03-01 11:03:21.362: DEBUG/dalvikvm(605): GC freed 382 objects / 16752 bytes in 121ms
    03-01 11:05:00.252: DEBUG/dalvikvm(560): GC freed 11086 objects / 570608 bytes in 202ms
    03-01 11:08:06.709: INFO/Process(712): Sending signal. PID: 712 SIG: 9
    03-01 11:08:06.752: INFO/ActivityManager(560): Process com.saturne.externalDB (pid 712) has died.
    03-01 11:08:06.876: WARN/InputManagerService(560): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@435e8770

  11. #11
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Ton erreur provient d'ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    03-01 11:03:06.636: ERROR/AndroidRuntime(712): Caused by: java.lang.NullPointerException
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at com.saturne.externalDB.Main.onCreate(Main.java:28)
    Donc dans ton main, à la ligne 28, tu as un null pointer exception. J'ai pas tes numéro de ligne sous les yeux, donc je sais pas à quoi ça correspond, mais je dirais que tu choppes le "handle" d'un composant (style ton bouton), et ensuite tu met un "onclicklistener".
    Or si la récupération de ton handle sur le bouton marche pas bien, tu récupère un "null", et ensuite tu tente de mettre un listener sur un objet "null" -> Plantage.

  12. #12
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Citation Envoyé par MrDuChnok Voir le message
    Ton erreur provient d'ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    03-01 11:03:06.636: ERROR/AndroidRuntime(712): Caused by: java.lang.NullPointerException
    03-01 11:03:06.636: ERROR/AndroidRuntime(712):     at com.saturne.externalDB.Main.onCreate(Main.java:28)
    Donc dans ton main, à la ligne 28, tu as un null pointer exception. J'ai pas tes numéro de ligne sous les yeux, donc je sais pas à quoi ça correspond, mais je dirais que tu choppes le "handle" d'un composant (style ton bouton), et ensuite tu met un "onclicklistener".
    Or si la récupération de ton handle sur le bouton marche pas bien, tu récupère un "null", et ensuite tu tente de mettre un listener sur un objet "null" -> Plantage.
    MrDuChnok

    voila ce que j'ai dans la ligne 28:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String s=this.getIntent().getExtras().getString("Data");

  13. #13
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Pour eviter le plantage on fait toujours comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    if(this.getIntent().getExtras()!=null)
    {
    String s=this.getIntent().getExtras().getString("Data");
    }

  14. #14
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Citation Envoyé par jahbromo Voir le message
    Pour eviter le plantage on fait toujours comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    if(this.getIntent().getExtras()!=null)
    {
    String s=this.getIntent().getExtras().getString("Data");
    }
    Merci jahbromo
    Le programme fonctionne sans problème maintenant, mais y a rien dans le EditText, je pense qu'il y a problème dans le paramètrage du réseau:

    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
     
    package com.saturne.externalDB;
    import java.io.IOException;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
     
    public class Main extends Activity implements OnClickListener {
     
    	Button button;
    	EditText edit;
     
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            button=((Button)this.findViewById(R.id.Bouton01));
            edit=((EditText)this.findViewById(R.id.edit1));
            button.setOnClickListener(this);
            if(this.getIntent().getExtras()!=null)
            {
            String s=this.getIntent().getExtras().getString("Data");
            edit.setText(s);
            }
        }
     
    	public void onClick(View arg0) {
     
    		String nom = null;
    		String prenom = null;
    		try {
    		String myurl="http://192.168.56.1:25/www/Andr.php?Nom="+nom+"&Prenom="+prenom+"";
        	URL url;
    		url = new URL(myurl);
        	HttpURLConnection connection = (HttpURLConnection)url.openConnection();
        	Intent intent= new Intent(this,Main.class);
    		intent.putExtra("Data", nom);
    		this.startActivityForResult(intent, 1000);
     
    		} catch (MalformedURLException e) {
    			// TODO Auto-generated catch block
     
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		}
    }
    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
     
    03-01 20:26:43.385: DEBUG/AndroidRuntime(825): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
    03-01 20:26:43.385: DEBUG/AndroidRuntime(825): CheckJNI is ON
    03-01 20:26:43.716: DEBUG/AndroidRuntime(825): --- registering native functions ---
    03-01 20:26:43.756: INFO/jdwp(825): received file descriptor 20 from ADB
    03-01 20:26:44.885: INFO/ActivityManager(563): Starting activity: Intent { flags=0x10000000 comp={com.saturne.externalDB/com.saturne.externalDB.Main} }
    03-01 20:26:44.951: DEBUG/AndroidRuntime(825): Shutting down VM
    03-01 20:26:44.951: DEBUG/dalvikvm(825): DestroyJavaVM waiting for non-daemon threads to exit
    03-01 20:26:44.980: DEBUG/dalvikvm(825): DestroyJavaVM shutting VM down
    03-01 20:26:44.980: DEBUG/dalvikvm(825): HeapWorker thread shutting down
    03-01 20:26:44.980: DEBUG/dalvikvm(825): HeapWorker thread has shut down
    03-01 20:26:44.980: DEBUG/jdwp(825): JDWP shutting down net...
    03-01 20:26:44.980: DEBUG/jdwp(825): +++ peer disconnected
    03-01 20:26:44.980: INFO/dalvikvm(825): Debugger has detached; object registry had 1 entries
    03-01 20:26:45.023: DEBUG/dalvikvm(825): VM cleaning up
    03-01 20:26:45.225: DEBUG/dalvikvm(825): LinearAlloc 0x0 used 639228 of 4194304 (15%)
    03-01 20:26:50.576: DEBUG/dalvikvm(608): GC freed 155 objects / 7640 bytes in 154ms
    03-01 20:27:32.577: INFO/ActivityManager(563): Starting activity: Intent { comp={com.saturne.externalDB/com.saturne.externalDB.Main} (has extras) }
    03-01 20:27:33.165: INFO/ActivityManager(563): Displayed activity com.saturne.externalDB/.Main: 576 ms

  15. #15
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    C'est normal qu'il n'ya rien dans Editext car le s que tu mettait dans edittext est null; Essaye de taper à la main une String et regarde si la connection avec la base distante est ok.
    C'est cela le titre de thread apres on passera à getIntent......

  16. #16
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Citation Envoyé par jahbromo Voir le message
    C'est normal qu'il n'ya rien dans Editext car le s que tu mettait dans edittext est null; Essaye de taper à la main une String et regarde si la connection avec la base distante est ok.
    C'est cela le titre de thread apres on passera à getIntent......
    Merci jahbromo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(this.getIntent().getExtras()!=null)
            {
            	String s="Hello";
            	//s=this.getIntent().getExtras().getString("Data");
            	edit.setText(s);
            }
    Le mot Hello s'affiche correctement, donc la connexion est établie je pense, il reste que la réception des informations souhaité depuis la BD.

    tu pense que cette syntaxe est correcte?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String myurl="http://192.168.56.1:25/www/Andr.php?Nom="+nom+"&Prenom="+prenom+"";

  17. #17
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Bonsoir tout le monde
    j'ai trouvé une autre solution depuis les codes sources de ce livre:

    http://unlocking-android.googlecode....SimpleGet.java

    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
     
    package com.saturne.externalDB;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
     
    import android.app.Activity;
    import android.os.Bundle;
    //import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
     
    public class Main extends Activity implements OnClickListener {
     
     
    	//  private static final String CLASSTAG = SimpleGet.class.getSimpleName();
     
    	    private EditText getInput;
    	    private TextView getOutput;
    	    private Button getButton;
     
    	    @Override
    	    public void onCreate(Bundle icicle) {
    	        super.onCreate(icicle);
    	        setContentView(R.layout.main);
     
    	        this.getInput = (EditText) findViewById(R.id.get_input);
    	        this.getOutput = (TextView) findViewById(R.id.get_output);
    	        this.getButton = (Button) findViewById(R.id.get_button);
     
    	        this.getButton.setOnClickListener(new OnClickListener() {
     
    	            public void onClick(View v) {
    	                getOutput.setText("");
    	                String output = getHttpResponse(getInput.getText().toString());
    	                if (output != null) {
    	                    getOutput.setText(output);
    	                }
    	            }
    	        });
    	    };
     
    	    /**
                 * Perform an HTTP GET with HttpUrlConnection.
                 * 
                 * @param location
                 * @return
                 */
    	    private String getHttpResponse(String location) {
    	        String result = null;
    	        URL url = null;
    	        // Log.d(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " location = " + location);
     
    	        try {
    	            url = new URL(location);
    	            //   Log.d(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " url = " + url);
    	        } catch (MalformedURLException e) {
    	        	//  Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " " + e.getMessage());
    	        }
     
    	        if (url != null) {
    	            try {
    	                HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
    	                BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
    	                String inputLine;
     
    	                int lineCount = 0; // limit the lines for the example
    	                while ((lineCount < 10) && ((inputLine = in.readLine()) != null)) {
    	                    lineCount++;
    	                    //  Log.v(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " inputLine = " + inputLine);
    	                    result += "\n" + inputLine;
    	                }
     
    	                in.close();
    	                urlConn.disconnect();
     
    	            } catch (IOException e) {
    	               // Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " " + e.getMessage());
    	            }
    	        } else {
    	        	//  Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " url NULL");
    	        }
    	        return result;
    	    }
     
    		public void onClick(View arg0) {
    			// TODO Auto-generated method stub
     
    		}
    	}
    ca fonctionne correctement, dans le EditText, j'introduit: http://192.168.56.1/www/Andr.php
    et quand je click sur le bouton il m'affiche cette erreur:

    The application ExternalDB (process com.saturne.externalDB)has stopped unexpectedly. Please try again.


    voila le LogCat:
    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
     
    03-03 23:05:51.056: DEBUG/AndroidRuntime(733): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
    03-03 23:05:51.056: DEBUG/AndroidRuntime(733): CheckJNI is ON
    03-03 23:05:51.415: DEBUG/AndroidRuntime(733): --- registering native functions ---
    03-03 23:05:51.439: INFO/jdwp(733): received file descriptor 19 from ADB
    03-03 23:05:52.531: INFO/ActivityManager(563): Starting activity: Intent { flags=0x10000000 comp={com.saturne.externalDB/com.saturne.externalDB.Main} }
    03-03 23:05:52.619: DEBUG/AndroidRuntime(733): Shutting down VM
    03-03 23:05:52.619: DEBUG/dalvikvm(733): DestroyJavaVM waiting for non-daemon threads to exit
    03-03 23:05:52.651: DEBUG/dalvikvm(733): DestroyJavaVM shutting VM down
    03-03 23:05:52.651: DEBUG/dalvikvm(733): HeapWorker thread shutting down
    03-03 23:05:52.651: DEBUG/dalvikvm(733): HeapWorker thread has shut down
    03-03 23:05:52.651: DEBUG/jdwp(733): JDWP shutting down net...
    03-03 23:05:52.664: DEBUG/jdwp(733): +++ peer disconnected
    03-03 23:05:52.664: INFO/dalvikvm(733): Debugger has detached; object registry had 1 entries
    03-03 23:05:52.664: DEBUG/dalvikvm(733): VM cleaning up
    03-03 23:05:52.851: INFO/ActivityManager(563): Start proc com.saturne.externalDB for activity com.saturne.externalDB/.Main: pid=741 uid=10020 gids={3003}
    03-03 23:05:52.879: DEBUG/dalvikvm(733): LinearAlloc 0x0 used 639228 of 4194304 (15%)
    03-03 23:05:53.083: INFO/jdwp(741): received file descriptor 10 from ADB
    03-03 23:05:53.155: WARN/System.err(741): Can't dispatch DDM chunk 46454154: no handler defined
    03-03 23:05:53.155: WARN/System.err(741): Can't dispatch DDM chunk 4d505251: no handler defined
    03-03 23:05:53.603: WARN/Resources(741): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f050002}
    03-03 23:05:53.863: INFO/ActivityManager(563): Displayed activity com.saturne.externalDB/.Main: 1319 ms
    03-03 23:05:59.010: DEBUG/dalvikvm(611): GC freed 144 objects / 6768 bytes in 125ms
    03-03 23:06:10.762: DEBUG/dalvikvm(712): GC freed 2650 objects / 168104 bytes in 324ms
    03-03 23:06:34.575: WARN/KeyCharacterMap(741): No keyboard for id 0
    03-03 23:06:34.575: WARN/KeyCharacterMap(741): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
    03-03 23:07:03.396: DEBUG/AndroidRuntime(741): Shutting down VM
    03-03 23:07:03.403: WARN/dalvikvm(741): threadid=3: thread exiting with uncaught exception (group=0x4000fe70)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741): Uncaught handler: thread main exiting due to uncaught exception
    03-03 23:07:03.403: ERROR/AndroidRuntime(741): java.lang.NullPointerException
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at com.saturne.externalDB.Main$1.onClick(Main.java:39)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.view.View.performClick(View.java:2179)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.view.View.onTouchEvent(View.java:3828)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.widget.TextView.onTouchEvent(TextView.java:6291)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.view.View.dispatchTouchEvent(View.java:3368)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1707)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1197)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.app.Activity.dispatchTouchEvent(Activity.java:1993)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1691)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1525)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.os.Handler.dispatchMessage(Handler.java:99)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.os.Looper.loop(Looper.java:123)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at android.app.ActivityThread.main(ActivityThread.java:3948)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at java.lang.reflect.Method.invokeNative(Native Method)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at java.lang.reflect.Method.invoke(Method.java:521)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
    03-03 23:07:03.403: ERROR/AndroidRuntime(741):     at dalvik.system.NativeStart.main(Native Method)
    03-03 23:07:03.427: INFO/Process(563): Sending signal. PID: 741 SIG: 3
    03-03 23:07:03.427: INFO/dalvikvm(741): threadid=7: reacting to signal 3
    03-03 23:07:03.596: INFO/dalvikvm(741): Wrote stack trace to '/data/anr/traces.txt'

  18. #18
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    ca fonctionne correctement, dans le EditText, j'introduit: http://192.168.56.1/www/Andr.php
    et quand je click sur le bouton il m'affiche cette erreur:
    Il faut mettre les parametre et le port 80

  19. #19
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Maintenant ca fonctionne bien, l'erreur était dans le layout du main: @+id/get_output n'est pas mentionner dans la proprété du TexView.

    Maintenant quand j'introduit l'adresse de mon serveur distant il n'affiche rien comme résultat.

    seulement dans le cas où j'introduit ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://192.168.56.1:25/www/Andr.php?Nom="+nom
    le Log m'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    03-03 23:41:57.307: INFO/global(804): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
    voila je fait un petit récap de ma situation: j'ai fait un serveur distant sur Machine virtual avec adresse http://192.168.56.1
    je travaille avec WampServer, j'ai créer une BD et j'ai fait un fichier php pour cherché une valeur donnée depuis la BD, voila le code du php:

    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
     
    <?php
    $connexion=mysql_connect( "localhost" ,  "root"  ,  "" );
    mysql_select_db("maison");
    $requete="SELECT nom FROM personne where prenom='Mohamed'";
    $resultat=mysql_query($requete);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans nom</title>
    </head>
     
    <body>
     
     <?php 
    $personne=mysql_fetch_array($resultat); 
     
    echo "Nom:".$personne['nom'];
     
    ?>
    </body>
    </html>
    il me semble que ce n'est pas correcte, je suis nouveau en PHP,

    est ce que ce code permet au client Android de trouver le nom d'une personne dans la base distante?


  20. #20
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Je t'ai conseillé Java ( Servlet), il peut facilement te retourner un Object Personne avec Json dont tu parsera mais php j'en sais pas trop

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Connecter une application à un serveur distant
    Par mklegn91 dans le forum Langage
    Réponses: 7
    Dernier message: 13/03/2013, 11h23
  2. Connexion Android client avec serveur distant
    Par kinger dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 10/02/2012, 18h09
  3. Connection MySQL sur un serveur distant.
    Par seroa dans le forum JDBC
    Réponses: 4
    Dernier message: 15/09/2009, 17h02
  4. [MySQL] Connection à une bdd sur serveur distant
    Par papyphp dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/03/2006, 21h13
  5. [VB6]Comment se connecter à une BD sur serveur distant?
    Par Chess0 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/10/2005, 21h11

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