当前位置: 首页 > 编程笔记 >

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

湛钊
2023-03-14
本文向大家介绍设置Android设备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 权限<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原本的策略,待我们的逻辑完成后再还原回去为好.

 类似资料:
  • 问题内容: 我有一个Java实体,其字段带有注解@Formula,在其中执行了一个SQL查询,其中包含Firebird数据库的某些特定功能。现在,我必须迁移到Oracle数据库,并且需要替换该@Formula中的SQL代码。有办法实现吗?我可以通过某种方式扩展Hibernate @Formula以便在运行时更改注释的值吗?谢谢 问题答案: 您可以实现这种稍微不同的方式。 您可以放置一个占位符并添加

  • 本文向大家介绍Android 通过代码设置、打开wifi热点及热点连接的实现代码,包括了Android 通过代码设置、打开wifi热点及热点连接的实现代码的使用技巧和注意事项,需要的朋友参考一下 用过快牙的朋友应该知道它们在两天设备之间传输文件的时候使用的是wifi热点,然后另一台便连接这个热点再进行传输。快牙传输速度惊人应该跟它的这种机制有关系吧。不知道它的搜索机制是怎样的,但我想应该可以通过热

  • 问题内容: 我有一个部门实体,其关系如下: 许多部门 可以在 一个父部门中 : 一个上级部门 可以有 多个部门 : 我想实现下一个:当我 删除 一个 部门 ,那么 ik_parent_department_id 所有的参数 孩子 这个的 部门 设置为 空 。任何想法如何做到这一点? 问题答案: 您必须将子级的显式设置为null。 进行级联时,您只能删除子级。

  • 本文向大家介绍Android设置铃声实现代码,包括了Android设置铃声实现代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android设置铃声实现代码。分享给大家供大家参考。具体如下: 这里设置铃声关键的语句是: RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, new

  • 问题内容: 在hibernate映射中,我设置了属性,这将获取父级的所有子级记录。 整个应用程序都在使用它。 这在我的应用程序的特定模块上造成了性能问题,我只想在其中获取父记录。 由于无法在其他许多地方使用该属性,因此我无法将其更改为。有没有办法来解决这个问题? 请让我知道是否需要更多信息。 问题答案: 这些在hibernate状态并不具有这种功能,因为它尊重您的习惯。因此,我建议解决您的需求的方

  • 问题内容: 我正在将c3p0和hibernate 3用于程序,该程序不断从某些源中提取数据并将其写入数据库。现在的问题是,由于某些原因,数据库可能变得不可用(在最简单的情况下:我只是将其关闭)。 如果有什么要写入数据库,则不应有任何异常- 查询应等待所有永恒,直到数据库再次可用。如果我没记错的话,这就是连接池可以为我做的事情之一:如果数据库有问题,只需重试连接-在最坏的情况下,无限即可。 但是相反