我想编写一些UI测试,其中我的应用程序必须是Android默认应用程序设置中的默认应用程序。
应用程序中有一个首选项,它将启动“默认应用程序”屏幕,让我选择默认值,然后返回,然后将设置首选项。
另一种方法是重置所有应用程序默认设置,启动带有链接的意图,然后从应用程序选择器中选择我的应用程序作为默认设置。

有什么办法可以使用kotlin和espresso以编程方式执行此操作吗?
我已经阅读并尝试了意式浓缩咖啡,但这只会让我启动“默认应用”屏幕,而不是在其中选择所需的内容。浓缩咖啡不能与外部活动互动。

我没有要共享的任何代码示例,甚至没有什么可以工作的。

最佳答案

该应用程序具有将其设置为默认值的开关,这会触发“默认应用程序”屏幕(在库存的Android OS上,而不是自定义的),因此方法如下所示:
'''

private fun setDefaultBrowserToggle() = onView(withId(R.id.switch_widget))
private fun defaultBrowserAppList() = mDevice.findObject((UiSelector().text("Browser app")))
private fun myAppOption() = mDevice.findObject(UiSelector().text("<App Name>"))

   fun selectDefaultBrowser(){
        setDefaultBrowserToggle().click()
        mDevice.waitNotNull(
            Until.findObject(By.text("Browser app")),
            TestAssetHelper.waitingTime
        )
        defaultBrowserAppList().click()
        myAppOption().click()
        mDevice.pressBack()
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            mDevice.pressBack() //needs an extra back press on Android O or higher, to return to the app
        }
    }


'''

07-28 03:43
查看更多