如何将我的应用程序设置为浓缩咖啡测试中的默认应用程序?

How to set my app as default in espresso tests?

我想编写一些 UI 测试,其中我的应用需要成为 Android 默认应用设置中的默认应用。 应用程序中有一个首选项将启动默认应用程序屏幕,让我选择默认值,然后 return 我将设置首选项。 另一种方法是重置所有应用程序默认值,使用 link 启动一个 Intent,然后从应用程序选择器中 select 我的应用程序,作为默认值。

有没有办法使用 kotlin 和 espresso 以编程方式执行此操作? 我已经阅读并尝试过 espresso-intents,但这只会让我启动默认应用程序屏幕,而不是 select 我需要的内容。 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
        }
    }

'''