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刷新数据与连接动画冲突问题的解决方案相关推荐

  1. Android Wifi 扫描及自动连接

    Android Wifi 扫描及自动连接 缘起 拆解需求 核心API 权限 核心代码 完整Demo 缘起 最近有个需求,要求App能够自动扫描到某个热点然后自动连接上热点.背景是我们公司属于IoT行业 ...

  2. Android wifi列表扫描 密码连接 多个wifi切换登录 广播状态等都在这里

    Wi-Fi 前言 需求 实现 扫描wifi列表 wifi广播 wifi连接登录 总结 前言 app里有个需求就是在应用内部开发一个wifi设置的功能,避免用户跳到手机wifi设置界面操作,之前没开发过 ...

  3. Android Wifi自动打开并连接

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 转自:http://blog.csdn.net/yangwen123/article/details/9996 ...

  4. Android 10.0横屏旋转开机动画显示不全的解决方案

    1.概述 在10.0的产品进行平板设备开发中,需要横屏显示,所以需要把屏幕方向旋转90,作为横屏显示,但是这样可能会引起一个问题 就是开机动画显示不全,就是虽然画面是横屏显示了 但是只能显示一部分显示 ...

  5. Android 9.0横屏旋转开机动画显示不全的解决方案

    1.前言 在9.0的系统产品rom开发中,在进行平板设备开发中,需要横屏显示,所以需要把屏幕方向旋转90,作为横屏显示,但是这样可能会引起一个问题 就是开机动画显示不全,就是虽然画面是横屏显示了 但是 ...

  6. android 自定义wifi设置在哪里,Android Wifi的设置、连接操作

    但是,参考了这段代码之后可没少忙活!怎么试都连不上,wifi的信息是创建了,可就是没法连接上.百思不得其解,后来我想,会不会是设置的地方出了问题. 原来是这样设置的: config.preShared ...

  7. Android:适配器刷新数据无效

    在使用listview,gridview,recyclerview,当数据发生改变,需要及时更新适配器,调用适配器的setDataChanged方法,但是有时会出现这种更新方式无效的情况,原因是我们在 ...

  8. android检测手机网络连接不上,Android WIFI及手机网络连接情况检查

    手机开发时会涉及到一些需要网络或wifi的操作,有时需要了解情况在进行下一步的操作,如没有网络则用本地缓存,没有wifi则不进行大流量操作(更新APP等). 这里我就说一下我在开发时用到的相关代码. ...

  9. android listview 刷新数据,ListView中notifyDataSetChanged()刷新数据不更新原因分析

    标题 : 不作死就不会死!!!!!! 类 : ActivityA,ActivityB,BookListAdapter,Book,HttpManager 测试顺序 : ActivityA >> ...

最新文章

  1. python没有英文基础能学吗-学python需要英语基础吗
  2. 远程过程调用失败_Dubbo 本地调用
  3. 方立勋_30天掌握JavaWeb_JDBC、SQL防注入(一)
  4. SCUT - 254 - 欧洲爆破 - 概率dp - 状压dp
  5. 东大OJ-1391-Big big Power
  6. PyOpenCV 实战:借助视觉识别技术实现围棋终局的胜负判定
  7. 远程调用——hessian使用入门
  8. 互联网分层架构的本质
  9. Auto.js 读写txt文件
  10. Oracle项目管理系统之质量保证体系
  11. OpenGL及GLUT---------------函数整理
  12. android l usb调试,你居然还不会手机usb调试?5个方法,让你轻松学会设置!
  13. Android 自定义锁屏_分享一款MIUI10精致主题,多种时间样式可选,可自定义字体颜色...
  14. Python调用腾讯优图OCR通用API实现文字识别
  15. Elasticsearch应用案例1:百度
  16. 定制一个erp系统多少钱-【揭秘erp开发报价及开发步骤】
  17. python画三维(3D)图
  18. Merriam-Webster's Vocabulary Builder 学习笔记 Unit 6
  19. 王国维《人间词话》治学经验三境界
  20. 集训队作业2018: 青春猪头少年不会梦到兔女郎学姐(多限制容斥)(生成函数)(组合数学)

热门文章

  1. linux 内核驱动 调试,QDMA Linux 内核驱动使用和调试指南
  2. java 自學_JAVA自學之路 ——尚學堂科技馬士兵
  3. 2019湖南多校第4场(codeforces gym 101158)部分题解
  4. Nginx搭建并且访问图片
  5. 更新wpscan_解决新版wpscan无法更新数据库问题
  6. vant-weapp
  7. 求2个正整数的最大公约数 4种解法
  8. OpenAI ChatGPT API + FaskAPI SSE Stream 流式周转技术 以及前端Fetch 流式请求获取案例
  9. python 公司案例_python案例1
  10. html语言中mouse over,javascript中mouseover、mouseout使用详解_javascript技巧-js教程