Android Data Analyse(2)--ConnectivityService
来源:互联网 发布:部落冲突买号淘宝 编辑:程序博客网 时间:2024/06/18 03:11
Android Data Analyse(2)–ConnectivityService
ConnectivityService 是整个Connectivity的核心部分,对ConnectivityManager的实现,实现了IConnectivityManager接口。 提供数据连接管理服务,负责管理Mobile,WIFI,BT,Ethernet几大类网络连接,同时提供VPN和Tethering服务。
代码基本介绍
调用方法:
mConnectivityService = (ConnectivityService) ServiceManager.getService(Context.CONNECTIVITY_SERVICE);
构造函数解释:
1.赋予一些default值,比如mDefaultRequest,mDefaultMobileDataRequest
2.创建NetworkFactory
3.创建Tethering和Vpn
4.创建Proxy监听
5.创建默认的优先连接方式
主要作用:
1.监视网络连接状态,从中获取网络信息
ex: getAllVpnInfo
2.当网络状态改变时发送广播通知
ex:notifyIfacesChangedForNetworkStats
3.当网络连接失败尝试连接其他网络
4.提供API让应用程序获取可用的网络状态
ex:getAllNetworkInfo
5.通过Vpn对象查询更新VPN相关业务。
ex:establishVpn
6.更新网络状态
ex: updateLinkProperties
常用的接口:
系统代码运用代码
private final ConnectivityService mConnService; private final Context mContext; private final Handler mHandler; public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info, LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler, NetworkMisc misc, NetworkRequest defaultRequest, ConnectivityService connService) { this.messenger = messenger; asyncChannel = ac; network = net; networkInfo = info; linkProperties = lp; networkCapabilities = nc; currentScore = score; mConnService = connService; mContext = context; mHandler = handler; networkMonitor = mConnService.createNetworkMonitor(context, handler, this, defaultRequest); networkMisc = misc; }
对比ConnectivityManager,ConnectivityServiceg是更加的深层次的调用。ConnectivityService 可以看成是ConnectivityManager的实现。而ConnectivityManager 则开放一些接口给系统或三方去调用。ConnectivityService 是整个手机的网络通讯的中心枢纽,不仅仅是为Data服务.
- Android Data Analyse(2)--ConnectivityService
- Android Data Analyse(1)--ConnectivityManager
- Android Data Analyse(4)--NetworkCapabilities
- Android Data Analyse(4)--StateMachine
- Android Connectivity分析(2)- ConnectivityService
- Android Connectivity分析(2)- ConnectivityService
- Android Connectivity分析(2)- ConnectivityService
- Android Connectivity分析(2)- ConnectivityService
- Android Data Analyse(3)--APN & ApnSetting & ApnContext
- android adb adbd analyse
- android adb adbd analyse
- Android Adb Analyse
- 【转】Android Adb Analyse
- Android Adb Analyse
- Android Adb Analyse
- Android Adb Analyse
- Android Adb Analyse
- Howto Analyse android process
- 9月份英语总结
- Can't update: no tracked branch
- Python3.5——内置模块详解之shelve模块、xml模块、configparser模块、hashlib、hmac模块
- php/jsp/asp的区别
- 原生js实现计算器
- Android Data Analyse(2)--ConnectivityService
- 电影网站增删改查-5 spring boots/MVC/neo4j/thymeleaf 源码分析 查询电影分页
- 硬盘监控和分析工具:Smartctl
- STM32 DHT11温湿度测试应用
- iOS11 适配之导航栏、tableView、searchBar遇到的bug
- flume之自定义sink组件
- Android在WebView中注入Js代码
- 玩转markdown,你需要用到这几个工具
- 2017年9月29日/c++primer啃书记/顶层const