Я хочу добавить функцию сканирования Wi-Fi в мое приложение, которое будет сканировать все сети Wi-Fi в пределах диапазона и перечислять SSID в Spinner. Мне удалось реализовать это с помощью следующего кода. Но при сканировании показывается несколько сетевых имен с одинаковым именем (при сканировании с настройками wifi телефона нет одинаковых сетей) и много пустых строк в Spinner. Я ценю любые предложения о том, как я могу предотвратить эту проблему, однозначно идентифицируя имена сетей без дублирования или пустых строк.
Пожалуйста, найдите мой класс приемника Wi-Fi здесь.
class WifiReceiver extends BroadcastReceiver {
WifiManager wifiManager;
Spinner wifiDeviceList;
String[] deviceList;
public WifiReceiver(WifiManager wifiManager, Spinner wifiDeviceList) {
this.wifiManager = wifiManager;
this.wifiDeviceList = wifiDeviceList;
}
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
List<ScanResult> wifiList = wifiManager.getScanResults();
deviceList = new String[wifiList.size()];
for (int i = 0; i < wifiList.size(); i++) {
deviceList[i] = ((wifiList.get(i).SSID));
}
ArrayAdapter arrayAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_dropdown_item, deviceList);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
wifiDeviceList.setAdapter(arrayAdapter);
}
}
}