我正在尝试将我的应用程序targetSDK升级到23以上,但遇到了一个小问题。我有一个将流量绑定到Wifi的活动(测量路由器的网络速度,即使路由器未连接到internet)。为了实现这一点,我的应用程序需要
CHANGE_NETWORK_STATE
准许如果在清单中声明,通常会直接授予该权限。在Android 6.0上(确切地说,这是在6.0.1 IIRC中修复的)
更改\u NETWORK\u状态
已损坏,无法授予,因此您需要
WRITE_SETTINGS
而不是权限。我已经为Android 6.0用户实现了一种授予该权限的方法,但当我想用浓缩咖啡测试我的活动时,我无法这样做。权限是通过添加以下内容授予测试的
@Rule
public GrantPermissionRule runtimePermissionRule = GrantPermissionRule.grant(Manifest.permission.CHANGE_NETWORK_STATE);
到测试用例。在应用程序中的其他地方也可以使用
junit.framework.AssertionFailedError: Failed to grant permissions, see logcat for details
在我的测试结果中。在logcat中我找到
E/GrantPermissionCallable: Permission: android.permission.WRITE_SETTINGS cannot be granted!
或与相同
更改\u NETWORK\u状态
,我试着两者都同意,但都不起作用。在测试环境中是否有其他方式授予许可?或者,从现在起,我是否无法在6.0设备上测试此活动?