Wifi切换Android代码中出现错误
当我按下wifi切换按钮,应用程序停止工作时,我收到了这个错误。它提到用户没有访问wifi状态的权限。问题是它已经在清单文件中声明了 使用的权限:Wifi切换Android代码中出现错误,android,android-wifi,Android,Android Wifi,当我按下wifi切换按钮,应用程序停止工作时,我收到了这个错误。它提到用户没有访问wifi状态的权限。问题是它已经在清单文件中声明了 使用的权限: 错误 致命异常:主 进程:com.example.something.callblocker,PID:935 java.lang.SecurityException:WifiService:用户10052和当前进程都没有android.permission.ACCESS\u WIFI\u状态。 位于android.os.Parcel.readEx
错误
致命异常:主
进程:com.example.something.callblocker,PID:935
java.lang.SecurityException:WifiService:用户10052和当前进程都没有android.permission.ACCESS\u WIFI\u状态。
位于android.os.Parcel.readException(Parcel.java:1472)
位于android.os.Parcel.readException(Parcel.java:1426)
位于android.net.wifi.IWifiManager$Stub$Proxy.getWifiEnabledState(IWifiManager.java:808)
位于android.net.wifi.WifiManager.getWifiState(WifiManager.java:1029)
位于android.net.wifi.WifiManager.isWifiEnabled(WifiManager.java:1041)
在com.example.stamatis.callblocker.powersavings$2.onClick(powersavings.java:55)上
在android.view.view.performClick上(view.java:4438)
在android.widget.CompoundButton.performClick(CompoundButton.java:100)中
在android.view.view$PerformClick.run(view.java:18422)
位于android.os.Handler.handleCallback(Handler.java:733)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5001)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
在dalvik.system.NativeStart.main(本机方法)如果发生这种情况,并且您说android.permission.ACCESS\u WIFI\u声明这已经存在于清单中,那么用户只有一种可能明确停止了此权限 检查此故障是否在棉花糖中,即API 23。谷歌已经为用户提供了明确删除app权限的权力 你可以阅读: 唯一的解决方案是在执行切换之前在运行时检查权限。 这就是你可以做到的:
private boolean checkWriteExternalPermission()
{
String permission = "android.permission.ACCESS_WIFI_STATE";
int res = getContext().checkCallingOrSelfPermission(permission);
return (res == PackageManager.PERMISSION_GRANTED);
}
我对getContext()有一个问题。它说方法无法解决。我该如何解决这个问题。(抱歉,如果这个问题太愚蠢,我还是一个初学者)我想我通过导入getContext解决了这个问题(如果正确的话)但是现在我在checkCallingOrSelfPermission上遇到了一个问题,它说getContext也有同样的问题,它是一个无法解决的方法?如果在活动中,则使用此或活动名称。this。如果在片段中,您可以使用getActivity()而不是getContext()
private boolean checkWriteExternalPermission()
{
String permission = "android.permission.ACCESS_WIFI_STATE";
int res = getContext().checkCallingOrSelfPermission(permission);
return (res == PackageManager.PERMISSION_GRANTED);
}