经研究Android无线连接核心代码WifiManager.java,还是有所发现的。
核心代码如下:
而且系统API对于每个操作都有结果回调操作,监听接口为ActionListener,其主要代码如下:
ActionListener,包含两个回调函数onSuccess和onFailure。本次研究我们主要关心OnFailure的情况。在以下情况发生时都会触发onFailure的回调。
相关的reason有如下几种:
很遗憾,以上的监听接口同样为系统API级别的,而且所有的错误代码也是被隐藏的,我们无法调用。所以我们从源码角度来看看,是否有连接回调接口。
比如我们要新加一个网络步骤如下:
无线连接的状态以及结果反馈如下:
有两种状态监控级别,大众化的、细粒度的,分别如下:
接下来更精彩:
这个函数貌似我们可以得到连接失败的原因,不过这个有待尝试。
总结:
经本次研究得出,如果是非系统级别的应用程序,是不能定制传入回调接口的。非系统级别的应用程序只能收到连接过程及连接结果反馈,当然也可以通过NetworkInfo该类中的getReason方法,获取某种特殊状态的原因,但是这个有待尝试。或许我了解的还不够深入,如有异议请及时反馈,谢谢。
核心代码如下:
- connect(WifiConfiguration config, ActionListener listener)
- connect(int networkId, ActionListener listener
- save(WifiConfiguration config, ActionListener listener)
而且系统API对于每个操作都有结果回调操作,监听接口为ActionListener,其主要代码如下:
ActionListener,包含两个回调函数onSuccess和onFailure。本次研究我们主要关心OnFailure的情况。在以下情况发生时都会触发onFailure的回调。
相关的reason有如下几种:
很遗憾,以上的监听接口同样为系统API级别的,而且所有的错误代码也是被隐藏的,我们无法调用。所以我们从源码角度来看看,是否有连接回调接口。
比如我们要新加一个网络步骤如下:
- addNetwork(WifiConfiguration config),没有回调
- boolean enableNetwork(int netId, boolean attemptConnect),没有回调入口
- boolean saveConfiguration(),没有回调
- boolean reconnect(),没有回调
无线连接的状态以及结果反馈如下:
有两种状态监控级别,大众化的、细粒度的,分别如下:
- 大众化的
- 细粒度的
接下来更精彩:
这个函数貌似我们可以得到连接失败的原因,不过这个有待尝试。
总结:
经本次研究得出,如果是非系统级别的应用程序,是不能定制传入回调接口的。非系统级别的应用程序只能收到连接过程及连接结果反馈,当然也可以通过NetworkInfo该类中的getReason方法,获取某种特殊状态的原因,但是这个有待尝试。或许我了解的还不够深入,如有异议请及时反馈,谢谢。