カスタムWI-FIリストおよび関連設定の取得
4703 ワード
転々とするのはとても长い时间で、あっという间に自分でandroid业界に従事してすでに3年があって、何も残っていないで、この业界の中で奋闘して、一人の生活を过ごしています...
よし、くだらないことは言わないで、干物に行きます.
Wi-Fiはandroidでは切り離せない部分であり、生活の中で切り離せない部分であり、一般的にはアプリケーション開発時に関連するものはあまり使われません.あなたのアプリケーションを開いてネットワーク接続を設定する人はいないので、システム設定でWi-Fiを接続し、私たちのアプリケーションに入ります.しかし、Wi-Fiの基本的な使用が欠けているアプリケーションもあります.
Wi-Fiに関する基本的な情報はあまり話さず、よく使われるものをいくつか直接話します.
1、Wi-Fiリストを取得する
Wi-Fiリスト取得時にWi-Fi管理系Wif iManagerを取得する
次にWi-Fiが開いているかどうかを判断します
しかし言わざるを得ないのはandroid 6.0の時Googleエンジニアは開発時にWi-Fiの開きが測位に使われるかもしれないと感じたので、度源コードはWi-Fiリストを取得するにはWi-FiとGPS測位を開かなければならないことを発見しました.
getScanResults()メソッドでWi-Fiリストを取得できます.このメソッドの戻り値は、SSID Wi-Fiが現在選択されている名前、capableitiesWi-Fiの検証方法など、Wi-Fiの基本情報が含まれているリストのセットです.必要な情報はScanResultsソースコードを表示できます.
2、もちろんWi-Fiリストを取得するときは必ずリストを操作する必要があります.例えば、接続が必要なWi-Fiエントリをクリックすると、パスワードを入力してリンクし、root携帯電話は必要ありませんが、この過程でチェーンWifiConfigurationを完了するためのクラスが必要です.このクラスの場合、Wi-Fiの構成クラスは、このクラスでは、リンクするWi-Fiの情報を設定します
放送受信後Wi-Fi接続成功!!!開発の過程で他の人のブログを学んだことがありますが、同じようなところや似たようなところがあれば、含めてください.
よし、くだらないことは言わないで、干物に行きます.
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接続成功!!!開発の過程で他の人のブログを学んだことがありますが、同じようなところや似たようなところがあれば、含めてください.