J'ai essayé de changer le canal de diffusion hotsport mobile dans android par programmation en utilisant le code suivant, mais il ne change aucune valeur/canal.Android: Comment modifier le canal de diffusion hotspot mobile par programme?
Remarque: Je peux modifier le SSID et le mot de passe par programme.
J'ai essayé de régler le canal 11, encore il ne fonctionne pas ...
Merci à l'avance
Mon code est
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");
// For Channel change
Field wcAdhocFreq = WifiConfiguration.class.getField("frequency");
int freq = 2462; // default to channel 11
wcAdhocFreq.setInt(netConfig, freq);
Log.i("HotspotData Channel", "\n Frequence:"+freq);
Log.i("HotspotData Channel", "\n Frequence:"+wcAdhocFreq);
// For Saving Data
wifiManager.saveConfiguration();
} catch (IllegalFormatException ife) {
ife.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
wifiManager.saveConfiguration();
}
J'ai essayé alternative ainsi:
Field wcFreq = WifiConfiguration.class.getField("channel");
wcFreq.setInt(netConfig,11);
http://stackoverflow.com/questions/6394599/android-turn-on-off-wifi-hotspot-programmatically –
@Adnanul, lien ci-dessus est pour Activer/désactiver WiFi HotSpot par programmation, mais ma question est sur le changement de canal de diffusion de hotspot mobile spécifiquement .. ??? Merci, – kgsharathkumar
kgsharathkumar, avez-vous les canaux de diffusion hotspot disponibles, encore? Cela devrait être la première étape, non? –