2015/07/08

Android SDK で Wi-Fi テザリングを有効にする方法

技術系エントリです。Android SDK を使って Wi-Fi テザリングを有効にするには、 WifiManager を使用します。


    WifiManager manager = (WifiManager) context.getSystemService(WIFI_SERVICE);

setWifiApEnabled は private method なので、リフレクションを使って呼び出します。


    Method method = manager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
    method.setAccessible(true);
    method.invoke(manager, null, true);

Wi-Fi テザリングが有効になったかどうかは isWifiApEnabled を使って調べますがこちらも private なのでリフレクションで。setAccessible は不要かもしれません。


    Method method = manager.getClass().getMethod("isWifiApEnabled");
    method.setAccessible(true);
    boolean enabled = (Boolean) method.invoke(manager);

Manifest にパーミッションが必要なのでお忘れなく。


    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

0 件のコメント:

コメントを投稿