Я использую MVVM для разработки приложения, которое отображает имена, адреса MA C, мощность сигнала и скорость соединения сетей Wi-Fi в зоне покрытия телефона в recyclerView.
Но я не могу запустите трансляцию WifiReceiver из MainViewModel.
Все, что я хочу, это взять список Wi-Fi из WifiReceiver и интегрировать его в мою модель данных, не могли бы вы помочь?
public class WifiReceiver extends BroadcastReceiver {
WifiManager wifiManager;
StringBuilder sb;
ListView wifiDeviceList;
public List<ScanResult> wifiList;
public ArrayList<String> deviceList;
public WifiReceiver(WifiManager wifiManager, ListView 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)) {
sb = new StringBuilder();
wifiList = wifiManager.getScanResults();
deviceList = new ArrayList<>();
for (ScanResult scanResult : wifiList) {
sb.append("\n").append(scanResult.SSID).append(" - ").append(scanResult.capabilities);
deviceList.add(scanResult.SSID + " - " + scanResult.capabilities);
String wifi_names = scanResult.SSID;
System.out.println(" Wifi names "+ wifi_names );
}
*/
}
}
}
}
public class MainViewModel extends ViewModel {
MutableLiveData<ArrayList<Data>> LiveData;
ArrayList<Data> dataArrayList;
private ListView wifiList;
private WifiManager wifiManager;
WifiReceiver receiverWifi;
public MainViewModel() {
LiveData = new MutableLiveData<>();
init();
}
public MutableLiveData<ArrayList<Data>> getUserMutableLiveData() {
return LiveData;
}
public void init(){
populateList();
LiveData.setValue(dataArrayList);
}
public void populateList(){
//Example
Data data = new Data("Turk Telekom","12:12:23:34:34","Low","High");
dataArrayList = new ArrayList<>();
dataArrayList.add(data);
}
}
public class Data {
private String name;
private String mac;
private String streght;
private String speed;
public Data(String name, String mac, String streght, String speed) {
this.name = name;
this.mac = mac;
this.streght = streght;
this.speed = speed;
}
public Data() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMac() {
return mac;
}
public void setMac(String mac) {
this.mac = mac;
}
public String getStreght() {
return streght;
}
public void setStreght(String streght) {
this.streght = streght;
}
public String getSpeed() {
return speed;
}
public void setSpeed(String speed) {
this.speed = speed;
}
}