欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

设置Android设备WIFI在休眠时永不断开的代码实现

程序员文章站 2023-02-02 12:16:44
mainactivity如下: package cc.ab; import android.os.bundle; import android.provi...

mainactivity如下:

package cc.ab;

import android.os.bundle;
import android.provider.settings;
import android.app.activity;
/**
 * demo描述:
 * 设置设备在睡眠期间始终保持wlan开启.
 * 
 * 参考资料:
 * 1 http://*.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 权限<uses-permission android:name="android.permission.write_settings"/>
 * 
 * 3 在实际项目中,这么强制性地设置wifi在休眠时永不断开有些粗鲁了.
 *  可以先记录下wifi原本的策略,待我们的逻辑完成后再还原回去为好.
 */
public class mainactivity extends activity {

 @override
 protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.main);
  setwifineversleep();
 }

 private void setwifineversleep(){
  int wifisleeppolicy=0;
  wifisleeppolicy=settings.system.getint(getcontentresolver(),
                    android.provider.settings.system.wifi_sleep_policy,
                    settings.system.wifi_sleep_policy_default);
  system.out.println("---> 修改前的wifi休眠策略值 wifi_sleep_policy="+wifisleeppolicy);
  
  
  settings.system.putint(getcontentresolver(),
            android.provider.settings.system.wifi_sleep_policy,
            settings.system.wifi_sleep_policy_never);
  
  
  wifisleeppolicy=settings.system.getint(getcontentresolver(),
        android.provider.settings.system.wifi_sleep_policy,
        settings.system.wifi_sleep_policy_default);
    system.out.println("---> 修改后的wifi休眠策略值 wifi_sleep_policy="+wifisleeppolicy);
 }
 
}
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 >

 <textview
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/hello_world" />

</relativelayout>

代码如上,不过在实际项目中,这么强制性地设置wifi在休眠时永不断开有些粗鲁了.
可以先记录下wifi原本的策略,待我们的逻辑完成后再还原回去为好.