我正在学习如何构建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();
}
你们可以帮忙吗?
感谢。
答案 0 :(得分:0)
应该是
if(results.get(size).SSID.equals("WIFI_NAME")) {
item.put(ITEM_KEY, results.get(size).SSID.concat(" -"));
}
不应使用==
检查字符串是否相等