[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”/> 

コメント