在执行检测测试期间切换Android设备网络 有没有人在仪器测试过程中运气好地切换设备网络?我发现一些过时的解决方案不再受支持

在执行检测测试期间切换Android设备网络 有没有人在仪器测试过程中运气好地切换设备网络?我发现一些过时的解决方案不再受支持,android,android-espresso,android-instrumentation,Android,Android Espresso,Android Instrumentation,我似乎找不到这个问题的最新答案。我相信这是许多应用程序的常见测试场景。提前谢谢 好的,下面是我提出的一个解决方案,用于在仪器化测试期间启用/禁用网络。感谢您参考UiAutomator Sandi fun clickAirplaneMode(instrumentation: Instrumentation, targetContext: Context) { UiDevice.getInstance(instrumentation).run { targetContext.

我似乎找不到这个问题的最新答案。我相信这是许多应用程序的常见测试场景。提前谢谢

好的,下面是我提出的一个解决方案,用于在仪器化测试期间启用/禁用网络。感谢您参考UiAutomator Sandi

fun clickAirplaneMode(instrumentation: Instrumentation, targetContext: Context) {
    UiDevice.getInstance(instrumentation).run {
        targetContext.packageManager.getLaunchIntentForPackage("com.android.settings")?.let {intent ->
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
            targetContext.startActivity(intent)
            findObject(UiSelector().textContains("Network")).clickAndWaitForNewWindow()
            findObject(UiSelector().textContains("Airplane")).click()
        }
    }
}

有趣。我认为您可以通过编程方式更改设备连接到的wifi SSID。但是,我不太熟悉如何在仪器测试期间做到这一点。感谢您的快速响应!嗯,我想知道我是否可以用这个选项做些什么。我来看看。您可以使用
UIAutomator
和构建测试,然后以这种方式切换飞行模式。相关阅读。这并不是最好的解决方案,但您通常可以控制运行测试的设备/模拟器。这看起来正是我需要的。我将尝试一下,并用我的发现更新此线程。谢谢