android休眠wifi不关闭吗,Android之WIFI在休眠时不断开的代码实现

现在许多人都使用手机,您可以在系统设置的WiFi高级选项中将连接设置为睡眠,其实开发人员很容易做到,但是对于用户来说,他们通常不知道怎么设置,下面爱站技术频道小编和大家介绍Android之WIFI在休眠时不断开的代码实现。

MainActivity如下:

package cc.ab;

import android.os.Bundle;

import android.provider.Settings;

import android.app.Activity;

/**

* Demo描述:

* 设置设备在睡眠期间始终保持WLAN开启.

*

* 参考资料:

* 1 http://stackoverflow.com/questions/8652031/how-to-modify-wi-fi-sleep-policy-programmatically/8655070#8655070

* 2 http://blog.csdn.net/mrlixirong/article/details/24938637

* Thank you very much

*

* 注意事项:

* 1 这里使用的是android.provider.Settings.System.WIFI_SLEEP_POLICY

* 而不是Settings.System.WIFI_SLEEP_POLICY!!!!!!!!!!!!!!!!!!!!!!!

*

* 2 权限

*

* 3 在实际项目中,这么强制性地设置WIFI在休眠时永不断开有些粗鲁了.

* 可以先记录下WIFI原本的策略,待我们的逻辑完成后再还原回去为好.

*/

public class MainA

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Android设备在休眠状态下保持Wi-Fi连接,需要在应用程序中进行以下步骤: 1. 在应用程序清单文件中添加以下权限: ```xml <uses-permission android:name="android.permission.WAKE_LOCK" /> ``` 2. 使用WifiManager设置Wi-Fi连接: ```java WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = "your_ssid"; wifiConfig.preSharedKey = "your_password"; wifiManager.addNetwork(wifiConfig); wifiManager.enableNetwork(wifiConfig.networkId, true); wifiManager.reconnect(); ``` 3. 使用AlarmManager设置定期唤醒设备: ```java AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(context, WifiConnectReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent); ``` 4. 创建广播接收器,在设备唤醒检查Wi-Fi连接状态并重新连接: ```java public class WifiConnectReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); if (!wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(true); } WifiInfo wifiInfo = wifiManager.getConnectionInfo(); if (wifiInfo != null && wifiInfo.getNetworkId() != -1) { wifiManager.reassociate(); } } } ``` 需要注意的是,这段代码可以在任何位置调用,例如Activity或Service中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值