一种PSAM卡自动识别和显示方法及装置转让专利

申请号 : CN202210496400.0

文献号 : CN114584965B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆舟

申请人 : 飞天诚信科技股份有限公司

摘要 :

本申请涉及终端设备领域,尤其涉及一种PSAM卡自动识别和显示方法及装置,该方法包括电话通讯服务模块接收调制解调器模块上报的SIM卡的识别状态,组织并发送SIM卡状态改变的系统广播,电话进程模块监听并解析该广播,若得到第一错误SIM卡状态则通知系统驱动控制共用卡槽的切换电路切换连接至安全处理器;终端服务模块通过串口发送启动PSAM卡检测的指令,PSAM卡读取模块执行PSAM卡检测并返回PSAM卡状态;终端服务模块将PSAM卡状态传入电话通讯服务模块;电话通讯服务模块组织PSAM卡状态改变的系统广播,状态栏模块监听到该广播时更新PSAM卡图标的显示状态。本申请完善了PSAM卡的自动识别与状态显示。

权利要求 :

1.一种PSAM卡自动识别和显示方法,其特征在于,适用于设置有应用处理器和安全处理器的终端设备,且所述终端设备包括至少一个PSAM卡和SIM卡的共用卡槽,所述方法包括:步骤A0、调制解调器模块进行SIM卡的识别操作,向电话通讯服务模块上报SIM卡的识别状态;

步骤A1、所述电话通讯服务模块接收所述调制解调器模块上报的SIM卡的识别状态,组织并发送SIM卡状态改变的系统广播;

步骤A2、当收到所述SIM卡状态改变的系统广播后,电话进程模块解析收到的系统广播,当解析得到第一错误SIM卡状态时在文件系统中创建第一预设设备节点,向所述第一预设设备节点中写入第一预设值,以通知系统驱动控制所述共用卡槽的切换电路切换连接至安全处理器,向终端服务模块发送设备节点已写入的消息;

步骤A3、所述终端服务模块接收到所述设备节点已写入的消息后通过串口发送启动PSAM卡检测的指令;

步骤A4、当PSAM读取模块通过串口接收到启动PSAM卡检测的指令时,执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态;

步骤A5、所述终端服务模块通过串口接收到第一PSAM卡状态时,向所述电话通讯服务模块传入第一PSAM卡状态;

步骤A6、所述电话通讯服务模块接收到第一PSAM卡状态后,组织并发送第一PSAM卡状态改变的系统广播;

步骤A7、当收到第一PSAM卡状态改变的系统广播时,状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态;

所述调制解调器模块、所述电话通讯服务模块、所述电话进程模块、所述终端服务模块、所述状态栏模块设置在所述应用处理器,所述PSAM读取模块设置在所述安全处理器;所述终端设备上电时,所述共用卡槽的切换电路默认连接到所述应用处理器。

2.如权利要求1所述的方法,其特征在于,所述步骤A2中,当解析得到第一错误SIM卡状态时,还包括在文件系统中创建第二预设设备节点,向所述第二预设设备节点中写入第二预设值;

所述步骤A5中,所述终端服务模块通过串口接收到第一PSAM卡状态时,还包括向所述第二预设设备节点中写入第三预设值;

所述步骤A2中,还包括:当解析得到第二错误SIM卡状态时,所述电话进程模块向所述终端服务模块发送查询设备节点的消息;所述终端服务模块接收到所述查询设备节点的消息时读取所述第二预设设备节点,若所述第二预设设备节点的值为第三预设值则生成第一PSAM卡状态,向所述电话通讯服务模块传入第一PSAM卡状态,执行步骤A6,若所述第二预设设备节点的值是第二预设值则执行SIM卡的识别和访问。

3.如权利要求1所述的方法,其特征在于,所述步骤A4中执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态包括:启动PSAM卡检测,读取所述共用卡槽中卡片的信息,若成功读取到所述共用卡槽中卡片的信息,则通过串口返回第一预设状态,若读取所述共用卡槽中卡片的信息失败,则通过串口返回第二预设状态。

4.如权利要求1所述的方法,其特征在于,还包括:

步骤B1、当检测到PSAM卡从所述共用卡槽拔除时,所述PSAM读取模块通过串口发送第一PSAM卡状态,第一PSAM卡状态具体为第三预设状态;

步骤B2、当所述终端服务模块通过串口接收到第一PSAM卡状态时,向电话通讯服务模块传入第一PSAM卡状态;

步骤B3、所述电话通讯服务模块接收到第一PSAM卡状态时,组织并发送第一PSAM卡状态改变的系统广播,并向所述第一预设设备节点写入第二预设值,以通知系统驱动控制所述共用卡槽的切换电路切换连接至应用处理器;

步骤B4、当收到第一PSAM卡状态改变的系统广播时,所述状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态。

5.如权利要求1所述的方法,其特征在于,还包括:所述步骤A2中,当解析得到正确SIM卡状态时,执行SIM卡的识别和访问。

6.如权利要求1所述的方法,其特征在于,所述状态栏模块初始化时注册监听第一PSAM卡状态改变的系统广播;

所述方法还包括:当所述电话通讯服务模块发送第一PSAM卡状态改变的系统广播后,自动回调所述状态栏模块的预设自定义接口类的实现中的广播接收方法。

7.如权利要求6所述的方法,其特征在于,所述组织第一PSAM卡状态改变的系统广播包括:创建Intent,指定Intent的action,封装数据结构,向所述数据结构中存入第一PSAM卡状态的键值对;

所述注册监听第一PSAM卡状态改变的系统广播具体为:注册监听指定action的Intent;

所述方法还包括:当所述广播接收方法被调用时,所述状态栏模块获取到指定action的Intent,通过调用系统方法从Intent的第一PSAM卡状态的键值对中取得第一PSAM卡状态。

8.如权利要求6所述的方法,其特征在于,所述状态栏模块的预设自定义接口类的实现继承自广播,所述预设自定义接口类的第一成员变量第一PSAM状态视图包含内部类第一图标状态,所述第一图标状态包含第一属性和第二属性,所述第一属性控制是否显示第一PSAM卡图标的属性,所述第二属性控制第一PSAM卡图标样式的属性,所述第一PSAM状态视图还包含更新图标方法;

所述状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态具体为:调用所述更新图标方法,根据第一PSAM卡状态对应更新所述第一图标状态的第一属性和第二属性。

9.如权利要求1所述的方法,其特征在于,所述步骤A7还包括:当收到第一PSAM卡状态改变的系统广播时,系统设置模块更新PSAM卡开关菜单的状态。

10.如权利要求9所述的方法,其特征在于,所述电话通讯服务模块接收到第一PSAM卡状态后,还包括保存第一PSAM卡状态;

所述方法还包括:当所述系统设置模块初始化时,从所述电话通讯服务模块取得所述电话通讯服务模块保存的第一PSAM卡状态,根据取得的第一PSAM卡状态确定PSAM卡开关菜单的状态。

11.如权利要求10所述的方法,其特征在于,还包括:在用户操作所述PSAM卡开关菜单禁用PSAM卡时,执行以下步骤:步骤C1、所述系统设置模块向所述电话通讯服务模块发送禁用PSAM卡通知;

步骤C2、所述电话通讯服务模块更新保存的第一PSAM卡状态为第四预设状态,组织并发送第一PSAM卡状态改变的系统广播,并向所述第一预设设备节点写入第二预设值,以通知系统驱动控制所述共用卡槽的切换电路切换连接至应用处理器;

步骤C3、当收到第一PSAM卡状态改变的系统广播时,所述状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态,所述系统设置模块更新所述PSAM卡开关菜单的状态。

12.如权利要求10所述的方法,其特征在于,还包括:在用户操作所述PSAM卡开关菜单启用PSAM卡时,执行以下步骤:步骤D1、所述系统设置模块向所述电话通讯服务模块发送启用PSAM卡通知;

步骤D2、所述电话通讯服务模块更新保存的第一PSAM卡状态为第五预设状态,组织并发送第一PSAM卡状态改变的系统广播,并向所述第一预设设备节点写入第一预设值,以通知系统驱动控制所述共用卡槽的切换电路切换连接至安全处理器;

