我正在制作我的第一个应用,所以我不是真正的专家。 BTW在我的应用程序中我创建了这个服务,它应该启用或禁用wi-fi根据我通过我用来启动的待处理意图传递给服务的布尔值(服务,我使用的是AlarmManager)去做这个)。
现在,在大多数情况下一切正常,但有时我的wifi无法打开,我确信服务已启动,因为它成功完成了它应该做的其他工作。我首先认为这是许可的错,但您可以在下面的清单中看到我正在使用的所有权限。
在StackOverflow中查看有人建议添加UPDATE_DEVICE_STATS权限,但我不认为这是解决方案,因为我已经说过:有时它可以工作。
重要提示:我注意到,当wifi关闭一段时间后,通常无法启用它,就像几个小时一样。
这是服务的片段:( TSManagerHelper是具有待定意图和值的类)
public int onStartCommand(Intent intent, int flags, int startId) {
boolean op2;
WifiManager wifiManager=(WifiManager)getSystemService(WIFI_SERVICE);
Bundle bundle;
if(intent!=null) {
bundle = intent.getExtras();
op2 = bundle.getBoolean(TSManagerHelper.OPTION2);
//WI-FI
if(op2 != wifiManager.isWifiEnabled()){
if(op2)
wifiManager.setWifiEnabled(true);
else
wifiManager.setWifiEnabled(false);
}
这是Manifest的权限:
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
有什么想法吗?我再说一遍,我真的无人问津,感谢无论谁帮助我:)
答案 0 :(得分:0)
我也有同样的问题。当我在关闭飞机模式的情况下运行相同的代码时,我解决了它。因此,如果您可以在启用Wi-Fi之前检查飞行模式是否已开启