broadcastreceiver - Android Wifi broadcast receiver not working as expected -


i have wifi ssid whenever phone connects new wifi network. registered following

receiver `registerreceiver(this.mybroadcast, new intentfilter(wifimanager.supplicant_connection_change_action));` 

this part of code works perfectly. in onreceive method,

networkinfo info = intent.getparcelableextra(wifimanager.extra_wifi_info)); 

always returns null. tried extra_network_info well, returns null.

i can't use

this.registerreceiver(this.mybroadcast, new intentfilter(connectivitymanager.connectivity_action));, 

as service stop/start after n minutes , using generate event on every restart of service.

any ideas how can solve issue?

you can create broadcast within activity

step 1 :

 @override     public void onresume() {         registerreceiver();         super.onresume();     }   private void registerreceiver() {         intentfilter filter = new intentfilter();         filter.addaction(connectivitymanager.connectivity_action);         filter.addaction(wifimanager.supplicant_state_changed_action);         registerreceiver(mreceiver, filter);     } 

step 2

private broadcastreceiver mreceiver = new broadcastreceiver() {         @override         public void onreceive(context context, intent intent) {              networkinfo info = intent.getparcelableextra(wifimanager.extra_network_info);             if (info != null) {                 if (info.isconnected()) {                     wifimanager wifimanager = (wifimanager) context.getsystemservice(context.wifi_service);                     wifiinfo wifiinfo = wifimanager.getconnectioninfo();                     string ssid = wifiinfo.getssid();                     if (ssid != null) {                         if (isconnectclicked) {                           //your connected wifi                                                 }                                        }                                          }                                 }             } else {                 if (intent.getaction().equals(wifimanager.supplicant_state_changed_action)) {                     if (intent.hasextra(wifimanager.extra_supplicant_error)) {                    //connection failed                           }                 }              }           }      }; 

step 3

 @override     public void onpause() {         unregisterreceiver(mreceiver);         super.onpause();     } 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -