Android: How to change the Mobile hotspot broadcast channel by programmatically? -


i tried change mobile hotsport broadcast channel in android programmatically using following code not changing value/channel.

note: able change ssid , password programmatically.
tried set channel 11, still not working...

thanks in advance

my code is

public void hotspotchannelwrite() {     wifimanager wifimanager = (wifimanager)getsystemservice(wifi_service);      if(wifimanager.iswifienabled())     {         wifimanager.setwifienabled(false);     }     netconfig = new wificonfiguration();     netconfig.ssid = "tipturinfo";     netconfig.presharedkey = "sharath";     netconfig.allowedauthalgorithms.set(wificonfiguration.authalgorithm.open);     netconfig.allowedprotocols.set(wificonfiguration.protocol.rsn);     netconfig.allowedprotocols.set(wificonfiguration.protocol.wpa);     netconfig.allowedkeymanagement.set(wificonfiguration.keymgmt.wpa_psk);     netconfig.allowedgroupciphers.set(wificonfiguration.groupcipher.tkip);     netconfig.allowedgroupciphers.set(wificonfiguration.groupcipher.ccmp);     netconfig.allowedpairwiseciphers.set(wificonfiguration.pairwisecipher.tkip);     netconfig.allowedpairwiseciphers.set(wificonfiguration.pairwisecipher.ccmp);     try {          method setwifiapmethod = wifimanager.getclass().getmethod("setwifiapenabled", wificonfiguration.class, boolean.class);         boolean apstatus=(boolean) setwifiapmethod.invoke(wifimanager, netconfig,true);          method iswifiapenabledmethod = wifimanager.getclass().getmethod("iswifiapenabled");         while(!(boolean)iswifiapenabledmethod.invoke(wifimanager)){};          method getwifiapstatemethod = wifimanager.getclass().getmethod("getwifiapstate");         int apstate=(integer)getwifiapstatemethod.invoke(wifimanager);          method getwifiapconfigurationmethod = wifimanager.getclass().getmethod("getwifiapconfiguration");         netconfig=(wificonfiguration)getwifiapconfigurationmethod.invoke(wifimanager);          log.i("writing hotspotdata", "\nssid:"+netconfig.ssid+"\npassword:"+netconfig.presharedkey+"\n");          // channel change         field wcadhocfreq = wificonfiguration.class.getfield("frequency");         int freq = 2462; // default channel 11         wcadhocfreq.setint(netconfig, freq);         log.i("hotspotdata channel", "\n frequence:"+freq );         log.i("hotspotdata channel", "\n frequence:"+wcadhocfreq );          // saving data         wifimanager.saveconfiguration();      } catch (illegalformatexception ife) {         ife.printstacktrace();     } catch (exception e) {         e.printstacktrace();     }      wifimanager.saveconfiguration(); } 

i tried alternative way well:

field wcfreq = wificonfiguration.class.getfield("channel");        wcfreq.setint(netconfig,11); 

try this, works android 7.0

                method getwifiapconfigurationmethod = wifimanager.getclass().getmethod("getwifiapconfiguration");                 netconfig=(wificonfiguration)getwifiapconfigurationmethod.invoke(wifimanager);                  //log.i("writing hotspotdata", "\nssid:" + netconfig.ssid + "\npassword:" + netconfig.presharedkey + "\n");                  field wcband = wificonfiguration.class.getfield("apband");                 int vb = wcband.getint(netconfig);                 log.i("band was", "val=" + vb);                 wcband.setint(netconfig, 2); // 2ghz                  // channel change                 field wcfreq = wificonfiguration.class.getfield("apchannel");                 int val = wcfreq.getint(netconfig);                 log.i("config was", "val=" + val);                 wcfreq.setint(netconfig,11); // channel 11                  method setwifiapconfigurationmethod = wifimanager.getclass().getmethod("setwifiapconfiguration", wificonfiguration.class);                 setwifiapconfigurationmethod.invoke(wifimanager, netconfig);                  // saving data                 wifimanager.saveconfiguration(); 

Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -