[JAVA,Android]Wifiテザリングを制御する方法

ワンタップでWifiテザリングの切り替えをしたい

とあるところから、「ワンタップでWifiテザリングを切り替えしたい」という要望がありました。
調べてみると、そのような機能の無償アプリはたくさんダウンロードできそうです。
しかし今回「テザリングのOn/Offによって自動的にAPNも切り替えたい」という無茶な要望がありましたので、アプリを作成する事になりました。
ちなみに動作環境は、Android7.0です。

サンプルソース

それほどむつかしい事は無いので、説明は割愛させて頂きます。(笑)
以下のコードを参照して組み込めば、動作すると思います。


WifiManager wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
Method method = null;
try {
  method = wifi.getClass().getMethod(“setWifiApEnabled”, WifiConfiguration.class, boolean.class);
} catch (NoSuchMethodException e) {
  e.printStackTrace();
}

//この部分にOn/Offの条件を入れる
Sw_Tether = true;またはSw_Tether = false;

try {
  method.invoke(wifi, null, Sw_Tether);
} catch (IllegalAccessException e) {
  e.printStackTrace();
} catch (InvocationTargetException e) {
  e.printStackTrace();
}

最後に・・・

以下のパーミッションは必須だと思いますので、お忘れなく・・・

<uses-permission android:name=”android.permission.CHANGE_WIFI_STATE”/>
<uses-permission android:name=”android.permission.WRITE_SETTINGS”/> 

日々のITエンジニアの日常作業を発信しています。
また、様々なレビュー記事も書いていますので、ぜひご活用ください。

基本的に投稿は毎週月曜日の午前です。
2025年2月中旬より手術の為に入院をしていましたが、ようやくブログ投稿の復帰ができそうです。
4月中旬~下旬には再開予定です。

では今週も頑張っていきましょう!
ガンバー!!

AndroidJAVA

コメント