注:
這是一個取巧的方式,有的手機上頁面裏明明有這個app,但是通過UiSelector.text()就是打不開,但是用手劃拉一下屏幕就好使了,初步判斷是沒獲取到焦點啥的。然後就想出了這個方法,解決部分手機根據App名字打不開App問題。先通過包名打開app再關閉App,這樣屏幕就能獲取焦點了,就可以順利打開了。
正文階段:
//需要一個Instrumentation對象
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
//Uidevice對象用來關閉App的
UiDevice device = UiDevice.getInstance(instrumentation);
//上下文
Context context = instrumentation.getContext();
//獲取你的包名
Intent intent = context.getPackageManager().getLaunchIntentForPackage("App包名");
//intent設置一個flags
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
//上下文啓動App
context.startActivity(intent);
啓動app完事,下面是關閉App:
//用剛纔的Device對象關閉即可,會拋出異常,包裹一下就行了
try { device.executeShellCommand("am force-stop com.ophone.reader.ui"); } catch (IOException e) { e.printStackTrace(); }