本文根据插入移动4G单卡到注册4G网络过程的mtklog分析。

插卡动作:

从以上信息无法区分单卡还是双卡,通过ATR参数判断:

注网流程,此过程未开启4G数据连接:

[MS->NW] ESM_MSG_PDN_CONNECTIVITY_REQUEST (PTI:5, EBI:0)

[MS->NW] EMM_Attach_Request(EPS attach type="EMM_ATTACH_TYPE_COMBINED_ATTACH")

[NW->MS] ESM_MSG_ESM_INFORMATION_REQUEST (PTI:5, EBI:0)

[MS->NW] ESM_MSG_ESM_INFORMATION_RESPONSE (PTI:5, EBI:0)

[NW->MS] EMM_Attach_Accept(EPS attach result="EMM_ATTACH_RESULT_COMBINED_ATTACHED")

[NW->MS] ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST (PTI:5, EBI:5)

[MS->NW] ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT (PTI:0, EBI:5)

[MS->NW] EMM_Attach_Complete

上报信号强度事件(Ril.cpp):

RILJ 的处理函数(Ril.java):

mSignalStrengthRegistrant 对象的创建(BaseCommands.java):

setOnSignalStrengthUp() 函数在ServiceStateTracker 类的构造函数中调用:

通过传入this,EVENT_SIGNAL_STRENGTH_UPDATE消息由该类或其子类处理,该处理函数在GSMServiceStateTracker 类中:

mSignalStrengthChangedRegistrants 通知者对象的初始化:

向该通知者添加监听对象方法:

分析该方法暂未被调用,所以没有需通知的监听对象。

继续分析onSignalStrengthResult() 函数处理上报的信号:

setGsm() 设置phone标识;isGsm = true,代表Gsm、Lte;否则代表Cdma

函数validateInput() 对信号区间做一个判断:

notifySignalStrength() 更新信号强度:

判断当前信号强度与上次保留的信号强度值,获取信号强度等级:

继续分析PhoneBase 类的 notifySignalStrength() 函数:

mNotifer 是 PhoneNotifer 接口的对象,notifySignalStrength() 方法的实现在 DefaultPhoneNotifier 类中:

方法如下:

mRegistry 对象的创建:

类TelephonyRegistry 继承自 ITelephonyRegistry.Stub,作为Service运行在system_server进程中,它会通知注册者。

