2015-07-24 4 views
0

Я изучаю, как создавать приложения для Android, и я искал, как я могу получить все сетевые пятна вокруг своей области, и я загрузил код, чтобы понять, как он работает.Как я могу манипулировать результатами getScanResults()

Но я хотел бы знать, как удалить некоторые SSID из списка, который получает getScanResults().

Моя цель - проверить, нет ли в моей базе данных SSID и удалить его.

Я отправлю полный код, и я буду говорить, что я сделал до сих пор:

Мой полный код:

@Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     textStatus = (TextView) findViewById(R.id.textView1); 
     buttonScan = (Button) findViewById(R.id.button1); 
     buttonScan.setOnClickListener(this); 
     lv = (ListView)findViewById(R.id.text); 

     wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
     if (wifi.isWifiEnabled() == false) 
     { 
      Toast.makeText(getApplicationContext(), "wifi is disabled..making it enabled", Toast.LENGTH_LONG).show(); 
      wifi.setWifiEnabled(true); 
     } 
     this.adapter = new SimpleAdapter(MainActivity.this, arraylist, android.R.layout.simple_list_item_1, new String[] { ITEM_KEY }, new int[] { android.R.id.text1 }); 
     lv.setAdapter(this.adapter); 


     registerReceiver(new BroadcastReceiver() 
     { 
      @Override 
      public void onReceive(Context c, Intent intent) 
      { 
       results = wifi.getScanResults(); 
       size = results.size(); 


      } 
     }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));      
    } 


    public void onClick(View view) 
    { 
     arraylist.clear();   
     wifi.startScan(); 

     Toast.makeText(this, "Scanning...." + size, Toast.LENGTH_SHORT).show(); 
     try 
     { 
      size = size - 1; 

      String SSID = results.get(size).SSID; 

      while (size >= 0) 
      { 
       HashMap<String, String> item = new HashMap<String, String>(); 

       String BSSID = results.get(size).BSSID; 

       int frequency = results.get(size).frequency; 

       item.put(ITEM_KEY, results.get(size).SSID.concat(" -")); 

       arraylist.add(item); 
       size--; 
       adapter.notifyDataSetChanged();  

      } 
     } 
     catch (Exception e) 
     { }   
    }  
} 

То, что я сделал до сих пор:

Я попытался для обертывания строки, которая помещает элементы (SSID) в мой хэш-файл. с оператором if, чтобы проверить, соответствует ли конкретное имя текущему SSID. Но это не сработало, потому что getScanResults отправляет мне все SSID вместе, и я пытаюсь проверить SSID один за другим.

while (size >= 0) 
       { 
        HashMap<String, String> item = new HashMap<String, String>(); 

        String BSSID = results.get(size).BSSID; 

        int frequency = results.get(size).frequency; 

        if(results.get(size).SSID.equals("WIFI_NAME")){ 
        item.put(ITEM_KEY, results.get(size).SSID.concat(" -")); 
        } 
        arraylist.add(item); 
        size--; 
        adapter.notifyDataSetChanged();  

       } 

Можете ли вы, ребята, помочь?

Спасибо.

+0

я не вижу ваш «если конкретное имя равно текущему SSID» код в ваш пост, или я что-то упускаю? – Bajji

+0

Извините, я обновил вопрос. –

ответ

0

Это должно быть

if(results.get(size).SSID.equals("WIFI_NAME")) { 
    item.put(ITEM_KEY, results.get(size).SSID.concat(" -")); 
} 

Строки не должны быть проверены на равенство с ==

Смежные вопросы