diff options
author | Parménides GV <parmegv@sdf.org> | 2014-01-29 17:09:12 +0100 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2014-01-29 17:09:12 +0100 |
commit | 00dedc1f763093eb22bec0ff15c9fbdb7ca88d65 (patch) | |
tree | 4bc693874873dbc9dddc68f8e4b87dc73edf01e2 /tests/src/se/leap/bitmaskclient/test/ConnectionManager.java | |
parent | 8d1b47a498df5d0f4e4e619f8373aaa1ad4dcd90 (diff) |
New method to set on/off data connection.
Used in tests, but it's going to be used in the near future when
blocking data connections until EIP is on.
Diffstat (limited to 'tests/src/se/leap/bitmaskclient/test/ConnectionManager.java')
-rw-r--r-- | tests/src/se/leap/bitmaskclient/test/ConnectionManager.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/src/se/leap/bitmaskclient/test/ConnectionManager.java b/tests/src/se/leap/bitmaskclient/test/ConnectionManager.java new file mode 100644 index 00000000..8722bb13 --- /dev/null +++ b/tests/src/se/leap/bitmaskclient/test/ConnectionManager.java @@ -0,0 +1,36 @@ +package se.leap.bitmaskclient.test; + +import android.content.Context; +import android.net.ConnectivityManager; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import android.util.Log; + +public class ConnectionManager { + static void setMobileDataEnabled(boolean enabled, Context context) { + final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + try { + final Class conmanClass = Class.forName(conman.getClass().getName()); + final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService"); + iConnectivityManagerField.setAccessible(true); + final Object iConnectivityManager = iConnectivityManagerField.get(conman); + final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName()); + final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE); + setMobileDataEnabledMethod.setAccessible(true); + + setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled); + Log.d("testDashboard", "setMobileDataEnabled(" + enabled + ");"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } + } +} |