aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java')
-rw-r--r--src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java37
1 files changed, 4 insertions, 33 deletions
diff --git a/src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java b/src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java
index 7e1a416..89a65d2 100644
--- a/src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java
+++ b/src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java
@@ -16,7 +16,6 @@
package com.google.android.mobly.snippet.bundled;
-import android.app.UiAutomation;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -44,6 +43,9 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.net.wifi.SupplicantState;
+
+import com.google.android.mobly.snippet.bundled.utils.Utils;
+
/** Snippet class exposing Android APIs in WifiManager. */
public class WifiManagerSnippet implements Snippet {
private static class WifiManagerSnippetException extends Exception {
@@ -52,10 +54,6 @@ public class WifiManagerSnippet implements Snippet {
public WifiManagerSnippetException(String msg) {
super(msg);
}
-
- public WifiManagerSnippetException(String msg, Throwable err) {
- super(msg, err);
- }
}
private static final int TIMEOUT_TOGGLE_STATE = 30;
@@ -69,7 +67,7 @@ public class WifiManagerSnippet implements Snippet {
mWifiManager =
(WifiManager)
mContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
- adaptShellPermissionIfRequired();
+ Utils.adaptShellPermissionIfRequired(mContext);
}
@Rpc(
@@ -403,33 +401,6 @@ public class WifiManagerSnippet implements Snippet {
@Override
public void shutdown() {}
- /**
- * Elevates permission as require for proper wifi controls.
- *
- * Starting in Android Q (29), additional restrictions are added for wifi operation. See
- * below Android Q privacy changes for additional details.
- * https://developer.android.com/preview/privacy/camera-connectivity
- *
- * @throws Throwable if failed to cleanup connection with UiAutomation
- */
- private void adaptShellPermissionIfRequired() throws Throwable {
- if (mContext.getApplicationContext().getApplicationInfo().targetSdkVersion >= 29
- && Build.VERSION.SDK_INT >= 29) {
- Log.d("Elevating permission require to enable support for wifi operation in Android Q+");
- UiAutomation uia = InstrumentationRegistry.getInstrumentation().getUiAutomation();
- uia.adoptShellPermissionIdentity();
- try {
- Class<?> cls = Class.forName("android.app.UiAutomation");
- Method destroyMethod = cls.getDeclaredMethod("destroy");
- destroyMethod.invoke(uia);
- } catch (NoSuchMethodException
- | IllegalAccessException
- | ClassNotFoundException
- | InvocationTargetException e) {
- throw new WifiManagerSnippetException("Failed to cleaup Ui Automation", e);
- }
- }
- }
private class WifiScanReceiver extends BroadcastReceiver {