Я изучаю, как создавать приложения для 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();
}
Можете ли вы, ребята, помочь?
Спасибо.
я не вижу ваш «если конкретное имя равно текущему SSID» код в ваш пост, или я что-то упускаю? – Bajji
Извините, я обновил вопрос. –