java - 无法在 Android 中关闭 wifi
问题描述
我正在使用 espresso 在 android 中进行核心自动化。我必须在应用程序中测试一些离线功能,因为我需要关闭互联网连接。我正在使用wifiManager
但不工作。
我正在使用以下代码片段
Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);
还添加了以下权限AndroidTest/AndroidMenifest.xml
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
例外:
java.lang.SecurityException:WifiService:用户 10103 和当前进程都没有 android.permission.CHANGE_WIFI_STATE。在 android.os.Parcel.createException(Parcel.java:1942) 在 android.os.Parcel.readException(Parcel.java:1910) 在 android.net 的 android.os.Parcel.readException(Parcel.java:1860)。 wifi.IWifiManager$Stub$Proxy.setWifiEnabled(IWifiManager.java:1323) 在 android.net.wifi.WifiManager.setWifiEnabled(WifiManager.java:1804)
还尝试在使用 adb 关闭 wifi 之前允许许可,但根本没有成功
getInstrumentation().getUiAutomation().executeShellCommand(
"pm grant " + getInstrumentation().getTargetContext().getPackageName()
+ " android.permission.ACCESS_WIFI_STATE");
getInstrumentation().getUiAutomation().executeShellCommand(
"pm grant " + getInstrumentation().getTargetContext().getPackageName()
+ " android.permission.CHANGE_WIFI_STATE");
任何帮助将不胜感激。
解决方案
推荐阅读
- android - 如何设置渲染OpenGL ES Android的频率
- c# - 在 asp.net core 2.1 中生成不适用于 xml 的数据注释
- c# - 如何让我的 C# 客户端应用程序接受我的 NodeJS 服务器证书
- css - -webkit- 在 -webkit-transition 中是什么意思?
- winforms - 使用带状网格进行分组
- typescript - 如何强制对象包含所有枚举值作为属性键?
- java - 如何将音频文件(mp3 或 WAV)从应用程序发送到服务器?
- javascript - 使用 Ping/Pong 检测半开 websocket 问题
- c++ - 用 QProcess 包装 SFTP
- javascript - PCI 对 google js 的脚本 Src 完整性检查失败