summaryrefslogtreecommitdiff
path: root/tests/src/se/leap/bitmaskclient/test/ConnectionManager.java
diff options
context:
space:
mode:
authorParménides GV <parmegv@sdf.org>2014-01-29 17:09:12 +0100
committerParménides GV <parmegv@sdf.org>2014-01-29 17:09:12 +0100
commit00dedc1f763093eb22bec0ff15c9fbdb7ca88d65 (patch)
tree4bc693874873dbc9dddc68f8e4b87dc73edf01e2 /tests/src/se/leap/bitmaskclient/test/ConnectionManager.java
parent8d1b47a498df5d0f4e4e619f8373aaa1ad4dcd90 (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.java36
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();
+ }
+ }
+}