android 熄屏 socket断开,Android 休眠导致的问题Socket断开
开发过程中,发现手机锁屏/休眠会导致通信有问题。调试后发现是socket断开了,这是与wifi有关系,而wifi的问题又与手机休眠有关。
1.可以手动设置
设置——无线和网络——WLAN——高级设定——睡眠期间保持WLAN开启——总是
然而,并不是所以有手机都有这个设置,因为有些系统被开发商定制(阄割)了。
2.代码设置
publicvoidsetWifiDormancy(Context context){
intvalue = Settings.System.getInt(context.getContentResolver(), Settings.System.WIFI_SLEEP_POLICY, Settings.System.WIFI_SLEEP_POLICY_DEFAULT);
Log.d(TAG, "setWifiDormancy() returned: "+ value);
finalSharedPreferences prefs = context.getSharedPreferences("wifi_sleep_policy", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(ConfigManager.WIFI_SLEEP_POLICY, value);
editor.commit();
if(Settings.System.WIFI_SLEEP_POLICY_NEVER != value){
Settings.System.putInt(context.getContentResolver(), Settings.System.WIFI_SLEEP_POLICY, Settings.System.WIFI_SLEEP_POLICY_NEVER);
}
}
publicvoidrestoreWifiDormancy(Context context){
finalSharedPreferences prefs = context.getSharedPreferences("wifi_sleep_policy", Context.MODE_PRIVATE);
intdefaultPolicy = prefs.getInt(ConfigManager.WIFI_SLEEP_POLICY, Settings.System.WIFI_SLEEP_POLICY_DEFAULT);
Settings.System.putInt(context.getContentResolver(), Settings.System.WIFI_SLEEP_POLICY, defaultPolicy);
} 加权限:
ref:http://blog.csdn.net/mrlixirong/article/details/24938637
然而,对我的应用却无效 。上述文章作者最后使用service解决了“当采用Service时,网络连接就持续保持顺畅了。而且不管WIFI休眠政策设置如何,黑屏以后都可以保持联网”。下次有时间再验证这种方法。
3.在2的基础上,结合PowerManager使用。
PowerManagerpm= (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl=pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
..screen will stay on during this section..
wl.release();
因为app使用activity,故在oncreate中wl.acquire();,在ondestroy中wl.release(); 加权限:
android.permission.WAKE_LOCK
问题到此暂时解决。
ref:http://stackoverflow.com/questions/22025888/keeping-wifi-connection-on-when-android-mobile-sleeps
来自:http://blog.csdn.net/hhbgk/article/details/49997291
android 熄屏 socket断开,Android 休眠导致的问题Socket断开相关推荐
- android 熄屏 后台运行,Android进程保活/息屏后后台保持定位、网络运行
Android 设备在黑屏的分钟后可能会发生多种情况: 应用程序切后台后进程资源被系统回收,导致不能持续定位. 解决办法: 长连接定时唤醒cpu(解决黑屏定位.黑屏断网问题) 对于原生Android系 ...
- android横竖屏切换函数,Android横竖屏切换小结.PDF
Android横竖屏切换小结 Android横竖屏切换小结 Android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是 有时候也不尽然,通常在设置里面我们可以对手机的横竖屏切换 ...
- android 熄屏后socket,手机熄屏再唤醒后 websocket 的重连方法。
使用websocket长连接进行实时通信,在制作客服聊天或是必要的数据实时更新需求中是很好的选择,毕竟轮询大家都懂的 但是websocket服务端通常为了保证资源的有效利用,会加入心跳机制,当超过心跳 ...
- Android熄屏与亮屏控制
目前做一个项目,需要做到熄屏与亮屏,网上找了很多,都是利用PowerManager,但是需要系统权限,这个比较麻烦,后面找到一个,测试发现可行的方案,就是利用设备管理器DevicePolicyMana ...
- android锁屏软件开发,Android一键锁屏开发全过程
一.项目简介: 项目:<Android 一键锁屏> 开发周期:4天 代码量:100行 二.项目流程: 三.项目代码 1.主程序代码: 1.private DevicePolicyManag ...
- android横竖屏切换动画,Android应用怎么实现屏幕横竖屏切换功能
Android应用怎么实现屏幕横竖屏切换功能 发布时间:2020-11-26 15:48:57 来源:亿速云 阅读:121 作者:Leah Android应用怎么实现屏幕横竖屏切换功能?针对这个问题, ...
- android 竖屏资源文件,Android不同分辨率屏幕下自适应资源文件
1.不同的layout Android手机屏幕大小不一,有480x320,640x360,800x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在res目录下创建不同的layout ...
- 如何调用android录屏功能吗,Android录屏功能的实现
最近做一个Android开发的项目用到了录屏的功能,开始查阅了一些资料和博客,基本上都是在讨论ROOT的.直到后来在github上看到一个比较新的代码,才恍然发现,Android 5.0时候开放了一个 ...
- xamarin Android 截屏,xamarin开发android收集的一些工具
xamarin开发android收集的一些工具 工欲善其事,必先利其器,从16年下半年开始做xamarin相关的开发,平时使用的一些工具和google插件给大家分享一下,都有下载地址,持续更新. Vi ...
- android横竖屏切换方法,Android 4.0 横竖屏切换注意事项
==Android 2.3以前的横竖屏切换== 在Android 2.3平台上,我们可以需要设置界面的横竖屏显示时,可以在AndroidManifest.xml中,对Activity的属性添加以下代码 ...
最新文章
- 《机器学习实战》K邻近算法
- Python3中使用map()结果出错的解决方法
- zabbix服务器性能监控工具的安装一
- 牛顿插值多项式(python实现)
- 1.1 Java包装类、装箱和拆箱
- BootLoader引导程序制作及移植(一)
- 你有把依赖注入玩坏?
- broker可以禁用吗 time_Win8.1系统Runtime Broker是什么进程?可以禁用吗?
- Netbeans不能正常启动glassfish或者部署失败不能运行的问题
- Windows7下VS2008试用版到期的解决办法
- python lxml使用_使用lxml和Python进行Web抓取的简介
- 18个有用的 .htaccess 文件使用技巧
- centos是什么系统_解决更换操作系统后的开机问题
- PSi-Population Stability Index (PSI)模型分稳定性评估指标
- [oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点
- python 异步爬取必应搜索结果
- strtok strtok_s strsep
- PCI - PCI概述
- 互联网大厂的黑话困局
- java replica set_kubernetes ReplicaSet的简单使用