ওয়াইফাই নেটওয়ার্ক সংযুক্ত হওয়ার আগে আপনাকে সুরক্ষা ধরণের ওয়াইফাই নেটওয়ার্ক স্ক্যানআরসাল্ট শ্রেণীর একটি দক্ষতা রয়েছে তা যাচাই করতে হবে। এই ক্ষেত্রটি আপনাকে নেটওয়ার্কের ধরণ দেয়
রেফারেন্স: https://developer.android.com/references/android/net/wifi/ScanResult.html# ক্ষমতা
আছে তিন ধরনের ওয়াইফাই নেটওয়ার্ক।
প্রথমে একটি ওয়াইফাই কনফিগারেশন অবজেক্টটি ইনস্ট্যান্ট করুন এবং নেটওয়ার্কের এসএসআইডি পূরণ করুন (নোট করুন যে এটি ডাবল কোটে আবদ্ধ করতে হবে), প্রাথমিক অবস্থাটি অক্ষম করে সেট করুন, এবং নেটওয়ার্কের অগ্রাধিকার উল্লেখ করুন (প্রায় 40 টি সংখ্যা ভাল কাজ করে বলে মনে হচ্ছে)।
WifiConfiguration wfc = new WifiConfiguration();
wfc.SSID = "\"".concat(ssid).concat("\"");
wfc.status = WifiConfiguration.Status.DISABLED;
wfc.priority = 40;
এখন আরও জটিল অংশের জন্য: নেটওয়ার্কের সুরক্ষা মোড নির্দিষ্ট করতে আমাদের ওয়াইফাই কনফিগারেশনের বেশ কয়েকটি সদস্য পূরণ করতে হবে। উন্মুক্ত নেটওয়ার্কগুলির জন্য
wfc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wfc.allowedAuthAlgorithms.clear();
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
নেটওয়ার্কগুলি WEP ব্যবহার করে; নোট করুন যে ডাব্লুইইপি কীটিও ডাবল উদ্ধৃতিতে আবদ্ধ।
wfc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wfc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wfc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
if (isHexString(password)) wfc.wepKeys[0] = password;
else wfc.wepKeys[0] = "\"".concat(password).concat("\"");
wfc.wepTxKeyIndex = 0;
WPA এবং WPA2 ব্যবহার করে নেটওয়ার্কগুলির জন্য, আমরা উভয়ের জন্য একই মান সেট করতে পারি।
wfc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wfc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wfc.preSharedKey = "\"".concat(password).concat("\"");
শেষ পর্যন্ত, আমরা নেটওয়ার্কটি ওয়াইফাইম্যানেজারের পরিচিত তালিকায় যুক্ত করতে পারি
WifiManager wfMgr = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int networkId = wfMgr.addNetwork(wfc);
if (networkId != -1) {
// success, can call wfMgr.enableNetwork(networkId, true) to connect
}