Skocz do zawartości
Robson1416

Wyświetlenie listy wifi

    Rekomendowane odpowiedzi

    Czy mógłby ktoś powiedzieć jak wyświetlić listę dostępnych sieci wifi, niestety nie mam pomysłu na to. użyłem coś takiego, ale nie działa :

     private void getAvailableWifiScanResults(Context mContext) {
                   List<ScanResult> mScanResults = mWifiManager.getScanResults();
                   ScanResult bestResult = null;
    
                   if(mScanResults != null){
                           for(ScanResult results : mScanResults){
                                   Log.d("Available Networks", results.SSID);
                                   if(bestResult == null || WifiManager.compareSignalLevel(bestResult.level, results.level) < 0){
                                           bestResult = results;
                                   }
                           }
    
                           if(mScanResults.size() > 0 && bestResult != null){
                                   String message = String.format("%s networks found. %s is the strongest.", mScanResults.size(), bestResult.SSID);
    

    Przyznaje trochę ciężko mi z tym idzie, staram się coś stworzyć, ale nie wiem jak się za to zabrać.

    z góry Dzięki za pomoc

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Cubaza

    Nie wiem w czym masz problem powiem szczerze. Pierwszy kod, który znalazłem w Google:

    Scan for Wireless Networks - Android Snippets

    I ten wyświetla listę aktualnych sieci, które mamy w zasięgu. Fakt, wypisuje je wszystkie do TextView. Ale potem to już możesz sobie z powodzeniem brać i obrabiać tak jak sam będziesz chciał.

    Ale opisz dokładnie swój problem. Tylko powoli i dokładnie. Bo lista wi-fi tutaj się wyświetla.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Nie wiem w czym masz problem powiem szczerze. Pierwszy kod, który znalazłem w Google:

    Scan for Wireless Networks - Android Snippets

    I ten wyświetla listę aktualnych sieci, które mamy w zasięgu. Fakt, wypisuje je wszystkie do TextView. Ale potem to już możesz sobie z powodzeniem brać i obrabiać tak jak sam będziesz chciał.

    Ale opisz dokładnie swój problem. Tylko powoli i dokładnie. Bo lista wi-fi tutaj się wyświetla.

    Tak jest, ten kod widziałem testowałem, moim problemem jest to, że stworzyłem sobie xml w którym mam ListView, który ma wyświetlić tą liste sieci. Jednak nie wiem jak ugryźć to aby te sieci tam wyświetlić. Próbowałem zmienić dokładnie ten kod, który podrzuciłeś, ale nie udało się. Więc chciałem wymyślić coś innego.

    Możesz podpowiedzieć jak zmienić ten kod , żeby wyświetlić listę wifi w listview?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Sobą adapter do listy który dostanie te dane, i ustawi w liście. Wpisz w Google listview tutorial a gdzieś na początku będziesz miał obszerny tutek.

    Wysyłane z mojego Pentagram Monster za pomocą Tapatalk 2

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Cubaza

    Ja Ci proponuję Się zastanowić czy aby na pewno powinieneś się zabierać za coś takiego kiedy nie znasz podstaw.

    Powiem Ci tak. Mam dzisiaj dobry dzień. Po prostu dobrze się zaczął i jestem w miarę wyspany. Poświęciłem dwie minuty na dołożenie linijek do kodu, do którego link dałem Ci odrobinę wcześniej. Jest to dosłownie kilka linijek. Wiem jednak jedno. Na pewno kolejnym pytaniem będzie, jak kliknąć na element listy, jak zrobić coś z listą, jak wykonać coś tam. Drake29a podał Ci co powinieneś poszukać. Ja daję Ci gotowca.

    package com.example.wifitest;
    
    
    
    
    import java.util.ArrayList;
    import java.util.List;
    
    
    import android.app.Activity;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.net.wifi.ScanResult;
    import android.net.wifi.WifiManager;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.TextView;
    
    
    public class MainActivity extends Activity {
    ListView mainListView;
       WifiManager mainWifi;
       WifiReceiver receiverWifi;
       List<ScanResult> wifiList;
       StringBuilder sb = new StringBuilder();
       List<String> wifiListNames;
    
    
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          mainListView = (ListView) findViewById(R.id.mainListView);
          mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
          receiverWifi = new WifiReceiver();
          wifiListNames = new ArrayList<String>();
    
          registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
          mainWifi.startScan();
          //mainText.setText("\\nStarting Scan...\\n");
       }
    
    
       public boolean onCreateOptionsMenu(Menu menu) {
           menu.add(0, 0, 0, "Refresh");
           return super.onCreateOptionsMenu(menu);
       }
    
    
       public boolean onMenuItemSelected(int featureId, MenuItem item) {
           mainWifi.startScan();
           return super.onMenuItemSelected(featureId, item);
       }
    
    
       protected void onPause() {
           unregisterReceiver(receiverWifi);
           super.onPause();
       }
    
    
       protected void onResume() {
           registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
           super.onResume();
       }
    
       class WifiReceiver extends BroadcastReceiver {
           public void onReceive(Context c, Intent intent) {
           	wifiListNames = new ArrayList<String>();
               sb = new StringBuilder();
               wifiList = mainWifi.getScanResults();
               for(int i = 0; i < wifiList.size(); i++){
               	wifiListNames.add(wifiList.get(i).SSID);
                   /*sb.append(new Integer(i+1).toString() + ".");
                   sb.append((wifiList.get(i)).toString());
                   sb.append("\\n");*/
               }
               //mainText.setText(sb);
               ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, wifiListNames);
               mainListView.setAdapter(adapter);
           }
       }
    }
    

    Na liscie wyświetlane są tylko i wyłącznie identyfikatory sieci jakie znalazło. Nic więcej ten kod nie robi niestety.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Ja Ci proponuję Się zastanowić czy aby na pewno powinieneś się zabierać za coś takiego kiedy nie znasz podstaw.

    Dzięki za pomoc z resztą sobie poradzę.

    Czy mógłbyś mi udzielić wskazówek za co zabrać się na początek, tzn jak poznać podstawy i z czym się zapoznać.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    senega

    w SDK jest fajny katalog android-sdk\samples\ - jest tam bardzo wiele przykładów, które w większości odpowiedzą na Twoje pytania. Szczególnie polecam ApiDemos - ainstaluj sobie na telefonie / emulatorze i pobaw się tą aplikacją.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Dzięki za pomoc !

    Poradziłem sobie z całą apką i działa jak należy. Chciałbym ją nie co upiększyć tzn przygotowałem obrazki pokazujące jak gdyby jakość zasięgu sieci i zgodnie z prawdą obok nazwy sieci wyświetla się obrazek.

    Zrobiłem wg tego:

    Android – ListView tutorial with images and text | Programming notes of Deepak Kapoor

    Jednak po uruchomieniu okna z wyszukiwaniem sieci, aplikacja wymusza zamknięcie. Na emulatorze błędów nie ma.

    Co może być przyczyną tego?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Cubaza

    Błędy nie znajdują się w emulatorze, tylko w zakładce LogCat w Eclipse. I skoro aplikacja się wywala to błędy są na pewno.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Błędy nie znajdują się w emulatorze, tylko w zakładce LogCat w Eclipse. I skoro aplikacja się wywala to błędy są na pewno.

    Okej, poradziłem sobie, ostatnie już pytanie , problem być może banalny, ale nie wiem co przekombinowałem. Otóż wyświetlam sobie listę tych sieci i kiedy chcę przewinąć palcem na telefonie listę sieci nagle cały item robi się biały i nie widać co jest na liście.

    Oto mój kod do listy xxml

    <ListView
                   android:id="@+id/list1"
                   android:layout_width="match_parent"
                   android:layout_height="340dp"
                   android:focusable="false"
                   android:focusableInTouchMode="false"
                   android:scrollbarStyle="outsideInset" />

    ---------- Post dołączono 05-08-13 o 17:00 ---------- Poprzedni post napisano 04-08-13 o 21:05 ----------

    Okej, poradziłem sobie, ostatnie już pytanie , problem być może banalny, ale nie wiem co przekombinowałem. Otóż wyświetlam sobie listę tych sieci i kiedy chcę przewinąć palcem na telefonie listę sieci nagle cały item robi się biały i nie widać co jest na liście.

    Oto mój kod do listy xxml

    <ListView
                   android:id="@+id/list1"
                   android:layout_width="match_parent"
                   android:layout_height="340dp"
                   android:focusable="false"
                   android:focusableInTouchMode="false"
                   android:scrollbarStyle="outsideInset" />

    okej, odpowiem sam sobie, może komuś się przyda ;)

    należało dołożyć w xmlu linijkę:

    android:cacheColorHint="#00000000"

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x