wifiSetEnabled(true)偶尔不工作

时间:2015-10-22 13:12:21

标签: java android wifi android-wifi wifimanager

我正在制作我的第一个应用,所以我不是真正的专家。 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"/>

有什么想法吗?我再说一遍,我真的无人问津,感谢无论谁帮助我:)

1 个答案:

答案 0 :(得分:0)

我也有同样的问题。当我在关闭飞机模式的情况下运行相同的代码时,我解决了它。因此,如果您可以在启用Wi-Fi之前检查飞行模式是否已开启