PDA

View Full Version : اتصال به WiFi با برنامه نویسی



kolibri
سه شنبه 11 اردیبهشت 1397, 22:41 عصر
سلام.
من یک هات اسپات دارم با مشخصات ثابت. می خوام با اجرا شدن برنامه، به صورت خودکار وای فای روشن شده و به هات اسپات مذکور متصل بشه.
مشخصات هات اسپات:
SSID: reyhan112233
Pass: reyhan112233
SSID مخفی هست، اتصال به اینترنت یا حتی اینترانت نداره و یک شبکه محلی اسا و همچنین پروتکل امنیتی هات اسپات WPA2-PSK است.

کدهای زیادی زدم، ولی نتونستم اتصال رو برقرار کنم.

public class ConnWifi {

public void Connect(Context context){
WifiConfiguration config = new WifiConfiguration();
config.SSID = ""reyhan112233"";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
config.SSID = "reyhan112233";
}
config.preSharedKey = ""reyhan112233"";
config.hiddenSSID = true;
config.status = WifiConfiguration.Status.ENABLED;
config.allowedGroupCiphers.set(WifiConfiguration.G roupCipher.TKIP);
config.allowedGroupCiphers.set(WifiConfiguration.G roupCipher.CCMP);
config.allowedKeyManagement.set(WifiConfiguration. KeyMgmt.WPA_PSK);
config.allowedPairwiseCiphers.set(WifiConfiguratio n.PairwiseCipher.TKIP);
config.allowedPairwiseCiphers.set(WifiConfiguratio n.PairwiseCipher.CCMP);
config.allowedProtocols.set(WifiConfiguration.Prot ocol.RSN);
config.allowedProtocols.set(WifiConfiguration.Prot ocol.WPA);

WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI _SERVICE);

int networkId = wifiManager.addNetwork(config);
if(networkId != -1){
connectWifi(config, wifiManager);
}
}

private void connectWifi(WifiConfiguration config , WifiManager wifiManager) {
wifiManager.disconnect();
wifiManager.setWifiEnabled(true);
boolean enableNetworkBoolean = wifiManager.enableNetwork(config.networkId, true);

boolean reconnectBoolean = wifiManager.reconnect();
boolean changeHappen = wifiManager.saveConfiguration();
if(enableNetworkBoolean && reconnectBoolean && changeHappen){
}
else{

}
}