私のアプリの1つで、WiFiの状態を変更しています。このような:
wifiManager.setWifiEnabled(false);
マニフェストに次の権限があります。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
コードは私の電話と他のほとんどの電話で完全に機能しています。しかし、今日、私は次のエラーでクラッシュレポートを受け取りました:
Caused by: java.lang.SecurityException: NetworkManagementService: Neither user 10147 nor current process has android.permission.CHANGE_NETWORK_STATE.
スタックトレースは、このエラーがWiFi状態unsigを変更している回線が原因であることを示していますwifiManager.setWifiEnabled(false);
なぜこれが起こるのですか?ほとんどすべてのデバイスで問題なく動作するのはなぜですか?また、この特定のケースでクラッシュしたのはなぜですか?Androidのバージョンまたはデバイスに依存しますか?WiFiの状態を変更するためだけに、本当にandroid.permission.CHANGE_NETWORK_STATE
アクセス許可を追加する必要がありますか?