我正在构建一个Cordova应用程序,它需要在Android上访问WiFi,并禁用当前连接的网络,以防止从我要连接的网络中自动断开连接(因为没有互联网)。
问题是,当在Android 8.0+上测试时,我在adb logcat中得到了这个错误,我不知道需要做什么来修复这个错误:
E/WifiConfigManager: UID 10315 does not have permission to update configuration "Test SSID"WPA_PSK
E/WifiStateMachine: Failed to disable network这些是清单中所列的烫伤证:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
<uses-permission android:name="android.permission.INTERNET" />我在这篇文章中发现的OVERRIDE_WIFI_CONFIG烫发,但这似乎对我的具体情况没有帮助:更改Android热点设置
我在这个文件中发现了这个特定的错误:https://android.googlesource.com/platform/frameworks/opt/net/wifi/+/master/service/java/com/android/server/wifi/WifiConfigManager.java#984
这就是我在这里发现的canModifyNetwork:https://android.googlesource.com/platform/frameworks/opt/net/wifi/+/master/service/java/com/android/server/wifi/WifiConfigManager.java#651
谁更有经验的Android可以帮助我解决这个问题,需要做什么才能让我的应用程序禁用网络?
这是否意味着如果应用程序不是由应用程序创建的,则不允许应用程序禁用网络吗?请帮帮我,我不知道从这里往哪里走!
我也找到了这篇文章,其中引用了6.0,但这是真的吗,我们基本上完全被我们没有创建的禁用网络所封锁吗?如果已有另一个用于WifiConfiguration的WifiConfiguration,则Android6.0无法添加该WifiConfiguration
发布于 2018-02-01 16:18:45
我不能回答你的问题,但我可以回答这个问题。
这是否意味着如果应用程序没有创建网络,就不允许应用程序禁用网络?
这是正确的,正如文档 of the method disableNetwork:
禁用已配置的网络。指定的网络将不是进行关联的候选网络。这可能导致状态更改事件的异步传递。不允许应用程序禁用其他应用程序创建的网络。
因此,如果用户已经使用Android系统连接到这个网络,那么在奥利奥,您将无法禁用该网络。尽管disableNetwork方法在成功或失败的情况下返回true或false
https://stackoverflow.com/questions/48308038
复制相似问题