文档章节

Framework层sim卡相关的设计

HouWeiGui
 HouWeiGui
发布于 2017/02/09 17:14
字数 486
阅读 26
收藏 0

1、UiccController

2、SubscriptionControler

 

 

关于切换主卡的实例:

/frameworks/opt/telephony/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java的updateSubscriptionInfoByIccId()在调用setDefaultDataSubId时是否做了客制化?

======具体log分析===================================================================
05-17 16:59:12.271325 9935 9970 I AT : AT< +ESIMS: 0,11 (RIL_URC_READER, tid:0) //-->拔出卡1,SIM卡为ABSENT
05-17 16:59:12.343410 1465 1465 D IccCardProxy: broadcastIccStateChangedIntent intent ACTION_SIM_STATE_CHANGED value=ABSENT reason=null for mPhoneId=0 (slot 0)

05-17 16:59:12.517455 1465 10476 D SubscriptionInfoUpdater: SIM1 hot plug out //-->Framework拿到卡1的拔出状态
05-17 16:59:12.517517 1465 10476 D SubscriptionInfoUpdater: checkAllIccIdReady +, retry_count = 10
05-17 16:59:12.517548 1465 10476 D SubscriptionInfoUpdater: No SIM insert :0
05-17 16:59:12.517564 1465 10476 D SubscriptionInfoUpdater: iccId[0] = N/A
05-17 16:59:12.517593 1465 10476 D SubscriptionInfoUpdater: iccId[1] = 89860116851066658343 //-->卡2拔出状态还没拿到,iccid是有效值
05-17 16:59:12.517611 1465 10476 D SubscriptionInfoUpdater: [updateSubscriptionInfoIfNeed]+
05-17 16:59:12.517667 1465 10476 D SubscriptionInfoUpdater: [updateSubscriptionInfoIfNeed] icc id change, slot[0]
05-17 16:59:12.517709 1465 10476 D SubscriptionInfoUpdater: All IccIds query complete
05-17 16:59:12.518369 1465 10476 D SubscriptionInfoUpdater: [updateSubscriptionInfoIfNeed]- return: true
05-17 16:59:12.518607 1465 10477 D SubscriptionInfoUpdater: updateSubscriptionInfoByIccId:+ Start

05-17 16:59:12.556791 9935 9976 I AT : AT< +ESIMS: 0,11 (RIL_URC2_READER, tid:0) //-->拔出卡2

05-17 16:59:12.995745 1465 10477 D SubscriptionInfoUpdater: zhoush subInfos size = 1 //-->这个log是贵公司添加的
05-17 16:59:12.995763 1465 10477 D SubscriptionInfoUpdater: zhoush setDefaultDataSubId(subInfos.get(0).getSubscriptionId() //-->这里客制化?只有一张卡时切成主卡?

05-17 16:59:12.997524 1465 10477 D SubscriptionController: [setDefaultDataSubId] num phones=2, subId=2 //-->准备切主卡到卡2
05-17 16:59:12.998199 1465 10477 D SubscriptionController: [setDefaultDataSubId] phoneId=0 subId=-2 RAF=65536
05-17 16:59:12.998633 1465 10477 D SubscriptionController: [setDefaultDataSubId] phoneId=1 subId=2 RAF=81930
05-17 16:59:13.007282 1465 10477 D ProxyController: do setRadioCapability //-->开始sim switch
05-17 16:59:13.146071 1465 10477 D SubscriptionInfoUpdater: updateSubscriptionInfoByIccId:- SsubscriptionInfo update complete

05-17 16:59:13.649356 9935 9958 I AT : AT> AT+ES3G=2, 7 (RIL_CMD_READER_3, tid:482091226192) //-->切主卡到卡2的AT

05-17 16:59:13.976900 1465 1465 D IccCardProxy: broadcastIccStateChangedIntent intent ACTION_SIM_STATE_CHANGED value=ABSENT reason=null for mPhoneId=1 (slot 1)
05-17 16:59:14.130866 1465 10528 D SubscriptionInfoUpdater: SIM2 hot plug out //-->这时候Framework才拿到卡2的拔出状态
05-17 16:59:14.190058 1465 10529 D SubscriptionInfoUpdater: updateSubscriptionInfoByIccId:- SsubscriptionInfo update complete
 

© 著作权归作者所有

共有 人打赏支持
HouWeiGui
粉丝 3
博文 42
码字总数 52381
作品 0
深圳
程序员
Android操作系统面试题

一﹑Android手机操作系统的四层架构? 架构框架以此从上到下: 1.Applications (应用程序(应用层)); Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息...

无鸯
2011/09/05
1K
0
苹果强推下一代 SIM 卡 诺基亚等厂商强烈反对

智能手机专利大战的硝烟尚未散尽,各大手机厂商又在下一代SIM卡标准的战场上开始斗法。目前,苹果和诺基亚正在为Nano-SIM卡的标准之争做最后的搏斗。虽然谁也不想因SIM卡专利受制于对方,但无...

虫虫
2012/03/23
2.8K
13
Entity Framework 实体框架的形成之旅--数据传输模型DTO和实体模型Entity的分离与联合B

在使用Entity Framework 实体框架的时候,我们大多数时候操作的都是实体模型Entity,这个和数据库操作上下文结合,可以利用LINQ等各种方便手段,实现起来非常方便,一切看起来很美好。但是如...

walb呀
2017/12/04
0
0
谷歌手机Nexus One能否挑战苹果iPhone

谷歌博客周六发布的文章称,谷歌正在全球员工当中测试一款新的手机,而消息人士透露,这款手机名为Nexus One。这使得谷歌即将推出自有品牌手机的传闻越来越真实。 由于同样基于Android平台,...

红薯
2009/12/13
608
0
SIMCom常见模组外围电路设计

最近一直在搞SIMCom的模组外围电路设计,现在整理一下外围电路设计思路。 1.电源方案 这类通信模组一般瞬间电流可以达到2A左右,所以在供电方案上需要十分注意,否则很容易造成模块死机或者重...

creative_team
04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
今天
0
0
HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
今天
3
0
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
今天
2
0
php foreach

<?php// 数组的引用$a=array(1,2,3,4,5);foreach($a as $key=>&$value){$value=$value*2;}print_r($a);echo " $key -------------------$value\r\n";/** * ...

小张525
今天
3
0
12-利用思维导图梳理JavaSE-多线程

12-利用思维导图梳理JavaSE-多线程 主要内容 1.线程概念 2.线程开发 3.线程的状态 4.线程的同步和死锁 5.Java5.0并发库类 QQ/知识星球/个人WeChat/公众号二维码 本文为原创文章,如果对你有一...

飞鱼说编程
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部