![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android_Telephony
限量发行x
限量发行
展开
-
[Android6.0] 数据业务重试机制
Android 6.0 Framework telephony中数据业务链接错误处理一般分3种情况:1. SETUP_DATA_CALL 时返回错误2. Modem上报DATA_CALL_LIST包含错误码或者链接中断3. 一段时间内没有上下行数据(TX/RX)下面具体来看每种情况的处理。1. SETUP_DATA_CALL失败DataConnection在收到...转载 2018-07-29 15:25:13 · 1881 阅读 · 0 评论 -
Android Telephony分析(一) ---- Phone详解(Android 7.0)
1. Android N中Phone的改变Android 6.0时,Phone的继承关系:在Android N中,Phone的继承关系:变化1: GSMPhone和CDMAPhone合并成了GsmCdmaPhone,合并之后,某些方法当然需要对GSM Phone和CDMA Phone进行分别处理,举个例子: @Override public voi...转载 2017-09-14 16:32:25 · 1927 阅读 · 0 评论 -
Android APN
由于Android对于APN的网络API没有公开,不过我们可以阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭APN。大家可以研究一下frameworks/base/core/Java/android/provider/Telephony.java这个类,比较重要的就是 URI 和数据库字段:content://telephony/carrie...转载 2017-09-03 20:55:48 · 387 阅读 · 0 评论 -
Android6.0 APN
目的:为了访问网络,手机必须设置合适的APN参数。Android中的apn是配置在apns-conf.xml文件中,由手机开机时加载到TelephonyProvider中。然后供设置查看和编辑,供框架使用来进行数据拨号。本文旨在描述这APN加载、显示和编辑的过程。版本Android 6.0前言APN的英文全称是Access Point Name,中文全称叫接入点,是您在通...转载 2017-09-08 16:24:56 · 576 阅读 · 0 评论 -
Android 7.0 插卡后APN信息的加载流程、UI界面编辑APN的流程及Android中APN配置相关的漏洞
终端中有一个apns-config.xml文件,负责定义各个运营商规定的默认APN参数。开机后,终端启动Phone进程时,会加载运行在Phone进程中的TelephonyProvider。TelephonyProvider负责解析apns-config.xml文件,将其中定义的APN参数写入到数据库中。Android 7.0中这一部分的流程,与Android 6.0基本类似,可以...转载 2017-09-08 16:25:35 · 761 阅读 · 0 评论 -
Android7.0 PhoneApp的启动
前言最近准备写一写Android中数据业务相关的内容,考虑到数据业务是基于PhoneApp的,因此需要先来分析一下PhoneApp是如何启动的。版本Android 7.01 AndroidManifest.xml为了弄清楚PhoneApp如何启动,我们首先必须先看一下PhoneApp对应的AndroidManifest.xml,它的位置为package/services/...转载 2017-09-19 16:24:49 · 703 阅读 · 0 评论 -
Android Telephony分析(二) ---- RegistrantList详解
前言本文主要讲解RegistrantList的原理,以及如何快速分析RegistrantList相关的代码流程。在Telephony模块中,在RIL、Tracker(ServiceStateTracker、CallTracker、DcTracker)、Phone(PhoneBase及其子类)、UICC框架、CallManager等等中都大量使用到的RegistrantList,...转载 2017-09-20 09:47:47 · 475 阅读 · 0 评论 -
Android Telephony分析(三) ---- RILJ详解
前言本文主要讲解RILJ工作原理,以便更好地分析代码,分析业务的流程。这里说的RILJ指的是RIL.java (frameworks\opt\telephony\src\java\com\android\internal\telephony) ,RILC指的是Ril.cpp (hardware\ril\libril)1. RILJ的创建RILJ的继承关系如下:可以看到...转载 2017-09-20 16:41:21 · 678 阅读 · 0 评论 -
网络连接评分机制之NetworkMonitor
本节介绍一个比较特殊的流程,就是网络可用性对评分的影响。 该影响主要体现在,当一个网络连接建立时,系统将用该连接Ping一个Google的网站来判断该连接是否真的可以上网,如果不可以,那么就会扣掉该网络40分,从而可能导致该网络的评分低于其他网络评分,下面来看详细过程。一、NetworkMonitor来源 在前面《网络...转载 2017-12-21 22:00:22 · 1599 阅读 · 0 评论 -
Android 7.0 IMS框架详解
本文主要讲解IP Multimedia Subsystem (IMS)在Android 7.0上由谷歌Android实现的部分内容。从APP侧一直到Telephony Framework,是不区分CS流程还是PS流程的。到了Telephony Framework模块,会依据IMS相关的状态信息(Registration Status,Service Status等)和用户设置信息(Vol...转载 2020-01-01 00:35:32 · 630 阅读 · 0 评论 -
Android实现流量统计和网速监控悬浮窗
很多安全卫士类软件都实现了网速监测功能,也算是一个比较实用的功能。Android下,TrafficStats类实现了对流量的统计。[java]view plaincopy staticlonggetMobileRxBytes()//获取通过Mobile连接收到的字节总数,但不包含WiFi staticlonggetMobileRxPackets()//获取Mob...转载 2018-05-06 10:06:34 · 6733 阅读 · 0 评论 -
Android N数据业务总结
一、前言本文旨在总结Android N中数据业务在框架侧的流程,主要包括APN加载、数据卡选择、长连接拨号、短连接拨号等。目前框架侧的分析,侧重于AOSP相关的源码。同时,考虑到拨号与去拨号流程涉及的类基本相似,在理解拨号流程的基础上,可以比较容易地掌握去拨号的流程,因此本文不单独分析去拨号涉及的流程。最后,由于整个数据业务涉及到的细节相当多,文字有时难以进行有效...转载 2018-05-06 11:57:20 · 1367 阅读 · 0 评论 -
MTK IMS框架简析(1)——代码架构及模块初始化
1.前言随着4G技术的诞生和国内运营商网络的全面升级,以往流量贵上网慢的问题不再有,而类似微信这类即时通讯软件也得到快速的普及,互联网行业的发展还延伸到金融/零售等线上线下的各行各业,短短几年内国内IT产业迎来全面的机遇。而得益于移动网络技术的突破,政策的开放和乔帮主的1%的智慧,成就了今天高效的互联网+社会。4G协议中定义了包含volte和RCS等基于运营商核心网实现的功能,将发挥...转载 2018-05-12 10:05:58 · 2040 阅读 · 0 评论 -
MTK IMS框架简析(2)——IMS注册过程
之前在《MTK IMS框架简析(1)——代码架构及模块初始化》中已经分析了ims代码的构成和重点类的初始化,接下来以启用VOLTE子功能为例,具体分析AP侧IMS服务的注册过程。概要IMS注册前提是系统启用了volte或wifi calling等功能,Volte开关一般在网络设置界面会提供(如下图),用户切换开关状态将触发ims的注册或注销。启用Volte后的消息传递序列(这...转载 2018-05-12 10:13:59 · 1975 阅读 · 0 评论 -
Android N (7.0) 数据拨号前的准备工作
背景在介绍PhoneApp的创建过程时,我们知道为了支持双卡手机,PhoneFactory创建了两个Phone对象。然而由于通信制式、功耗等的限制,目前底层的芯片厂商规定modem工作于DSDS模式下,于是同一时间内只有一个Phone具有上网的能力。本文旨在揭示激活Phone拨号能力的过程,即讲述数据拨号前的准备工作。版本android 7.01 TelephonyP...转载 2017-09-14 14:38:37 · 1110 阅读 · 0 评论