

現在JavaでAndroidアプリからWi-Fiの接続状態の制御の検証を実施しています。

やりたいこととしてはAndroid12以降のバージョンの端末でアプリ起動してボタン押下時にWi-
Fiの切断をしたいのですが、`WifiManager#setWifiEnabled` および `WifiManager#disconnect`
はdeprecatedで廃止済みとなっており、代替案が見つかっていな状況です。  
上記APIはAndroid8や9のバージョンにおいては正常に動作します（Wifiが切断される）。

色々調べてみたところ、`setWifiEnabled`, `disconnect`
については見つけられたものの比較的新しいバージョンにおいてはdeprecatedの扱いのため別の方法を模索中ですが、どなたかご存じでしたらノウハウ等あればご教示いただけますでしょうか。  
よろしくお願い致します。


CC BY-SA 4.0
2022-09-25T05:42:45.680
91289
2022-10-05T13:06:31.080
2022-09-27T04:20:21.583
3060
54527
question
java android
Android 12 以降でアプリから Wi-Fi 接続を制御したい


android10以降、ユーザーのプライバシーの観点から、通常のアプリがwifi設定を直接操作できなくなっています。([公式](https://developer.android.com/about/versions/10/privacy/changes?hl=ja#enable-
disable-wifi))

> Wi-Fi の有効化 / 無効化に関する制限 Android 10 以降をターゲットとするアプリは、Wi-Fiを有効または無効にすることはできません。  
>  WifiManager.setWifiEnabled() メソッドからは常に false が返されます。
>
> Wi-Fi の有効 / 無効を切り替えるようにユーザーに促す必要がある場合は、設定パネルを使用します。

そのため、設定パネルを表示させ、ユーザーが自発的にwifiをONにする必要があります。

例えば

[code]

    Intent panelIntent = new Intent(Android.Provider.Settings.Panel.ActionWifi);
    StartActivityForResult(panelIntent,1);
    
[/code]


CC BY-SA 4.0
2022-10-05T13:06:31.080
91461
2022-10-05T13:06:31.080
39410
91289
answer