如何操作getScanResults()的结果

时间:2015-07-24 21:34:45

标签: java android

我正在学习如何构建Android应用程序,我一直在搜索如何获取我所在地区的所有网络点,并且我下载了一段代码以了解它是如何工作的。

但我想知道如何从getScanResults()给我的列表中删除一些SSID。

我的目标是检查我的数据库中是否有某个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)放在我的hashmap上。使用if语句检查特定名称是否等于当前SSID。但它没有用,因为getScanResults将所有SSID一起发送给我,我试图逐个验证de 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();    

                } 

你们可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:0)

应该是

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

不应使用==

检查字符串是否相等