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

Composants graphiques Android Discussion :

Comment afficher les resultats d'un scan Wifi dans une ListView?


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Points : 66
    Points
    66
    Par défaut Comment afficher les resultats d'un scan Wifi dans une ListView?
    Bonjour à tous !

    Voilà, je voudrais afficher les éléments scannés suite à l'action getScanResults(); dans une ListView.

    Mon 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    public class ListeReseaux extends Activity{
     
    	private String
    	ssid;
     
    	private String
    	capabilities;
     
    	private WifiManager 
    	wM;
     
    	private ConnectivityManager
    	cM;
     
    	private ListView 
    	lst;
     
    	public class Receiver extends BroadcastReceiver{
    		@Override
    		public void onReceive(Context context, Intent intent) {
     
    			if(intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)){
    				List<ScanResult> results = wM.getScanResults();
    				for(int i=0;i<results.size();i++){
    					Log.i("Wifi",results.get(i).SSID);
     
    					ssid         = results.get(i).SSID;
    					capabilities = results.get(i).capabilities;
     
    				}
    			}
     
     
     
    		}
    	}				
     
    public void onCreate(Bundle saveInstanceState){
    	 super.onCreate(saveInstanceState);
    	 setContentView(R.layout.list_view);
     
    	 lst = (ListView)findViewById(R.id.lst);
     
     
     
         cM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
         wM = (WifiManager)getSystemService(Context.WIFI_SERVICE);
     
         Receiver receiver = new Receiver();
         registerReceiver(receiver,new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
         registerReceiver(receiver,new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
     
    }};
    Merci pour vôtre aide !

  2. #2
    Jay
    Jay est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2002
    Messages : 124
    Points : 189
    Points
    189
    Par défaut
    Bonjour,

    As-tu regarder la doc ?

    Sinon tu as un exemple :
    http://developer.android.com/resourc...-listview.html

    Cordialement,
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par Jay Voir le message
    Bonjour,

    As-tu regarder la doc ?

    Sinon tu as un exemple :
    http://developer.android.com/resourc...-listview.html

    Cordialement,
    Merci pour ta réponse.
    Oui j'ai déjà regardé la doc.
    J'ai essayé plusieurs choses mais soit j'ai un ForceClose (NullPointer Exception)
    soit rien ne s'affiche du tout...

    Donc je n'y comprends rien..

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Pourrais tu nous afficher ce que tu obtiens dans le logcat ?

    Merci .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Bonjour,

    Pourrais tu nous afficher ce que tu obtiens dans le logcat ?

    Merci .
    Code 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
     
    package sebgri.corporation.hfe;
     
    import java.util.ArrayList;
    import java.util.List;
    import android.app.Activity;
    import android.content.Context;
    import android.net.wifi.ScanResult;
    import android.net.wifi.WifiManager;
    import android.os.Bundle;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
     
     
     
     
     
    public class ListeReseaux extends Activity {
     
     
    	WifiManager wM;
        List<ScanResult> result;
     
        int count=0; 
        int i=0; 
        int k=0; 
        int idx=0;
     
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState);
     
            ListView lst = (ListView)findViewById(R.id.lst);
     
            ArrayList<String> mStrings = new ArrayList<String>(); 
            ArrayAdapter<String> aa;
     
            aa = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mStrings); 
            lst.setAdapter(aa);
     
            wM = (WifiManager)getSystemService(Context.WIFI_SERVICE);
     
            	result = wM.getScanResults(); 
              while(result.size()> count)
     
             {
     
             mStrings.add(count,result.get(count).SSID);
     
             count++;
     
             }
     }
    Voilà ce que me dit 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
     
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007): FATAL EXCEPTION: main
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007): java.lang.RuntimeException: Unable to start activity ComponentInfo{sebgri.corporation.hfe/sebgri.corporation.hfe.ListeReseaux}: java.lang.NullPointerException
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at android.os.Handler.dispatchMessage(Handler.java:99)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at android.os.Looper.loop(Looper.java:123)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at java.lang.reflect.Method.invokeNative(Native Method)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at java.lang.reflect.Method.invoke(Method.java:521)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at dalvik.system.NativeStart.main(Native Method)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007): Caused by: java.lang.NullPointerException
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at sebgri.corporation.hfe.ListeReseaux.onCreate(ListeReseaux.java:41)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     ... 11 more
    je lance cette activity avec ce bout de code d'une autre activity :
    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
     
    case R.id.btnScan :
    		if(v == btnScan)
    		{	
    		if (wM.isWifiEnabled() == false)
    		{
    			Toast.makeText(this, "Veuillez activé le dispositif Wifi pour effectuer un scan", Toast.LENGTH_SHORT).show();
    		}
    		else if(wM.isWifiEnabled() == true)
    		{
    			wM.startScan();
    			startActivity(new Intent(this, ListeReseaux.class));
    		}
     
    }}}

  6. #6
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007): Caused by: java.lang.NullPointerException
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at sebgri.corporation.hfe.ListeReseaux.onCreate(ListeReseaux.java:41)
    Tu as une erreur a la ligne 41 .

    A vu de nez cela ressemblerait a ce que ta variable result est nulle.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007): Caused by: java.lang.NullPointerException
    02-08 20:59:08.386: ERROR/AndroidRuntime(2007):     at sebgri.corporation.hfe.ListeReseaux.onCreate(ListeReseaux.java:41)
    Tu as une erreur a la ligne 41 .

    A vu de nez cela ressemblerait a ce que ta variable result est nulle.
    Bah c'est bizarre car quand je met un log juste pour le getScanResult(); il me liste bien les réseaux disponibles...

  8. #8
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Dans ce cas met un breakpoint dans ton onCreate de ton activity , puis debug ton application pas à pas pour voir quelle variable pose problème .

    Sinon tu peux toujours poser des logs dans ta procédure .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Bonjour,

    Dans ce cas met un breakpoint dans ton onCreate de ton activity , puis debug ton application pas à pas pour voir quelle variable pose problème .

    Sinon tu peux toujours poser des logs dans ta procédure .
    Bon j'ai repris mon code et j'ai bien l'affichage des réseaux:
    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
     
    @Override 
    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.listscan);
     
         final Window win = getWindow();     
         win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
     
         setTitle("  Réseaux Détectés");
         setTitleColor(Color.CYAN);
     
         ArrayList<String> mStrings = new ArrayList<String>(); 
         ArrayAdapter<String> aa;
         aa = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mStrings);         
         aa.notifyDataSetChanged();
     
     
         lst = (ListView)findViewById(R.id.lst);
         lst.setAdapter(aa);
         lst.setCacheColorHint(Color.TRANSPARENT);
         lst.setBackgroundColor(Color.TRANSPARENT);
         lst.setBackgroundResource(R.drawable.bg_scan);
         lst.setOnItemClickListener(this);
     
            wM = (WifiManager)getSystemService(Context.WIFI_SERVICE);
     
            scans = wM.getScanResults(); 
              while(scans.size()> count) 
             { 
            	  mStrings.add(count,scans.get(count).SSID); 
            	  count++; 
             }
         }
     
     
    @Override
    public void onItemClick(AdapterView<?> a, View v, int position, long id) {
     
    	 adb = new AlertDialog.Builder(this);
    	 adb.setIcon(R.drawable.);
    	 adb.setTitle(""+lst.getItemAtPosition(position));	
    	 adb.setMessage("Se connecter au réseau "+lst.getItemAtPosition(position)+" ?");	
    	 adb.setPositiveButton("Ok", null);	
    	 adb.show();
     
     
    }

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

Discussions similaires

  1. [Débutant] Comment afficher le resultat dune BDD avec javascript dans une nouvelle page
    Par modemo2005 dans le forum Langages
    Réponses: 1
    Dernier message: 16/12/2014, 19h24
  2. Réponses: 6
    Dernier message: 14/08/2013, 16h53
  3. Afficher les resultat d'un code (matrice) dans l'interface
    Par Alucard9800XT dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 06/06/2007, 09h31
  4. Réponses: 5
    Dernier message: 27/04/2007, 15h06

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