カスタムWI-FIリストおよび関連設定の取得

4703 ワード

転々とするのはとても长い时间で、あっという间に自分でandroid业界に従事してすでに3年があって、何も残っていないで、この业界の中で奋闘して、一人の生活を过ごしています...
よし、くだらないことは言わないで、干物に行きます.
Wi-Fiはandroidでは切り離せない部分であり、生活の中で切り離せない部分であり、一般的にはアプリケーション開発時に関連するものはあまり使われません.あなたのアプリケーションを開いてネットワーク接続を設定する人はいないので、システム設定でWi-Fiを接続し、私たちのアプリケーションに入ります.しかし、Wi-Fiの基本的な使用が欠けているアプリケーションもあります.
Wi-Fiに関する基本的な情報はあまり話さず、よく使われるものをいくつか直接話します.
1、Wi-Fiリストを取得する
Wi-Fiリスト取得時にWi-Fi管理系Wif iManagerを取得する
	wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);

次にWi-Fiが開いているかどうかを判断します
	if (!wifiManager.isWifiEnabled()) {
    	    wifiManager.setWifiEnabled(true);
	}

しかし言わざるを得ないのはandroid 6.0の時Googleエンジニアは開発時にWi-Fiの開きが測位に使われるかもしれないと感じたので、度源コードはWi-Fiリストを取得するにはWi-FiとGPS測位を開かなければならないことを発見しました.
      wifiManager.startScan();//    

getScanResults()メソッドでWi-Fiリストを取得できます.このメソッドの戻り値は、SSID Wi-Fiが現在選択されている名前、capableitiesWi-Fiの検証方法など、Wi-Fiの基本情報が含まれているリストのセットです.必要な情報はScanResultsソースコードを表示できます.
list = wifiManager.getScanResults();

2、もちろんWi-Fiリストを取得するときは必ずリストを操作する必要があります.例えば、接続が必要なWi-Fiエントリをクリックすると、パスワードを入力してリンクし、root携帯電話は必要ありませんが、この過程でチェーンWifiConfigurationを完了するためのクラスが必要です.このクラスの場合、Wi-Fiの構成クラスは、このクラスでは、リンクするWi-Fiの情報を設定します
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"" + ssid + "\""; Wi-Fi  
wc.preSharedKey = "\"" + mWifiPwd.getText().toString().trim() + "\""; //  
wc.status = WifiConfiguration.Status.ENABLED;//....    
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
構成が完了すると、構成情報が転送されます.
int NetId = mWifiManager.addNetwork(config);
return mWifiManager.enableNetwork(NetId, true);
は、戻りfan値に基づいてWi-Fiの接続に成功したかどうかを判断することができるが、上のreturnの戻り値は、登録に成功したかどうかを完璧に説明することはできない.彼の内部では時間のかかる操作が実現されているため、パスワードが正しい場合にfalseに戻る可能性があるが、接続が成功したかどうかを判断するには何を使うのだろうか.答えは放送、Wi-Fi接続に成功した放送を傍受、放送のactionは
android.bluetooth.adapter.action.SCAN_MODE_CHANGED

放送受信後Wi-Fi接続成功!!!開発の過程で他の人のブログを学んだことがありますが、同じようなところや似たようなところがあれば、含めてください.