Android 沉浸式模式确认加浓咖啡2.2.2
看起来谷歌云测试服务器上的一些虚拟设备无法正确执行测试,因为沉浸式模式确认弹出窗口(如图所示:)-有没有办法用浓缩咖啡自动关闭该弹出窗口?基本上,我的代码可以在本地模拟器中工作,但不能在谷歌云服务器上工作。 这就是失败之处:Android 沉浸式模式确认加浓咖啡2.2.2,android,junit4,android-espresso,android-junit,Android,Junit4,Android Espresso,Android Junit,看起来谷歌云测试服务器上的一些虚拟设备无法正确执行测试,因为沉浸式模式确认弹出窗口(如图所示:)-有没有办法用浓缩咖啡自动关闭该弹出窗口?基本上,我的代码可以在本地模拟器中工作,但不能在谷歌云服务器上工作。 这就是失败之处: View v = activity.getWindow().getDecorView(); v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_
View v = activity.getWindow().getDecorView();
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
您可以在模拟器启动后立即运行以下ADB命令:
adb shell settings put secure immersive_mode_confirmations your.package.com
adb reboot (required)
沉浸式模式确认是一个逗号分隔的包列表,不再需要沉浸式模式确认我找到了一个有效的解决方案。这与Paul的答案类似,但通过在测试运行之前以编程方式设置权限,而不是使用ADB。 有一个LinkedIn开源库,它可以为您做任何事情,从获得WRITE_SECURE_SETTINGS权限到动态更改沉浸式确认对话框的需要。 设置库后,在测试开始前使用以下行:
TestButler.setImmersiveModeConfirmation(false);
有关更多详细信息和安装说明,请参见。我已使用类似版本的@paul-t解决了此问题。启动仿真器后,运行下一个命令:
adb shell settings put secure immersive_mode_confirmations confirmed
之后,您可以执行您的浓缩咖啡测试
灵感:不幸的是,这个命令不起作用:(这个对话框真的很烦人。如果你有一个根设备,我相信这可能会起作用。