上面的DefaultPhoneNotifier运行在com.Android.phone进程中,当信号强度值变化时,通过Service进行通知(service被感兴趣的注册者调用了listen,添加了回调函数。

通知上层信号强度变化。

可参考:http://blog.csdn.net/feitian_666/article/details/52879929

移动4G插卡注网的更多相关文章

  1. 4G最快网速相当于30M宽带

    [导读]据北京移动方面介绍,目前其4G网络的覆盖范围包括:东西北三环.南至两广路以内的地区:清华北大.国贸CBD及园博会等地区. 在4G年内发牌已成定局的背景下,各运营商都在加快布局,北京移动近期就推 ...

  2. 最快下载速度100Mbps!4G LTE技术全解析

    1导读,关于4G的几个关键概念 [PConline资讯]100Mbps下载速度是什么概念?比3G网速快50倍又是什么概念?比3G通信方式更灵活.通信频谱更宽绰.通信质量更高效.通信费用更便宜是怎样一个 ...

  3. Linux: 如何分割文件,不再被 4G 大小限制了

    单文件 4G 限制 FAT32 4G 限制 百度网盘超出 4G 限制 单文件分割与合并 单文件,如:archive.tar.gz 分割 split -b 3000M -d -a 1 archive.t ...

  4. iOS 苹果真机鉴定

    iPhone 4S(GSM) 16GB 黑色序列号:DX4KN69EDTC0设备名称:iPhone 4S容 量:16GB颜 色:黑色类 型:iPhone4,1代 号:n94ap型 号:MD235激活状 ...

  5. NB-IoT移远BC95使用小结

    移远-BC95-测试前准备 1.  设备连接主串口,串口调试助手波特率使用9600,选择对应的端口号.在串口调试助手上输入AT发送,查看是否有OK返回. 如果想修改波特可以通过下面的AT来修改 AT+ ...

  6. 中国正式发放5G牌照 详细对比中美两国5G实力

    今天,中国5G商用走进新里程:工信部向中国电信.中国移动.中国联通.中国广电发放5G商用牌照,中国也成为继韩国.美国.瑞士.英国后,第五个正式商用5G的国家. 按照之前的规划,中国原定于2020年开启 ...

  7. 这次一定要教会你搭建Redis集群和MySQL主从同步(非Docker)

    前言 一直都想自己动手搭建一个Redis集群和MySQL的主从同步,当然不是依靠Docker的一键部署(虽然现在企业开发用的最多的是这种方式),所以本文就算是一个教程类文章吧,但在动手搭建之前,会先聊 ...

  8. pppd调试心得.md

    描述 pppd是用于驱动3g模块的一种方式,其本质是和运营商APN协商,建立连接 其与运营商之间使用ppp协议,而用户在应用层使用系统提供的socket即可,从而忽略底层使用的时何种接口的设备,避免因 ...

  9. 移动WEB 性能优化方案

    最近一项 研究表明,80%的网民对移动端的浏览体验感到失望,同时,当体验提升时,他们会在智能手机上花费更多的时间. 这不奇怪,因为64%的智能手机用户希望网站可以在4秒内加载完毕,但一半的网站花费了二 ...

随机推荐

  1. 201871010104-陈园园 《面向对象程序设计(java)》第八周学习总结

    201871010104-陈园园 <面向对象程序设计(java)>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  2. 简单python爬虫实例

    先放上url,https://music.douban.com/chart 这是豆瓣的一个音乐排行榜,这里爬取了左边部分的歌曲排行榜部分,爬虫很简单,就用到了beautifulsoup和request ...

  3. 怎么删掉xampp文件夹

    删掉xampp文件夹时,提示:操作无法完成,因为其中的文件夹或文件已在另一程序中打开 具体的解决方法: 菜单栏输入:服务 找到apachezt和mysqlzt,并禁用    -- 因为之前打开Zent ...

  4. <Random> 380 381(hard) 138

    380. Insert Delete GetRandom O(1) class RandomizedSet { ArrayList<Integer> nums; HashMap<In ...

  5. appium--多进程启动多设备

    前戏 在前面我们都是使用一个机器进行测试,在做app自动化的时候,我们要测不同的机型,也就是兼容性测试,如果一台一台设备去执行,那就显的太麻烦了.所以经常需要我们启动多个设备,同时跑自动化测试用例,要 ...

  6. 【转】jsp 页面 按回车键 触发事件

    转载: https://blog.csdn.net/ludongshun2016/article/details/59536779. 第一种: <script type="text/J ...

  7. 第02组 Beta冲刺(4/4)

    队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:了解整个游戏的流程 GitHub签入记录 接下来的计划:继续完成游戏 还剩下哪些任务:完成游戏 燃尽图 遇到的困难:没有美术比较好的 ...

  8. 8.19 NOIP模拟测试26(B) 嚎叫响彻在贪婪的厂房+主仆见证了 Hobo 的离别+征途堆积出友情的永恒

    T1 嚎叫响彻在贪婪的厂房 以前做过一个等比数列的题「序列」,这个类似 是等差数列且公差不为1的条件就是各项差的绝对值的$gcd!=1$,每次拿出序列前两个数,求出差值,插入到set里,每次向后扩展, ...

  9. CF1194F Crossword Expert(数论,组合数学)

    不难的一题.不知道为什么能 $2500$…… 不过场上推错了一直不会优化…… 首先考虑 $f_i$ 表示恰好做完前 $i$ 道题的概率. 这样很难算.修改一下,$f_i$ 表示做完至少 $i$ 道题的 ...

  10. Linux性能优化实战学习笔记:第三十七讲

    一.上节回顾 上一节,我带你一起学习了网络性能的评估方法.简单回顾一下,Linux 网络基于 TCP/IP协议栈构建,而在协议栈的不同层,我们所关注的网络性能也不尽相同. 在应用层,我们关注的是应用程 ...