Fleckdalm
Fleckdalm

Reputation: 175

Toggle wifi tethering programmatically in Android 4.2

Is there any possibility to toggle wifi tethering in Android 4.2? I tried this but it seems that it doesn't work using Android 4.2!

Thanks in advance!

Edit: It DOES work I only forgot to set the right permission. Is there also a way to check if its already enabled so that I can use it as a toggle?

Upvotes: 1

Views: 2393

Answers (2)

AGDEV
AGDEV

Reputation: 82

You should be able to do it in Android 4.2 make sure you have the permission

android.permission.CHANGE_WIFI_STATE

and we cannot help you unless you post your code.

I believe this will help you check if tethering is active

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Method[] wmMethods = wifi.getClass().getDeclaredMethods();
for(Method method: wmMethods){
  if(method.getName().equals("isWifiApEnabled")) {

try {
  method.invoke(wifi);
} catch (IllegalArgumentException e) {
  e.printStackTrace();
} catch (IllegalAccessException e) {
  e.printStackTrace();
} catch (InvocationTargetException e) {
  e.printStackTrace();
    }
  }
}

Upvotes: 1

Fleckdalm
Fleckdalm

Reputation: 175

I got it to work as a toggle myself! Here is the code:

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

            Method[] methods = wifiManager.getClass().getDeclaredMethods();
            boolean enabled=false;
            for (Method method : methods) {
                if (method.getName().equals("isWifiApEnabled")) {
                    try {
                       enabled = (Boolean) method.invoke(wifiManager);
                    } catch (Exception ex) {
                    }
                    break;
                }
            }
            for (Method method : methods) {
                if (method.getName().equals("setWifiApEnabled")) {
                    try {
                        method.invoke(wifiManager, null, !enabled);
                    } catch (Exception ex) {
                    }
                    break;
                }
            }

Upvotes: 1

Related Questions