Using Broadcast Receiver in Android View Model

I am using MVVM to develop an application that displays the names, MAC addresses, signal strengths and link speeds of the Wi-Fi networks in the phone’s coverage area in recyclerView.

But I cannot run WifiReceiver broadcast from MainViewModel.

All I want is to take the wifi list from WifiReceiver and integrate it into my Data model, can you please help?

     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;     } }  
Add Comment
0 Answer(s)

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.