aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Fong <k2fong@hotmail.com>2019-06-24 12:56:40 -0700
committerPeter Fong <k2fong@hotmail.com>2019-06-24 12:56:40 -0700
commit5243a3cb610bf9bc713802d9098feb1c82cf5cdf (patch)
treea64db23d51cae7bdc4d7117786742853fdf0cd76
parentb05854810a19da0b698b1c9fa6a9531acdcb8ffb (diff)
downloadmobly-bundled-snippets-5243a3cb610bf9bc713802d9098feb1c82cf5cdf.tar.gz
Cleanup UiAutomator connection so it won't block other from using since UiAutomator only support a single connection at a time.
-rw-r--r--src/main/java/com/google/android/mobly/snippet/bundled/WifiManagerSnippet.java15
1 files changed, 12 insertions, 3 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 3c46708..55c7a20 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
@@ -63,9 +63,18 @@ public class WifiManagerSnippet implements Snippet {
(WifiManager)
mContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if (Build.VERSION.SDK_INT >= 29) {
- InstrumentationRegistry.getInstrumentation()
- .getUiAutomation()
- .adoptShellPermissionIdentity();
+ 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);
+ }
}
}