aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorPeter Fong <k2fong@hotmail.com>2019-06-27 09:49:42 -0700
committerPeter Fong <k2fong@hotmail.com>2019-06-27 09:49:42 -0700
commite62de2e63ff6ff41cb1f36ca84e4fba03626f3bd (patch)
tree6f14c0ed1e3f705c97f2dc5bd681d18dc3d8d89d /src/main/java
parent9da2670f6df85bce85ea0e3e4fa4de5a594d4966 (diff)
downloadmobly-bundled-snippets-e62de2e63ff6ff41cb1f36ca84e4fba03626f3bd.tar.gz
Renamed and embedded sdk check in method
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java41
1 files changed, 21 insertions, 20 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 442db0a..3ad85a2 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
@@ -69,13 +69,7 @@ public class WifiManagerSnippet implements Snippet {
mWifiManager =
(WifiManager)
mContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
-
- // 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
- if (mContext.getApplicationContext().getApplicationInfo().targetSdkVersion >= 29) {
- adoptShellPermissionIdentity();
- }
+ elevatePermissionIfRequired();
}
@Rpc(
@@ -399,22 +393,29 @@ public class WifiManagerSnippet implements Snippet {
public void shutdown() {}
/**
- * Elevate permission by adopting shell's identity.
+ * Elevates permission as require for proper wifi controls.
*
* @throws Throwable
*/
- private void adoptShellPermissionIdentity() throws Throwable {
- 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 void elevatePermissionIfRequired() throws Throwable {
+ // 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
+ 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);
+ }
}
}