[解決済み】Androidで特定のWi-Fiネットワークにプログラム的に接続するにはどうすればいいですか?
2022-03-28 09:03:43
質問
利用可能なWi-Fiネットワークのリストを表示し、ユーザーが選択したネットワークに接続するアプリを設計したいです。
スキャン結果を表示する部分は実装済みです。今度は、スキャン結果の一覧からユーザーが選択した特定のネットワークに接続したいのです。
どうすればいいのでしょうか?
どのように解決するのですか?
を作成する必要があります。
WifiConfiguration
のインスタンスを作成します。
String networkSSID = "test";
String networkPass = "pass";
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\""; // Please note the quotes. String should contain ssid in quotes
次に、WEPネットワークの場合、次のようにします。
conf.wepKeys[0] = "\"" + networkPass + "\"";
conf.wepTxKeyIndex = 0;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
WPAネットワークでは、以下のようにパスフレーズを追加する必要があります。
conf.preSharedKey = "\""+ networkPass +"\"";
Openネットワークでは、このようにする必要があります。
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
その後、Androidのwifiマネージャの設定に追加する必要があります。
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
そして最後に、Androidが接続するように、それを有効にする必要があるかもしれません。
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
UPD:WEPの場合、パスワードが16進数の場合、引用符で囲む必要はありません。
関連
-
[解決済み】インストールエラー。インストールエラー:install_failed_older_sdk
-
[解決済み】Android Studioの初回起動。Android SDKアドオンリストにアクセスできない
-
[解決済み】Build Tools リビジョン 23.0.1 の検索に失敗しました。
-
[解決済み] エラー - Android リソースのリンクに失敗しました (AAPT2 27.0.3 Daemon #0)
-
[解決済み] Android: @drawable/picture を drawable に変換するのに失敗しました。
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] アプリケーションを終了することは嫌われますか?
-
[解決済み] 初期テキストが「Select One」のAndroidスピナーを作るには?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] シンボル 'context' を解決できない
-
[解決済み】AndroidのSSL接続でトラストアンカーが見つからない
-
[解決済み] ユーザーが拒否する可能性のあるパーミッションが必要なコール
-
[解決済み】Android Studioです。「プロジェクトが C ドライブに作成されている場合、「タスク ':app:mergeDebugResources' の実行に失敗しました。
-
[解決済み】ビューのルートとしてNULLを渡さないようにする(膨張したレイアウトのルート要素でレイアウトパラメータを解決する必要がある)。
-
[解決済み】カメラサービスへの接続に失敗しました。
-
[解決済み】googleコンソールエラー`OR-IEH-01`について
-
[解決済み] TypeError: cb.apply は関数ではありません。
-
[解決済み] sendUserActionEvent() は null です。
-
[解決済み] Android M パーミッション : shouldShowRequestPermissionRationale()関数の使用方法について混乱しています。