首页 > 解决方案 > 无法在 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");

任何帮助将不胜感激。

标签: javaandroidautomationandroid-espressowifimanager

解决方案


推荐阅读