diff options
author | Peter Fong <k2fong@hotmail.com> | 2019-06-24 12:56:40 -0700 |
---|---|---|
committer | Peter Fong <k2fong@hotmail.com> | 2019-06-24 12:56:40 -0700 |
commit | 5243a3cb610bf9bc713802d9098feb1c82cf5cdf (patch) | |
tree | a64db23d51cae7bdc4d7117786742853fdf0cd76 | |
parent | b05854810a19da0b698b1c9fa6a9531acdcb8ffb (diff) | |
download | mobly-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.java | 15 |
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); + } } } |