步骤D3、当接收到第一PSAM卡状态改变的系统广播时,所述状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态,所述系统设置模块更新所述PSAM卡开关菜单的状态。

13.如权利要求9所述的方法,其特征在于,还包括:当启动显示所述PSAM卡开关菜单时,所述系统设置模块注册监听第一PSAM卡状态改变的系统广播,当所述电话通讯服务模块发送第一PSAM卡状态改变的系统广播后,所述系统设置模块的预设广播接收方法被调用,所述系统设置模块接收到第一PSAM卡状态改变的系统广播,获取所述第一PSAM卡状态改变的系统广播中的第一PSAM卡状态;当关闭显示所述PSAM卡开关菜单时,所述系统设置模块取消监听第一PSAM卡状态改变的系统广播。

14.如权利要求9所述的方法,其特征在于,所述系统设置模块包含用于实现所述PSAM卡开关菜单的预设自定义类,所述预设自定义类继承于系统开关菜单,所述预设自定义类的自定义内部类包含更新菜单方法;

所述系统设置模块更新所述PSAM卡开关菜单的状态具体为:调用所述更新菜单方法,根据第一PSAM卡状态更新所述PSAM卡开关菜单的状态。

15.如权利要求1所述的方法,其特征在于,所述步骤A5中,所述向所述电话通讯服务模块传入第一PSAM卡状态具体为:所述终端服务模块通过所述电话通讯服务模块提供的对外接口的类的更新PSAM卡状态接口向所述电话通讯服务模块传入第一PSAM卡状态。

16.如权利要求1所述的方法,其特征在于,所述终端设备还包括至少一个PSAM卡的专用卡槽,所述方法还包括当所述专用卡槽中有卡插入或拔除时执行以下步骤:步骤E1、所述PSAM读取模块执行PSAM卡检测,根据检测结果通过串口发送第二PSAM卡状态;

步骤E2、所述终端服务模块通过串口接收到第二PSAM卡状态时,向所述电话通讯服务模块传入第二PSAM卡状态;

步骤E3、所述电话通讯服务模块接收到第二PSAM卡状态后,组织并发送第二PSAM卡状态改变的系统广播;

步骤E4、当接收到第二PSAM卡状态改变的系统广播时,所述状态栏模块更新终端设备状态栏中的第二PSAM卡图标的显示状态。

17.一种PSAM卡自动识别和显示装置,其特征在于,适用于设置有应用处理器和安全处理器的终端设备,且所述终端设备包括至少一个PSAM卡和SIM卡的共用卡槽,所述装置包括:调制解调器模块,用于进行SIM卡的识别操作,向电话通讯服务模块上报SIM卡的识别状态;

所述电话通讯服务模块,用于接收所述调制解调器模块上报的SIM卡的识别状态,组织并发送SIM卡状态改变的系统广播;

电话进程模块,用于收到SIM卡状态改变的系统广播后,解析收到的系统广播,当解析得到第一错误SIM卡状态时在文件系统中创建第一预设设备节点,向所述第一预设设备节点中写入第一预设值,以通知系统驱动控制所述共用卡槽的切换电路切换连接至安全处理器,向终端服务模块发送设备节点已写入的消息;

所述终端服务模块,用于接收到所述设备节点已写入的消息后通过串口发送启动PSAM卡检测的指令;

PSAM读取模块,用于通过串口接收到启动PSAM卡检测的指令时,执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态;

所述终端服务模块,还用于通过串口接收到第一PSAM卡状态时,向所述电话通讯服务模块传入第一PSAM卡状态;

所述电话通讯服务模块,还用于接收到第一PSAM卡状态后,组织并发送第一PSAM卡状态改变的系统广播;

所述装置还包括状态栏模块,用于当收到第一PSAM卡状态改变的系统广播时,更新终端设备状态栏中的第一PSAM卡图标的显示状态;

所述调制解调器模块、所述电话通讯服务模块、所述电话进程模块、所述终端服务模块、所述状态栏模块设置在所述应用处理器,所述PSAM读取模块设置在所述安全处理器;所述终端设备上电时,所述共用卡槽的切换电路默认连接到所述应用处理器。

18.一种电子设备,其特征在于,包括:处理器和存储器;

所述存储器,用于存储计算机程序;

所述处理器,用于通过调用所述计算机程序,执行如权利要求1至16中任一项所述的方法。

19.一种芯片系统,其特征在于,包括处理器和接口;

所述处理器用于通过所述接口实现如权利要求1至16中任一项所述的方法。

20.一种计算机可读存储介质,其特征在于,用于存储计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至16中任一项所述的方法。

说明书 :

一种PSAM卡自动识别和显示方法及装置

技术领域

[0001] 本申请涉及终端设备领域,特别是涉及一种PSAM卡自动识别和显示方法及装置。

背景技术

[0002] 在终端设备的一些使用场景下,使用者需要获知PSAM卡的状态,然而目前所有的安卓平台均未实现PSAM卡的识别,因此在安卓系统层面完善自动识别PSAM卡,以及实现PSAM卡和SIM卡自动切换,并将识别到的PSAM卡状态显示到终端设备状态栏上成为了当前亟待解决的技术问题。

发明内容

[0003] 本申请提供了一种PSAM卡自动识别和显示方法及装置,解决了上述技术问题。
[0004] 第一方面,本申请提供一种PSAM卡自动识别和显示方法,该方法适用于设置有应用处理器和安全处理器的终端设备,且所述终端设备包括至少一个PSAM卡和SIM卡的共用卡槽,包括:
[0005] 步骤A0、调制解调器模块进行SIM卡的识别操作,向电话通讯服务模块上报SIM卡的识别状态;
[0006] 步骤A1、所述电话通讯服务模块接收所述调制解调器模块上报的SIM卡的识别状态,组织并发送SIM卡状态改变的系统广播;
[0007] 步骤A2、当收到所述SIM卡状态改变的系统广播后,电话进程模块解析收到的系统广播,当解析得到第一错误SIM卡状态时在文件系统中创建第一预设设备节点,向所述第一预设设备节点中写入第一预设值,以通知系统驱动控制所述共用卡槽的切换电路切换连接至安全处理器,向终端服务模块发送设备节点已写入的消息;
[0008] 步骤A3、所述终端服务模块接收到所述设备节点已写入的消息后通过串口发送启动PSAM卡检测的指令;
[0009] 步骤A4、当PSAM读取模块通过串口接收到启动PSAM卡检测的指令时,执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态;
[0010] 步骤A5、所述终端服务模块通过串口接收到第一PSAM卡状态时,向所述电话通讯服务模块传入第一PSAM卡状态;
[0011] 步骤A6、所述电话通讯服务模块接收到第一PSAM卡状态后,组织并发送第一PSAM卡状态改变的系统广播;
[0012] 步骤A7、当收到第一PSAM卡状态改变的系统广播时,状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态;
[0013] 所述调制解调器模块、所述电话通讯服务模块、所述电话进程模块、所述终端服务模块、所述状态栏模块设置在所述应用处理器,所述PSAM读取模块设置在所述安全处理器;所述终端设备上电时,所述共用卡槽的切换电路默认连接到所述应用处理器。
[0014] 第二方面,本申请还提供一种PSAM卡自动识别和显示装置,适用于设置有应用处理器和安全处理器的终端设备,且所述终端设备包括至少一个PSAM卡和SIM卡的共用卡槽,该装置包括:
[0015] 调制解调器模块,用于进行SIM卡的识别操作,向电话通讯服务模块上报SIM卡的识别状态;
[0016] 所述电话通讯服务模块,用于接收所述调制解调器模块上报的SIM卡的识别状态,组织并发送SIM卡状态改变的系统广播;
[0017] 电话进程模块,用于收到SIM卡状态改变的系统广播后,解析收到的系统广播,当解析得到第一错误SIM卡状态时在文件系统中创建第一预设设备节点,向所述第一预设设备节点中写入第一预设值,以通知系统驱动控制所述共用卡槽的切换电路切换连接至安全处理器,向终端服务模块发送设备节点已写入的消息;
[0018] 所述终端服务模块,用于接收到所述设备节点已写入的消息后通过串口发送启动PSAM卡检测的指令;
[0019] PSAM读取模块,用于通过串口接收到启动PSAM卡检测的指令时,执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态;
[0020] 所述终端服务模块,还用于通过串口接收到第一PSAM卡状态时,向所述电话通讯服务模块传入第一PSAM卡状态;
[0021] 所述电话通讯服务模块,还用于接收到第一PSAM卡状态后,组织并发送第一PSAM卡状态改变的系统广播;
[0022] 所述装置还包括状态栏模块,用于当收到第一PSAM卡状态改变的系统广播时,更新终端设备状态栏中的第一PSAM卡图标的显示状态;
[0023] 所述调制解调器模块、所述电话通讯服务模块、所述电话进程模块、所述终端服务模块、所述状态栏模块设置在所述应用处理器,所述PSAM读取模块设置在所述安全处理器;所述终端设备上电时,所述共用卡槽的切换电路默认连接到所述应用处理器。
[0024] 第三方面,本申请还提供一种电子设备,该电子设备包括:处理器和存储器;其中:
[0025] 存储器,用于存储计算机程序;
[0026] 处理器,用于通过调用存储器存储的计算机程序,执行本申请提供的方法。
[0027] 第四方面,本申请还提供一种芯片系统,包括处理器和接口,所述处理器用于通过所述接口实现本申请提供的方法。
[0028] 第五方面,本申请还提供一种计算机可读存储介质,用于存储计算机程序,当所述计算机程序在计算机上运行时,使得计算机执行本申请提供的方法。
[0029] 本申请实现的有益效果为:本申请提供适用于双处理器的终端设备的PSAM卡自动识别和显示方法及装置,将与终端设备的应用处理器连接的SIM卡槽共用为PSAM卡槽,实现PSAM卡插入共用卡槽后的自动识别和终端设备的安全处理器对共用卡槽中的PSAM卡的访问,并且提供界面显示,依据自动识别结果在该界面上实时显示PSAM卡的状态,同时实现了SIM卡和PSAM卡之间的自动切换。

