android wifi刷新数据与连接动画冲突问题的解决方案
android 原生的WIFI连接模块很复杂。
一,应用开发者面临最难的问题之一就是密码错误或者连接失败(
ERROR_AUTHENTICATING/FAILED)的系统广播在应用层基本上是接收不到的。
1,与之相关的系统广播是下面两个,一个是上报连接之后的额外信息,一个是众所周知的WIFI连接状态改变,
它们的枚举取值分别如下:
WifiManager.SUPPLICANT_STATE_CHANGED_ACTION
public static enum DetailedState {AUTHENTICATING,BLOCKED,CAPTIVE_PORTAL_CHECK,CONNECTED,CONNECTING,DISCONNECTED,DISCONNECTING,FAILED,IDLE,OBTAINING_IPADDR,SCANNING,SUSPENDED,VERIFYING_POOR_LINK;private DetailedState() {} }
WifiManager.NETWORK_STATE_CHANGED_ACTION
public static enum State { CONNECTED, CONNECTING, DISCONNECTED, DISCONNECTING, SUSPENDED, UNKNOWN; private State() { }}
2,密码连接失败的判断需要下列代码:
int linkWifiResult = intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, 123);
SupplicantState supplicantState = (SupplicantState) intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE);
NetworkInfo.DetailedState state = WifiInfo.getDetailedStateOf(supplicantState); handleWifiStateChanged(state); if (linkWifiResult == WifiManager.ERROR_AUTHENTICATING) {//此代码是系统提供的密码错误的消息广播 }
3,那么该怎样解决这个问题呢?
经测试,密码正常时网络热点的连接需要的时长大约是 5s-20s之间,于是就可以依赖于超时来做上述问题的解决方案。
当然手机厂商一般会在ROM层面做更详备更富有层次性的处理。
二,随后又碰到了android属性动画与利用handler消息wifi刷新数据的冲突问题。
此问题困扰了一天,最终分析定位到最核心的问题所在之后(定位问题的细节,是这样的:
当触发连接之后,显示连接动画,如果此时屏蔽掉系统WIFI消息的处理,则动画能流畅进行。),
最后采取了显示动画过程中,屏蔽掉系统WIFI消息的处理;动画消失时,再刷新界面。
android wifi刷新数据与连接动画冲突问题的解决方案相关推荐
- Android Wifi 扫描及自动连接
Android Wifi 扫描及自动连接 缘起 拆解需求 核心API 权限 核心代码 完整Demo 缘起 最近有个需求,要求App能够自动扫描到某个热点然后自动连接上热点.背景是我们公司属于IoT行业 ...
- Android wifi列表扫描 密码连接 多个wifi切换登录 广播状态等都在这里
Wi-Fi 前言 需求 实现 扫描wifi列表 wifi广播 wifi连接登录 总结 前言 app里有个需求就是在应用内部开发一个wifi设置的功能,避免用户跳到手机wifi设置界面操作,之前没开发过 ...
- Android Wifi自动打开并连接
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 转自:http://blog.csdn.net/yangwen123/article/details/9996 ...
- Android 10.0横屏旋转开机动画显示不全的解决方案
1.概述 在10.0的产品进行平板设备开发中,需要横屏显示,所以需要把屏幕方向旋转90,作为横屏显示,但是这样可能会引起一个问题 就是开机动画显示不全,就是虽然画面是横屏显示了 但是只能显示一部分显示 ...
- Android 9.0横屏旋转开机动画显示不全的解决方案
1.前言 在9.0的系统产品rom开发中,在进行平板设备开发中,需要横屏显示,所以需要把屏幕方向旋转90,作为横屏显示,但是这样可能会引起一个问题 就是开机动画显示不全,就是虽然画面是横屏显示了 但是 ...
- android 自定义wifi设置在哪里,Android Wifi的设置、连接操作
但是,参考了这段代码之后可没少忙活!怎么试都连不上,wifi的信息是创建了,可就是没法连接上.百思不得其解,后来我想,会不会是设置的地方出了问题. 原来是这样设置的: config.preShared ...
- Android:适配器刷新数据无效
在使用listview,gridview,recyclerview,当数据发生改变,需要及时更新适配器,调用适配器的setDataChanged方法,但是有时会出现这种更新方式无效的情况,原因是我们在 ...
- android检测手机网络连接不上,Android WIFI及手机网络连接情况检查
手机开发时会涉及到一些需要网络或wifi的操作,有时需要了解情况在进行下一步的操作,如没有网络则用本地缓存,没有wifi则不进行大流量操作(更新APP等). 这里我就说一下我在开发时用到的相关代码. ...
- android listview 刷新数据,ListView中notifyDataSetChanged()刷新数据不更新原因分析
标题 : 不作死就不会死!!!!!! 类 : ActivityA,ActivityB,BookListAdapter,Book,HttpManager 测试顺序 : ActivityA >> ...
最新文章
- python没有英文基础能学吗-学python需要英语基础吗
- 远程过程调用失败_Dubbo 本地调用
- 方立勋_30天掌握JavaWeb_JDBC、SQL防注入(一)
- SCUT - 254 - 欧洲爆破 - 概率dp - 状压dp
- 东大OJ-1391-Big big Power
- PyOpenCV 实战:借助视觉识别技术实现围棋终局的胜负判定
- 远程调用——hessian使用入门
- 互联网分层架构的本质
- Auto.js 读写txt文件
- Oracle项目管理系统之质量保证体系
- OpenGL及GLUT---------------函数整理
- android l usb调试,你居然还不会手机usb调试?5个方法,让你轻松学会设置!
- Android 自定义锁屏_分享一款MIUI10精致主题,多种时间样式可选,可自定义字体颜色...
- Python调用腾讯优图OCR通用API实现文字识别
- Elasticsearch应用案例1:百度
- 定制一个erp系统多少钱-【揭秘erp开发报价及开发步骤】
- python画三维(3D)图
- Merriam-Webster's Vocabulary Builder 学习笔记 Unit 6
- 王国维《人间词话》治学经验三境界
- 集训队作业2018: 青春猪头少年不会梦到兔女郎学姐(多限制容斥)(生成函数)(组合数学)
热门文章
- linux 内核驱动 调试,QDMA Linux 内核驱动使用和调试指南
- java 自學_JAVA自學之路 ——尚學堂科技馬士兵
- 2019湖南多校第4场(codeforces gym 101158)部分题解
- Nginx搭建并且访问图片
- 更新wpscan_解决新版wpscan无法更新数据库问题
- vant-weapp
- 求2个正整数的最大公约数 4种解法
- OpenAI ChatGPT API + FaskAPI SSE Stream 流式周转技术 以及前端Fetch 流式请求获取案例
- python 公司案例_python案例1
- html语言中mouse over,javascript中mouseover、mouseout使用详解_javascript技巧-js教程