Использование широковещательного приемника в модели Android View - PullRequest
0 голосов
/ 10 июля 2020

Я использую 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;
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...