附图说明

[0030] 通过阅读下文具体实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。在附图中:
[0031] 图1为本申请实施例一提供的一种PSAM卡自动识别和显示方法的流程图;
[0032] 图2为本申请实施例二提供的一种PSAM卡自动识别和显示方法适用的终端设备的结构示意图;
[0033] 图3为本申请实施例二提供的一种PSAM卡自动识别和显示方法的流程图;
[0034] 图4为本申请实施例三提供的一种PSAM卡自动识别和显示装置的结构示意图。

具体实施方式

[0035] 本申请提出一种PSAM卡自动识别和显示方法及装置,下面结合附图,对本申请实施例进行进一步的详细描述。所描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
[0036] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。应理解,本申请使用的表述“第一”、“第二”、“第三”、“第四”、“第五”等,是出于表述清楚和便利的目的,并无意限制数量、顺序或重要程度。
[0037] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0038] 本申请所述SIM( Subscriber Identity Module)卡是GSM系统的移动用户所持有的IC卡,称为用户识别卡;PSAM卡是终端安全控制模块。
[0039] 本申请各实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
[0040] 实施例一
[0041] 本实施例提供一种PSAM卡自动识别和显示方法,适用于设置有应用处理器和安全处理器的终端设备,且该终端设备包括至少一个PSAM卡和SIM卡的共用卡槽,参见图1,方法具体包括:
[0042] 步骤A0、调制解调器模块进行SIM卡的识别操作,向电话通讯服务模块上报SIM卡的识别状态;
[0043] 步骤A1、电话通讯服务模块接收调制解调器模块上报的SIM卡的识别状态,组织并发送SIM卡状态改变的系统广播;
[0044] 步骤A2、当收到SIM卡状态改变的系统广播后,电话进程模块解析SIM卡状态改变的系统广播,当解析得到第一错误SIM卡状态时在文件系统中创建第一预设设备节点,向第一预设设备节点中写入第一预设值,以通知系统驱动控制PSAM卡和SIM卡的共用卡槽的切换电路切换连接至安全处理器,向终端服务模块发送设备节点已写入的消息;
[0045] 可选的,步骤S2中,当解析SIM卡状态改变的系统广播得到正确SIM卡状态时,执行SIM卡的识别和访问。
[0046] 步骤A3、终端服务模块接收到设备节点已写入的消息后通过串口发送启动PSAM卡检测的指令;
[0047] 步骤A4、当PSAM读取模块通过串口接收到启动PSAM卡检测的指令时,执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态;
[0048] 可选的,执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态,具体为:启动PSAM卡检测,读取PSAM卡和SIM卡的共用卡槽中卡片的信息,若成功读取到卡片的信息,则通过串口返回第一预设状态,若读取卡片的信息失败,则通过串口返回第二预设状态。
[0049] 步骤A5、终端服务模块通过串口接收到第一PSAM卡状态时,向电话通讯服务模块传入第一PSAM卡状态;
[0050] 一种可能的实施方式中,终端服务模块向电话通讯服务模块传入第一PSAM卡状态具体为:终端服务模块通过电话通讯服务模块提供的对外接口的类的更新PSAM卡状态接口向电话通讯服务模块传入第一PSAM卡状态。
[0051] 步骤A6、电话通讯服务模块接收到第一PSAM卡状态后,组织并发送第一PSAM卡状态改变的系统广播;
[0052] 步骤A7、当收到第一PSAM卡状态改变的系统广播时,状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态;
[0053] 可选的,状态栏模块初始化时注册监听第一PSAM卡状态改变的系统广播,当电话通讯服务模块发送第一PSAM卡状态改变的系统广播后,自动回调状态栏模块的预设自定义接口类的实现中的广播接收方法;
[0054] 一种可能的实施方式中,电话通讯服务模块组织第一PSAM卡状态改变的系统广播可以包括:创建Intent,指定Intent的action,封装数据结构,向数据结构中存入第一PSAM卡状态的键值对;相应的,状态栏模块注册监听第一PSAM卡状态改变的系统广播可以包括:注册监听指定action的Intent;当状态栏模块的广播接收方法被调用时,状态栏模块获取到指定action的Intent,通过调用系统方法从Intent的第一PSAM卡状态的键值对中取得第一PSAM卡状态;
[0055] 一种可能的实施方式中,状态栏模块的预设自定义接口类的实现继承自广播,该预设自定义接口类的第一成员变量第一PSAM状态视图包含内部类第一图标状态,第一图标状态包含第一属性和第二属性,第一属性控制是否显示第一PSAM卡图标的属性,第二属性控制第一PSAM卡图标样式的属性,第一PSAM状态视图还包含更新图标方法;状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态具体为:调用更新图标方法,根据第一PSAM卡状态对应更新第一图标状态的第一属性和第二属性。
[0056] 上述调制解调器模块、电话通讯服务模块、电话进程模块、终端服务模块、状态栏模块设置在终端设备的应用处理器,PSAM读取模块设置在终端设备的安全处理器;终端设备上电时,PSAM卡和SIM卡的共用卡槽的切换电路默认连接到终端设备的应用处理器。
[0057] 一种可能的实施方式中,步骤A2中,当解析得到第一错误SIM卡状态时,还包括在文件系统中创建第二预设设备节点,向第二预设设备节点中写入第二预设值;步骤A5中,终端服务模块通过串口接收到第一PSAM卡状态时,还包括向文件系统中第二预设设备节点写入第三预设值;
[0058] 进一步地,步骤A2中,还包括当解析SIM卡状态改变的系统广播得到第二错误SIM卡状态时,电话进程模块向终端服务模块发送查询设备节点的消息;终端服务模块接收到查询设备节点的消息时读取文件系统中第二预设设备节点,若第二预设设备节点的值为第三预设值则生成第一PSAM卡状态,向电话通讯服务模块传入第一PSAM卡状态,执行步骤A6,若第二预设设备节点的值是第二预设值则执行SIM卡的识别和访问。
[0059] 一种可能的实施方式中,步骤A7还包括:当收到第一PSAM卡状态改变的系统广播时,系统设置模块更新PSAM卡开关菜单的状态。可选的,当启动显示PSAM卡开关菜单时,系统设置模块注册监听第一PSAM卡状态改变的系统广播,当电话通讯服务模块发送第一PSAM卡状态改变的系统广播后,系统设置模块的预设广播接收方法被调用,系统设置模块接收到第一PSAM卡状态改变的系统广播,获取该广播中的第一PSAM卡状态;当关闭显示PSAM卡开关菜单时,系统设置模块取消监听第一PSAM卡状态改变的系统广播。系统设置模块包含用于实现PSAM卡开关菜单的预设自定义类,该预设自定义类继承于系统开关菜单,且该预设自定义类的自定义内部类包含更新菜单方法;系统设置模块更新PSAM卡开关菜单的状态具体为:调用上述更新菜单方法,根据第一PSAM卡状态更新PSAM卡开关菜单的状态。
[0060] 进一步地,电话通讯服务模块接收到第一PSAM卡状态后,还包括保存接收到的第一PSAM卡状态;当系统设置模块初始化时,从电话通讯服务模块取得电话通讯服务模块保存的第一PSAM卡状态,根据取得的第一PSAM卡状态确定PSAM卡开关菜单的状态。
[0061] 更进一步地,本实施例提供的方法还可以包括在用户操作PSAM卡开关菜单禁用PSAM卡时执行步骤C1至步骤C3,和/或在用户操作PSAM卡开关菜单启用PSAM卡时执行步骤D1至步骤D3。
[0062] 步骤C1至步骤C3具体为:
[0063] 步骤C1、系统设置模块向电话通讯服务模块发送禁用PSAM卡通知;
[0064] 步骤C2、电话通讯服务模块更新保存的第一PSAM卡状态为第四预设状态,组织并发送第一PSAM卡状态改变的系统广播,并向文件系统中第一预设设备节点写入第二预设值,以通知系统驱动控制PSAM卡和SIM卡的共用卡槽的切换电路切换连接至应用处理器;
[0065] 步骤C3、当收到第一PSAM卡状态改变的系统广播时,状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态,系统设置模块更新所述PSAM卡开关菜单的状态。
[0066] 步骤D1至步骤D3具体为:
[0067] 步骤D1、系统设置模块向电话通讯服务模块发送启用PSAM卡通知;
[0068] 步骤D2、电话通讯服务模块更新保存的第一PSAM卡状态为第五预设状态,组织并发送第一PSAM卡状态改变的系统广播,并向文件系统中第一预设设备节点写入第一预设值,以通知系统驱动控制PSAM卡和SIM卡的共用卡槽的切换电路切换连接至安全处理器;
[0069] 步骤D3、当接收到第一PSAM卡状态改变的系统广播时,状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态,系统设置模块更新所述PSAM卡开关菜单的状态。
[0070] 一种可能的实施方式中,上述方法还包括:
[0071] 步骤B1、当检测到PSAM卡从PSAM卡和SIM卡的共用卡槽拔除时,PSAM读取模块通过串口发送第一PSAM卡状态,第一PSAM卡状态具体为第三预设状态;
[0072] 步骤B2、当终端服务模块通过串口接收到第一PSAM卡状态时,向电话通讯服务模块传入第一PSAM卡状态;
[0073] 步骤B3、电话通讯服务模块接收到第一PSAM卡状态时,组织并发送第一PSAM卡状态改变的系统广播,并向文件系统中第一预设设备节点写入第二预设值,以通知系统驱动控制PSAM卡和SIM卡的共用卡槽的切换电路切换连接至应用处理器;
[0074] 步骤B4、当收到第一PSAM卡状态改变的系统广播时,状态栏模块更新终端设备状态栏中的第一PSAM卡图标的显示状态。
[0075] 一种可能的实施方式中,本实施例提供的方法所适用的终端设备还包括至少一个PSAM卡的专用卡槽,本实施例提供的方法相应还包括当PSAM卡的专用卡槽中有卡插入或拔除时执行以下步骤:
[0076] 步骤E1、PSAM读取模块执行PSAM卡检测,根据检测结果通过串口发送第二PSAM卡状态;
[0077] 步骤E2、终端服务模块通过串口接收到第二PSAM卡状态时,向电话通讯服务模块传入第二PSAM卡状态;
[0078] 步骤E3、电话通讯服务模块接收到第二PSAM卡状态后,组织并发送第二PSAM卡状态改变的系统广播;
[0079] 步骤E4、当接收到第二PSAM卡状态改变的系统广播时,状态栏模块更新终端设备状态栏中的第二PSAM卡图标的显示状态。
[0080] 实施例二
[0081] 本实施例提供一种PSAM卡自动识别和显示方法,适用于如图2所示的终端设备,终端设备包括应用处理器和安全处理器,其中,应用处理器和安全处理器通过串口进行通讯,且终端设备设置有至少一个PSAM卡和SIM卡共用卡槽,PSAM卡和SIM卡共用卡槽与切换电路相连。由应用处理器控制切换电路切换连接。在终端设备上电时,切换电路默认连接到应用处理器。当切换电路连接到应用处理器时,PSAM卡和SIM卡共用卡槽通过切换电路与应用处理器经7816接口进行通讯,当切换电路切换连接至安全处理器时,PSAM卡和SIM卡共用卡槽通过切换电路与安全处理器经7816接口进行通讯。本申请中终端设备的应用处理器基于安卓平台。
[0082] 本申请提供的PSAM卡自动识别和显示方法包括:
[0083] 当终端设备启动时,或者终端设备启动后PSAM卡和SIM卡共用卡槽中有卡插入或拔除时,如图3所示,执行以下步骤:
[0084] 步骤101,调制解调器模块进行SIM卡的识别操作,向电话通讯服务模块上报SIM卡的识别状态;
[0085] 需要说明的,SIM卡的识别操作是现有技术,本申请不做具体限定。
[0086] 步骤102, 电话通讯服务模块接收调制解调器模块上报的SIM卡的识别状态,组织并发送SIM卡状态改变的系统广播;
[0087] 步骤103,当收到SIM卡状态改变的系统广播后,电话进程模块解析接收到的广播,若解析得到正确SIM卡状态,则执行SIM卡的识别和访问,若解析得到第一错误SIM卡状态时,则执行步骤104,若解析得到第二错误SIM卡状态则执行步骤104′;
[0088] 需要说明的,SIM卡的识别和访问是现有技术,本申请不作具体限定。
[0089] 一种可能的实施方式中,第一错误 SIM卡状态具体为IO_ERROR,第二错误SIM卡状态具体为ABSENT。
[0090] 步骤104,电话进程模块在文件系统中创建第一预设设备节点,并向第一预设设备节点中写入第一预设值,以通知系统驱动控制切换电路切换连接至安全处理器,在文件系统中创建第二预设设备节点,并向第二预设设备节点中写入第二预设值,向终端服务模块发送设备节点已写入的消息;
[0091] 电话进程模块向终端服务模块发送设备节点已写入的消息可具体为:电话进程模块通过调用终端服务模块的接收外部消息接口向终端服务模块传入Message类型的消息;例如,终端服务模块对外封装一个SDK,电话进程模块则引入该SDK的jar包,该SDK包含一个接收外部消息的接口handlePSAMMessage(),电话进程模块调用handlePSAMMessage(),接口传入参数为Message类型的消息;当handlePSAMMessage()被调用时,终端服务模块接收消息并执行相应的消息处理。
[0092] 一种可能的实施方式中,在文件系统中创建第一预设设备节点/dev/psam/psam_status,写入第一预设值0x01;在文件系统中创建第二预设设备节点/dev/psam/psam_slot,写入的第二预设值0x00;
[0093] 步骤105,终端服务模块接收到设备节点已写入的消息后通过串口发送启动PSAM卡检测的指令;
[0094] 本实施例中,终端服务模块通过串口发送启动PSAM卡检测的指令可具体为:终端服务模块通过串口发送启动PSAM卡检测的APDU指令。
[0095] 步骤106,当PSAM读取模块通过串口接收到启动PSAM卡检测的指令时,执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态,第一PSAM卡状态为第一预设状态或第二预设状态;
[0096] 本实施例中,PSAM读取模块执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态可具体为:PSAM读取模块启动PSAM卡检测,读取PSAM卡和SIM卡共用卡槽中卡片的信息,若PSAM读取模块成功读取到PSAM卡和SIM卡共用卡槽中卡片的信息,则通过串口返回第一预设状态,若PSAM读取模块读取PSAM卡和SIM卡共用卡槽中卡片的信息失败,则通过串口返回第二预设状态;
[0097] 一种可能的实施方式中,第一预设状态具体为READY,第二预设状态具体为ERROR。
[0098] 步骤107,当终端服务模块通过串口接收到第一PSAM卡状态时,向文件系统中的第二预设设备节点写入第三预设值,向电话通讯服务模块传入第一PSAM卡状态,执行步骤108;
[0099] 在一种可能的实施方式中,终端服务模块通过电话通讯服务模块提供的对外接口的类TelephonyManager的更新PSAM卡状态接口updatePSAMStatus()向电话通讯服务模块传入第一PSAM卡状态;
[0100] 第三预设值例如为0x01。
[0101] 步骤104′,电话进程模块向终端服务模块发送查询设备节点的消息;
[0102] 步骤105′,终端服务模块读取文件系统中的第二预设设备节点,若该设备节点的值为第三预设值,则执行步骤106′,若该设备节点的值为第二预设值,则流程结束;
[0103] 步骤106′,终端服务模块生成第一PSAM卡状态,并向电话通讯服务模块传入第一PSAM卡状态,第一PSAM卡状态具体为第三预设状态,执行步骤108;
[0104] 一种可能的实施方式中,第三预设状态具体为ABSENT。
[0105] 步骤108,电话通讯服务模块接收到第一PSAM卡状态时,保存第一PSAM卡状态,组织并发送第一PSAM卡状态改变的系统广播;
[0106] 一种可能的实施方式中,电话通讯服务模块提供的对外接口的类TelephonyManager的更新PSAM卡状态接口updatePSAMStatus()被调用时,电话通讯服务模块获取到作为参数传入的第一PSAM卡状态,将第一PSAM卡状态保存到第一预设成员变量PSAMStatus1;
[0107] 本实施例中,第一PSAM卡状态改变的系统广播中带有第一PSAM卡状态;
[0108] 一种可能的实施方式中,组织并发送第一PSAM卡状态改变的系统广播包括:创建Intent,指定Intent的action为android.intent.action.PSAM_STATE_CHANGED,封装一个数据结构Bundle,通过put的方式向Bundle中存入key‑value形式的数据,其中key可以具体为ps,value则为第一PSAM卡状态;
[0109] 可选的,电话通讯服务模块组织第一PSAM卡状态改变的系统广播之后还包括定义该广播为受保护的广播,接收该广播需要相应权限。
[0110] 步骤109,当接收到第一PSAM卡状态改变的系统广播时,状态栏模块更新终端设备状态栏中实现的第一PSAM卡图标的显示状态;
[0111] 本实施例中,状态栏模块初始化时注册监听第一PSAM卡状态改变的系统广播,注册类型为常驻型,当电话通讯服务模块发送第一PSAM卡状态改变的系统广播后,状态栏模块的预设广播接收方法被调用,状态栏模块接收到第一PSAM卡状态改变的系统广播,获取该广播带有的第一PSAM卡状态;
[0112] 一种可能的实施方式中,状态栏模块初始化时注册监听action为android.intent.action.PSAM_STATE_CHANGED的Intent,当电话通讯服务模块发送第一PSAM卡状态改变的系统广播后,自动回调状态栏模块的预设自定义接口类
PSAMStatusController的实现类PSAMStatusControllerImpl的广播接收方法onReceive(),当onReceive()被调用时,获取到传入参数Intent,Intent的action为
android.intent.action.PSAM_STATE_CHANGED,调用系统方法intent.getStringExtra(“ps”),得到String类型的第一PSAM卡状态;
[0113] 一种可能的实施方式中,状态栏模块预设自定义接口类PSAMStatusController,是控制PSAM状态的一个接口类,PSAMStatusController的实现类PSAMStatusControllerImpl继承自广播,该接口类的第一成员变量第一PSAM状态视图PSAMStatusView1包含内部类第一图标状态IconState1,IconState1包含属性visible和icon,分别控制是否显示第一PSAM卡图标和第一PSAM卡图标的样式;PSAMStatusView1还包含一个更新图标方法updateIcon(),状态栏模块通过调用updateIcon()更新IconState1的visible属性和icon属性;
[0114] 进一步地,当updateIcon()被调用时:
[0115] 若第一PSAM卡状态为第一预设状态,则更新IconState1的visible属性为true,更新IconState1的icon属性为READY形态图片;
[0116] 若第一PSAM卡状态为第二预设状态,则更新IconState1的visible属性为true,更新IconState1的icon属性为ERROR形态图片;
[0117] 若第一PSAM卡状态为第三预设状态,则更新IconState1的visible属性为false,更新IconState1的icon属性为NULL。
[0118] 可选的,步骤109中还包括:当接收到第一PSAM卡状态改变的广播时,系统设置模块更新PSAM卡开关菜单的状态;
[0119] 一种可能的实施方式中,当启动显示PSAM卡开关菜单时,系统设置模块注册监听第一PSAM卡状态改变的系统广播,当电话通讯服务模块发送第一PSAM卡状态改变的系统广播后,系统设置模块的预设广播接收方法被调用,系统设置模块接收到第一PSAM卡状态改变的系统广播,获取该广播带有的第一PSAM卡状态,当关闭显示PSAM卡开关菜单时,系统设置模块取消监听第一PSAM卡状态改变的系统广播;
[0120] 一种可能的实施方式中,当电话通讯服务模块发送第一PSAM卡状态改变的系统广播后,若PSAM卡开关菜单处于显示状态,自动回调系统设置模块的预设自定义类PSAMStatusPreference的内部类MyBroadCast的广播接收方法onReceive();具体的,系统设置模块的预设自定义类PSAMStatusPreference,用于实现PSAM卡开关菜单,它继承于系统开关菜单SwitchPreference, PSAMStatusPreference的内部类MyBroadCast还包含更新菜单方法updatePreference(),系统设置模块通过调用updatePreference()更新PSAM卡开关菜单的状态;
[0121] 进一步地,当updatePreference()被调用时:
[0122] 若第一PSAM卡状态为第一预设状态或第二预设状态,则更新PSAM卡开关菜单为打开状态;
[0123] 若第一PSAM卡状态为第三预设状态,则更新PSAM卡开关菜单为不可点击状态。
[0124] 具体的,调制解调器(Modem)模块、电话通讯(Telephony)服务模块、电话(Phone)进程模块、终端服务模块、状态栏(SystemUI)模块和系统设置(Settings)模块设置在终端设备的应用处理器,PSAM读取(PSAMReader)模块设置在终端设备的安全处理器。上述Modem模块为现有模块,Telephony服务模块、Phone进程模块、SystemUI模块和Settings模块为在现有模块基础上改进得到的,终端服务模块和PSAMReader模块为自实现模块。
[0125] 进一步地,本实施例提供的方法,当启动显示PSAM卡开关菜单时,还包括Settings模块从Telephony服务模块取得Telephony服务模块保存的第一PSAM卡状态,确定PSAM卡开关菜单的状态;
[0126] 一种可能的实施方式中,终端服务模块通过Telephony服务模块提供的对外接口的类TelephonyManager的获取PSAM卡状态接口getPSAMStatus()获取Telephony服务模块保存的第一PSAM卡状态;
[0127] 具体地,若获取到的第一PSAM卡状态为第一预设状态或第二预设状态或第四预设状态,则设置PSAM卡开关菜单的状态为打开,若获取到的第一PSAM卡状态为第三预设状态,则设置PSAM卡开关菜单的状态为不可点击,若获取到的第一PSAM卡状态为第五预设状态,则确定PSAM卡开关菜单的状态为关闭。
[0128] 相应的,本实施例提供的PSAM卡自动识别和显示方法中还可以包括:
[0129] 步骤201,当检测到SAM卡和SIM卡共用卡槽中有卡拔除时,PSAM读取模块通过串口发送第一PSAM卡状态,第一PSAM卡状态具体为第三预设状态;
[0130] 步骤202,当终端服务模块通过串口接收到第一PSAM卡状态时,向Telephony服务模块传入第一PSAM卡状态;
[0131] 步骤203,Telephony服务模块接收到第一PSAM卡状态时,保存第一PSAM卡状态,组织并发送第一PSAM卡状态改变的系统广播,并向文件系统中创建的第一预设设备节点写入第四预设值,以通知系统驱动控制切换电路切换连接至应用处理器;
[0132] 一种可能的实施方式中,第四预设值为0x00。
[0133] 步骤204,当接收到第一PSAM卡状态改变的系统广播时,SystemUI模块更新终端设备状态栏中实现的第一PSAM卡图标的显示状态。
[0134] 本实施例中,SystemUI模块初始化时注册监听第一PSAM卡状态改变的系统广播,当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,SystemUI模块的预设广播接收方法被调用,SystemUI模块接收到第一PSAM卡状态改变的系统广播,获取该广播带有的第一PSAM卡状态;
[0135] 一种可能的实施方式中,SystemUI模块初始化时注册监听action为android.intent.action.PSAM_STATE_CHANGED的Intent,注册类型为常驻型;当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,自动回调SystemUI模块的预设自定义接口类PSAMStatusController的实现PSAMStatusControllerImpl的广播接收方法onReceive(),当onReceive()被调用时,获取到传入参数Intent,Intent的action为
android.intent.action.PSAM_STATE_CHANGED,调用系统方法intent.getStringExtra(“ps”),得到String类型的第一PSAM卡状态;
[0136] 一 种可能的 实 施方式 中 ,Sys te mUI 模块 预设自 定义 接口 类PSAMStatusController,是控制PSAM状态的一个接口类,PSAMStatusController的实现类PSAMStatusControllerImpl继承自广播,该接口类的第一成员变量第一PSAM状态视图PSAMStatusView1包含内部类第一图标状态IconState1,IconState1包含属性visible和icon,分别控制是否显示第一PSAM卡图标和第一PSAM卡图标的样式;PSAMStatusView1还包含一个更新图标方法updateIcon(),SystemUI模块通过调用updateIcon()更新
IconState1的visible属性和icon属性;
[0137] 进一步地,当updateIcon()被调用时:
[0138] 若第一PSAM卡状态为第三预设状态,则更新IconState1的visible属性为false,更新IconState1的icon属性为NULL。
[0139] 可选的,步骤204中还包括:当接收到第一PSAM卡状态改变的广播时,Settings模块更新PSAM卡开关菜单的状态;
[0140] 一种可能的实施方式中,当启动显示PSAM卡开关菜单时,Settings模块注册监听第一PSAM卡状态改变的系统广播,当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,Settings模块的预设广播接收方法被调用,Settings模块接收到第一PSAM卡状态改变的系统广播,获取该广播带有的第一PSAM卡状态,当关闭显示PSAM卡开关菜单时,Settings模块取消监听第一PSAM卡状态改变的系统广播;
[0141] 一种可能的实施方式中,当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,若PSAM卡开关菜单处于显示状态,自动回调Settings模块的预设自定义类PSAMStatusPreference的内部类MyBroadCast的广播接收方法onReceive();具体的,Settings模块的预设自定义类PSAMStatusPreference,用于实现PSAM卡开关菜单,它继承于系统开关菜单SwitchPreference, PSAMStatusPreference的内部类MyBroadCast还包含更新菜单方法updatePreference(),Settings模块通过调用updatePreference()更新PSAM卡开关菜单的状态;
[0142] 进一步地,当updatePreference()被调用时:
[0143] 若第一PSAM卡状态为第三预设状态,则更新PSAM卡开关菜单为不可点击状态。
[0144] 本实施例提供的PSAM卡自动识别和显示方法中还可以包括:在用户操作PSAM卡开关菜单页面的PSAM卡开关禁用PSAM卡时,执行以下步骤:
[0145] 步骤301,Settings模块向Telephony服务模块发送禁用PSAM卡通知;
[0146] 一种可能的实施方式中,步骤301具体为Settings模块调用Telephony服务模块提供的对外接口的类TelephonyManager的禁用PSAM卡接口disablePSAMCard()。
[0147] 步骤302,Telephony服务模块接收禁用PSAM卡通知,更新保存的第一PSAM卡状态为第四预设状态,组织并发送第一PSAM卡状态改变的系统广播,并向文件系统中创建的第一预设设备节点写入第四预设值,以通知系统驱动控制切换电路切换连接至应用处理器;
[0148] 一种可能的实施方式中,步骤302具体为Telephony服务模块提供的对外接口的类TelephonyManager的禁用PSAM卡接口disablePSAMCard()被调用时,更新第一预设成员变量PSAMStatus1的值为第四预设状态;第四预设状态例如为DISABLE。
[0149] 步骤303,当接收到第一PSAM卡状态改变的系统广播时:
[0150] SystemUI模块更新终端设备状态栏中实现的第一PSAM卡图标的显示状态;
[0151] Settings模块更新PSAM卡开关菜单页面的PSAM卡开关菜单的状态。
[0152] 本实施例中,SystemUI模块初始化时注册监听第一PSAM卡状态改变的系统广播,当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,SystemUI模块的预设广播接收方法被调用,SystemUI模块接收到第一PSAM卡状态改变的系统广播,获取该广播带有的第一PSAM卡状态;
[0153] 一种可能的实施方式中,SystemUI模块初始化时注册监听action为android.intent.action.PSAM_STATE_CHANGED的Intent,注册类型为常驻型;当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,自动回调SystemUI模块的预设自定义接口类PSAMStatusController的实现PSAMStatusControllerImpl的广播接收方法onReceive(),当onReceive()被调用时,获取到传入参数Intent,Intent的action为
android.intent.action.PSAM_STATE_CHANGED,调用系统方法intent.getStringExtra(“ps”),得到String类型的第一PSAM卡状态;
[0154] 一 种可能的 实 施方式 中 ,Sys te mUI 模块 预设自 定义 接口 类PSAMStatusController,是控制PSAM状态的一个接口类,PSAMStatusController的实现类PSAMStatusControllerImpl继承自广播,该接口类的第一成员变量第一PSAM状态视图PSAMStatusView1包含内部类第一图标状态IconState1,IconState1包含属性visible和icon,分别控制是否显示第一PSAM卡图标和第一PSAM卡图标的样式;PSAMStatusView1还包含一个更新图标方法updateIcon(),SystemUI模块通过调用updateIcon()更新
IconState1的visible属性和icon属性;
[0155] 进一步地,当updateIcon()被调用时:
[0156] 若第一PSAM卡状态为第四预设状态,则更新IconState1的visible属性为true,更新IconState1的icon属性为DISABLE形态图片。
[0157] 一种可能的实施方式中,当启动显示PSAM卡开关菜单时,Settings模块注册监听第一PSAM卡状态改变的系统广播,当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,Settings模块的预设广播接收方法被调用,Settings模块接收到第一PSAM卡状态改变的系统广播,获取该广播带有的第一PSAM卡状态,当关闭显示PSAM卡开关菜单时,Settings模块取消监听第一PSAM卡状态改变的系统广播;
[0158] 一种可能的实施方式中,当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,若PSAM卡开关菜单处于显示状态,自动回调Settings模块的预设自定义类PSAMStatusPreference的内部类MyBroadCast的广播接收方法onReceive();具体的,Settings模块的预设自定义类PSAMStatusPreference,用于实现PSAM卡开关菜单,它继承于系统开关菜单SwitchPreference, PSAMStatusPreference的内部类MyBroadCast还包含更新菜单方法updatePreference(),Settings模块通过调用updatePreference()更新PSAM卡开关菜单的状态;
[0159] 进一步地,当updatePreference()被调用时:
[0160] 若第一PSAM卡状态为第四预设状态,则更新PSAM卡开关菜单为关闭状态。
[0161] 本实施例提供的PSAM卡自动识别和显示方法中还可以包括:在用户操作PSAM卡开关菜单页面的PSAM卡开关启用PSAM卡时,执行以下步骤:
[0162] 步骤401,Settings模块向Telephony服务模块发送启用PSAM卡通知;
[0163] 一种可能的实施方式中,步骤401具体为Settings模块调用Telephony服务模块提供的对外接口的类TelephonyManager的启用PSAM卡接口enablePSAMCard()。
[0164] 步骤402,Telephony服务模块接收启用PSAM卡通知,更新保存的第一PSAM卡状态为第五预设状态,组织并发送第一PSAM卡状态改变的系统广播,并向文件系统中创建的第一预设设备节点写入第一预设值,以通知系统驱动控制切换电路连接至安全处理器;
[0165] 一种可能的实施方式中,步骤402具体为Telephony服务模块提供的对外接口的类TelephonyManager的启用PSAM卡接口enablePSAMCard()被调用时,更新第一预设成员变量PSAMStatus1的值为第五预设状态;第五预设状态例如为ENABLE。
[0166] 步骤403,当接收到第一PSAM卡状态改变的系统广播时:
[0167] SystemUI模块更新终端设备状态栏中实现的第一PSAM卡图标的显示状态;
[0168] Settings模块更新PSAM卡开关菜单页面的PSAM卡开关菜单的状态。
[0169] 本实施例中,SystemUI模块初始化时注册监听第一PSAM卡状态改变的系统广播,当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,SystemUI模块的预设广播接收方法被调用,SystemUI模块接收到第一PSAM卡状态改变的系统广播,获取该广播带有的第一PSAM卡状态;
[0170] 一种可能的实施方式中,SystemUI模块初始化时注册监听action为android.intent.action.PSAM_STATE_CHANGED的Intent,注册类型为常驻型;当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,自动回调SystemUI模块的预设自定义接口类PSAMStatusController的实现PSAMStatusControllerImpl的广播接收方法onReceive(),当onReceive()被调用时,获取到传入参数Intent,Intent的action为
android.intent.action.PSAM_STATE_CHANGED,调用系统方法intent.getStringExtra(“ps”),得到String类型的第一PSAM卡状态;
[0171] 一 种可能的 实 施方式 中 ,Sys te mUI 模块 预设自 定义 接口 类PSAMStatusController,是控制PSAM状态的一个接口类,PSAMStatusController的实现类PSAMStatusControllerImpl继承自广播,该接口类的第一成员变量第一PSAM状态视图PSAMStatusView1包含内部类第一图标状态IconState1,IconState1包含属性visible和icon,分别控制是否显示第一PSAM卡图标和第一PSAM卡图标的样式;PSAMStatusView1还包含一个更新图标方法updateIcon(),SystemUI模块通过调用updateIcon()更新
IconState1的visible属性和icon属性;
[0172] 进一步地,当updateIcon()被调用时:
[0173] 若第一PSAM卡状态为第五预设状态,则更新IconState1的visible属性为true,更新IconState1的icon属性为ENABLE形态图片。
[0174] 一种可能的实施方式中,当启动显示PSAM卡开关菜单时,Settings模块注册监听第一PSAM卡状态改变的系统广播,当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,Settings模块的预设广播接收方法被调用,Settings模块接收到第一PSAM卡状态改变的系统广播,获取该广播带有的第一PSAM卡状态,当关闭显示PSAM卡开关菜单时,Settings模块取消监听第一PSAM卡状态改变的系统广播;
[0175] 一种可能的实施方式中,当Telephony服务模块发送第一PSAM卡状态改变的系统广播后,若PSAM卡开关菜单处于显示状态,自动回调Settings模块的预设自定义类PSAMStatusPreference的内部类MyBroadCast的广播接收方法onReceive();具体的,Settings模块的预设自定义类PSAMStatusPreference,用于实现PSAM卡开关菜单,它继承于系统开关菜单SwitchPreference, PSAMStatusPreference的内部类MyBroadCast还包含更新菜单方法updatePreference(),Settings模块通过调用updatePreference()更新PSAM卡开关菜单的状态;
[0176] 进一步地,当updatePreference()被调用时:
[0177] 若第一PSAM卡状态为第五预设状态,则更新PSAM卡开关菜单为打开状态。
[0178] 本实施例中,如图2所示,前述终端设备还可设置有至少一个PSAM卡专用卡槽,PSAM专用卡槽通过7816接口与安全处理器进行通讯,本实施例提供的PSAM卡自动识别和显示方法还可以包括,当PSAM卡专用卡槽中有卡插入或拔除时,执行以下步骤:
[0179] 步骤501,PSAM读取模块执行PSAM卡检测,根据检测结果通过串口发送第二PSAM卡状态,第二PSAM卡状态为第一预设状态或第二预设状态或第三预设状态;
[0180] 本实施例中,PSAM读取模块执行PSAM卡检测,根据检测结果通过串口返回第二PSAM卡状态可具体为:PSAM读取模块启动PSAM卡检测,读取PSAM专用卡槽中卡片的信息,若PSAM卡读取模块成功读取到PSAM专用卡槽中卡片的信息,则通过串口发送第一预设状态;若PSAM卡读取模块读取PSAM 卡专用卡槽中卡片的信息失败,则通过串口发送第二预设状态;若PSAM卡读取模块未检测到卡片,则通过串口发送第三预设状态;
[0181] 一种可能的实施方式中,第一预设状态为READY,第二预设状态为ERROR,第三预设状态为ABSENT。
[0182] 步骤502,当终端服务模块通过串口接收到第二PSAM卡状态时,向Telephony服务模块传入第二PSAM卡状态;
[0183] 一种可能的实施方式中,终端服务模块通过Telephony服务模块提供的对外接口的类TelephonyManager的更新PSAM卡状态接口updatePSAMStatus()向Telephony服务模块传入第二PSAM卡状态。
[0184] 步骤503,Telephony服务模块接收到第二PSAM卡状态时,保存第二PSAM卡状态,组织并发送第二PSAM卡状态改变的系统广播;
[0185] 一种可能的实施方式中,Telephony服务模块提供的对外接口的类TelephonyManager的更新PSAM卡状态接口updatePSAMStatus()被调用时,Telephony服务模块获取到作为参数传入的第二PSAM卡状态,将第二PSAM卡状态保存到第二预设成员变量PSAMStatus2;
[0186] 本实施例中,第二PSAM卡状态改变的系统广播中带有第二PSAM卡状态;
[0187] 可选的,Telephony服务模块组织第二PSAM卡状态改变的系统广播之后还包括定义该广播为受保护的广播,接收该广播需要相应权限。
[0188] 步骤504,当接收到第二PSAM卡状态改变的系统广播时,SystemUI模块更新终端设备状态栏中实现的第二PSAM卡图标的显示状态。
[0189] 本实施例中,SystemUI模块初始化时注册监听第二PSAM卡状态改变的系统广播,注册类型为常驻型,当Telephony服务模块发送第二PSAM卡状态改变的系统广播后,SystemUI模块的预设广播接收方法被调用,SystemUI模块接收到第二PSAM卡状态改变的系统广播,获取该广播带有的第二PSAM卡状态;
[0190] 一种可能的实施方式中,当Telephony服务模块发送第二PSAM卡状态改变的系统广播后,自动回调SystemUI模块的预设自定义接口类PSAMStatusController的实现类PSAMStatusControllerImpl的广播接收方法onReceive();
[0191] 具体的,SystemUI模块的预设自定义接口类PSAMStatusController,是控制PSAM状态的一个接口类,PSAMStatusController的实现类PSAMStatusControllerImpl继承自广播,该接口类的第二成员变量第二PSAM状态视图PSAMStatusView2包含内部类第二图标状态IconState2,IconState2包含属性visible和icon,分别控制是否显示第二PSAM卡图标和第二PSAM卡图标的样式;PSAMStatusView2还包含一个更新图标方法updateIcon(),SystemUI模块通过调用updateIcon()更新IconState2的visible属性和icon属性;
[0192] 进一步地,当PSAMStatusView2的updateIcon()被调用时:
[0193] 若第二PSAM卡状态为第一预设状态,则更新IconState2的visible属性为true,更新IconState2的icon属性为READY形态图片;
[0194] 若第二PSAM卡状态为第二预设状态,则更新IconState2的visible属性为true,更新IconState2的icon属性为ERROR形态图片。
[0195] 若第二SAM卡状态为第三预设状态,则更新IconState2的visible属性为false,更新IconState2的icon属性为NULL。
[0196] 实施例三
[0197] 本实施例提供一种PSAM卡自动识别和显示装置,适用于设置有应用处理器和安全处理器的终端设备,且所述终端设备包括至少一个PSAM卡和SIM卡的共用卡槽,参见图4,该装置包括:
[0198] 调制解调器模块31,用于进行SIM卡的识别操作,向电话通讯服务模块32上报SIM卡的识别状态;
[0199] 电话通讯服务模块32,用于接收调制解调器模块31上报的SIM卡的识别状态,组织并发送SIM卡状态改变的系统广播;
[0200] 电话进程模块33,用于收到SIM卡状态改变的系统广播后,解析SIM卡状态改变的系统广播,当解析得到第一错误SIM卡状态时在文件系统中创建第一预设设备节点,向第一预设设备节点中写入第一预设值,以通知系统驱动控制共用卡槽的切换电路切换连接至安全处理器,向终端服务模块34发送设备节点已写入的消息;
[0201] 终端服务模块34,用于接收到设备节点已写入的消息后通过串口发送启动PSAM卡检测的指令;
[0202] PSAM读取模块35,用于通过串口接收到启动PSAM卡检测的指令时,执行PSAM卡检测,根据检测结果通过串口返回第一PSAM卡状态;
[0203] 终端服务模块34,还用于通过串口接收到第一PSAM卡状态时,向电话通讯服务模块32传入第一PSAM卡状态;
[0204] 电话通讯服务模块32,还用于接收到第一PSAM卡状态后,组织并发送第一PSAM卡状态改变的系统广播;
[0205] 该装置还包括状态栏模块36,用于当收到第一PSAM卡状态改变的系统广播时,更新终端设备状态栏中的第一PSAM卡图标的显示状态;
[0206] 上述调制解调器模块31、电话通讯服务模块32、电话进程模块33、终端服务模块34、状态栏模块36设置在终端设备的应用处理器,PSAM读取模块35设置在终端设备的安全处理器;终端设备上电时,PSAM卡和SIM卡共用卡槽的切换电路默认连接到终端设备的应用处理器。
[0207] 一种可能的实施方式中,电话进程模块33,还用于当解析得到第一错误SIM卡状态时在文件系统中创建第二预设设备节点,向第二预设设备节点中写入第二预设值;终端服务模块34,还用于接收到第一PSAM卡状态时向第二预设设备节点中写入第三预设值;电话进程模块33,还用于当解析SIM卡状态改变的系统广播得到第二错误SIM卡状态时,向终端服务模块34发送查询设备节点的消息;终端服务模块34,还用于接收到查询设备节点消息时读取文件系统中第二预设设备节点,若第二预设设备节点的值为第三预设值则生成第一PSAM卡状态,向电话通讯服务模块32传入第一PSAM卡状态,若第二预设设备节点的值是第二预设值则执行SIM卡的识别和访问。
[0208] 一种可能的实施方式中,PSAM读取模块35,还用于当检测到PSAM卡从PSAM卡和SIM卡共用卡槽拔除时,通过串口发送具体为第三预设状态的第一PSAM卡状态;电话通讯服务模块32,还用于当接收到具体为第三预设状态的第一PSAM卡状态时,向文件系统中第一预设设备节点写入第二预设值,以通知系统驱动控制PSAM卡和SIM卡共用卡槽的切换电路切换连接至应用处理器。
[0209] 一种可能的实施方式中,电话进程模块33,还用于解析当解析SIM卡状态改变的系统广播得到正确SIM卡状态时执行SIM卡的识别和访问。
[0210] 可选的,状态栏模块36初始化时注册监听第一PSAM卡状态改变的系统广播;当电话通讯服务模块32发送第一PSAM卡状态改变的系统广播后,自动回调状态栏模块36的预设自定义接口类的实现中的广播接收方法。
[0211] 一种可能的实施方式中,该装置还包括系统设置模块37,用于当收到第一PSAM卡状态改变的系统广播时,更新PSAM卡开关菜单的状态;
[0212] 进一步地,电话通讯服务模块32,还用于接收到第一PSAM卡状态后,保存接收到的第一PSAM卡状态;系统设置模块37初始化时,从电话通讯服务模块32取得电话通讯服务模块32保存的第一PSAM卡状态,根据取得的第一PSAM卡状态确定PSAM卡开关菜单的状态;
[0213] 一种可能的实施方式中,系统设置模块37,还用于向电话通讯服务模块32发送禁用PSAM卡通知;电话通讯服务模块32,还用于接收到禁用PSAM卡通知后更新保存的第一PSAM卡状态为第四预设状态,组织并发送第一PSAM卡状态改变的系统广播,并向文件系统中第一预设设备节点写入第二预设值,以通知系统驱动控制PSAM卡和SIM卡共用卡槽的切换电路切换连接至应用处理器;
[0214] 一种可能的实施方式中,系统设置模块37,还用于向电话通讯服务模块32发送启用PSAM卡通知;电话通讯服务模块32,还用于接收到启用PSAM卡通知后更新保存的第一PSAM卡状态为第五预设状态,组织并发送第一PSAM卡状态改变的系统广播,并向文件系统中第一预设设备节点写入第一预设值,以通知系统驱动控制PSAM卡和SIM卡共用卡槽的切换电路切换连接至安全处理器;
[0215] 可选的,当启动显示PSAM卡开关菜单时,系统设置模块37注册监听第一PSAM卡状态改变的系统广播,当电话通讯服务模块32发送第一PSAM卡状态改变的系统广播后,系统设置模块37的预设广播接收方法被调用,系统设置模块37接收到第一PSAM卡状态改变的系统广播,获取该广播中的第一PSAM卡状态;当关闭显示PSAM卡开关菜单时,系统设置模块37取消监听第一PSAM卡状态改变的系统广播。
[0216] 一种可能的实施方式中,上述终端设备还包括至少一个PSAM卡的专用卡槽;PSAM读取模块35,还用于当PSAM卡的专用卡槽中有卡插入或拔除时,执行PSAM卡检测,根据检测结果通过串口发送第二PSAM卡状态;终端服务模块34,还用于通过串口接收到第二PSAM卡状态时,向电话通讯服务模块32传入第二PSAM卡状态;电话通讯服务模块32,还用于接收到第二PSAM卡状态后,组织并发送第二PSAM卡状态改变的系统广播;状态栏模块36,还用于当接收到第二PSAM卡状态改变的系统广播时,更新终端设备状态栏中的第二PSAM卡图标的显示状态。
[0217] 本实施例中涉及的技术特征的具体限定可引用描述方法的实施例中的记载,在此也不再赘述。
[0218] 本技术领域技术人员可以理解,本申请公开的装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0219] 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
[0220] 本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0221] 可选的,本申请还提供了一种电子设备,该电子设备包括处理器、存储器及存储在该存储器上并可被处理器执行的指令,处理器执行该指令以实现本申请实施例中描述的方法。当然,存储器也可以不在该设备中。该设备可以是一个独立的设备也可以是支持该设备实现上述方法的芯片、芯片系统或处理器等。该设备是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中描述的方法。
[0222] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。当计算机程序被加载执行时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。例如,所述计算机指令可以从一个基站、注册装置、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个基站、注册装置、服务器或数据中心进行传输。所述计算机可读存储介质可以是注册装置能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、 或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
[0223] 上述本申请序号仅仅为了描述,不代表实施例的优劣。
[0224] 尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。