STK/UTK卡及其控制方法转让专利

申请号 : CN200810114748.9

文献号 : CN101299855B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 于胜军衣莉莉刘骞马吉力周松涛

申请人 : 中国联合网络通信集团有限公司

摘要 :

本发明涉及STK/UTK卡及其控制方法。该控制方法包括:步骤1,变量菜单更新成功后,判断更新会话密钥第一个字节是否在预设值的范围内,如果是,执行步骤2,否则按照现有流程执行;步骤2,依据更新会话密钥选择指定的应用菜单;步骤3,启动应用菜单。本发明使应用菜单的执行变被动为主动,用户不再需要通过繁琐的点击STK/UTK菜单入口才能调用应用菜单,只需等待应用菜单自动执行。

权利要求 :

1.STK/UTK卡的控制方法,其特征在于,包括:步骤1,变量菜单更新成功后,判断更新会话密钥第一个字节是否在预设值的范围内,如果是,执行步骤2,否则按照现有流程执行;

步骤2,在更新会话密钥最后两个字节中间增加一个全为0的字节,然后依据更新会话密钥的所述最后两个字节与中间增加的一个全为0的字节选择指定的应用菜单;

步骤3,启动应用菜单。

2.如权利要求1所述的控制方法,其特征在于,预设值的范围是[0x10,0x1F]。

3.如权利要求1所述的控制方法,其特征在于,步骤3中,还调用相应的变量菜单;和/或还包括步骤4,通知终端按照机卡交互指令进行操作。

4.STK/UTK卡,其特征在于,包括:

变量菜单更新成功指示模块,用于指示变量菜单更新成功;

判断模块,用于判断更新会话密钥第一个字节是否在预设值的范围内;

应用菜单选择模块,用于当更新会话密钥第一个字节在预设值的范围内时,选择指定的应用菜单并启用该应用菜单,其中STK/UTK卡在更新会话密钥最后两个字节中间增加一个全为0的字节,并且应用菜单选择模块依据更新会话密钥的最后两个字节以及中间增加的一个全为0的字节选择指定的应用菜单。

5.如权利要求4所述的STK/UTK卡,其特征在于,预设值的范围是[0x10,0x1F]。

6.如权利要求4所述的STK/UTK卡,其特征在于,还包括:变量菜单调用模块,用于供所述指定的应用菜单调用相应的变量菜单;和/或通知模块,用于通知终端按照机卡交互指令进行操作。

7.应用菜单执行系统,包括终端和STK/UTK卡,其特征在于,STK/UTK卡包括:变量菜单更新成功指示模块,判断模块和应用菜单选择模块;

变量菜单更新成功指示模块,用于指示变量菜单更新成功;

判断模块,用于判断更新会话密钥第一个字节是否在预设值的范围内;

应用菜单选择模块,用于当更新会话密钥第一个字节在预设值的范围内时,选择指定的应用菜单,并启用该应用菜单,其中STK/UTK卡在更新会话密钥最后两个字节中间增加一个全为0的字节,并且应用菜单选择模块依据更新会话密钥的最后两个字节以及中间增加的一个全为0的字节选择指定的应用菜单。

8.如权利要求7所述的应用菜单执行系统,其特征在于,还包括变量菜单调用模块和/或通知模块;

变量菜单调用模块,用于供所述指定的应用菜单调用相应的变量菜单;

通知模块,用于通知终端按照机卡交互指令进行操作。

说明书 :

STK/UTK卡及其控制方法

技术领域

[0001] 本发明涉及无线通信业务,尤其涉及STK/UTK(SIM TOOL KIT/UIM cardTool Kit)卡及其控制方法。

背景技术

[0002] 目前的STK/UTK卡可以根据需要,通过无线网络的短消息信道对卡内应用菜单和变量菜单进行添加、更新、删除,不受发卡前、后限制。STK/UTK卡中的应用菜单执行时,卡片根据应用菜单代码所表示的含义进行处理,当需要STK/UTK卡与用户或终端进行交互时,如要求终端显示内容给用户看,要求终端发送短信,拨打电话等,STK/UTK卡将组织机卡交互指令(即终端与卡片之间的交互指令)传递给终端,终端按照机卡交互指令的要求进行操作。
[0003] 当STK/UTK卡应用菜单的某些内容需要频繁更新时,可以将频繁更新的菜单数据和相对固定的菜单代码分离,菜单数据部分存储到变量菜单中,菜单代码部分则仍以普通应用菜单方式实现。用户使用菜单时,应用菜单的菜单代码对变量菜单中的菜单数据进行访问,以呈现一个完整的菜单内容。更新时,使用变量菜单更新命令更新变量菜单所存储的菜单数据。因为应用菜单调用了变量菜单,因此变量菜单的更新即可使应用菜单呈现给用户的菜单内容有所不同。
[0004] 变量菜单是一类特殊的菜单,它是用来保存变量的。这类菜单在STK/UTK卡上对用户是不可见的。菜单中的内容只有通过应用菜单对其的调用才能够看到。变量菜单与应用菜单均由3字节的菜单索引AID来唯一标识。当AID第2个字节的最高位为1时,代表变量菜单,当最高位为0时,代表应用菜单。作为变量菜单来说,第2个字节的剩余BIT用来作为变量菜单序号。当变量菜单与应用菜单使用相同的大类编号(第1个字节)和业务编号(第3个字节)时,我们称这个变量菜单和应用菜单是相关联的。一个应用菜单可以关联多个变量菜单,如:应用菜单014001就和变量菜单018001相关联,应用菜单014001和变量菜单019001也是关联的。
[0005] 一个变量菜单的编码格式如下:
[0006]描述 长度(字节) 值 M/O(M代
表必选
项,O代
表可选
项)
菜单索引AID 3 XX XX XX M
所需空间 2 (从菜单索引AID开始 M
计算到数据结束为完整
的应用空间长度)
更新会话密钥 8 用于变量菜单更新时核 M
查源地址号码和校验
码。
其中源地址号码从第二
字节开始后n字节,n
由第一个字节的低三比
特值确定。校验码为更
新会话密钥的后4字节。
变量预留长度 2 最大值为0x0100 M
变量1 X (LV格式) O
… … (LV格式) …
变量N X (LV格式) O
[0007] 每个变量预留空间的长度完全相同,由变量预留长度的值决定。
[0008] 每个变量均为LV格式,LV格式长度应等于变量预留长度的数值。L表示该变量在预留空间内有效数据的长度。V表示变量的具体内容,内容各字节的含义由应用定义。
[0009] 变量菜单中的变量由变量索引来唯一标识。变量索引从0x0000至0xFFFF,上表中变量1的变量索引即为0x0000。
[0010] 对变量菜单的操作有如下四种:
[0011] 1、变量菜单下载
[0012] 当卡内没有此变量菜单时,通过变量菜单下载指令将变量菜单存储到卡内。
[0013] 2、变量菜单更新
[0014] 使用变量菜单更新命令更新变量菜单的部分或全部变量的数据。
[0015] 3、变量菜单删除
[0016] 变量菜单的删除没有单独的命令,只有当其相关联的应用菜单被删除时,变量菜单才会被删除。
[0017] 4、变量菜单访问
[0018] 原有应用菜单是一个独立的整体,不需要对外部代码进行访问。引入变量菜单概念后,将原有应用菜单拆分成新应用菜单和变量菜单两部分单独代码,新应用菜单代码必须对变量菜单中的变量进行访问,才能实现原有应用菜单的功能。应用菜单对变量菜单中变量的访问,是通过GET_VAR和SET_VAR命令来实现的。
[0019] GET_VAR命令是应用菜单对变量菜单中变量进行读取访问的命令。应用菜单代码通过GET_VAR命令,指定需要读取的变量菜单的变量索引,读取后即可在应用菜单代码中进行使用。
[0020] SET_VAR命令是应用菜单对变量菜单中变量进行写入和更新的命令。应用菜单代码通过SET_VAR命令,指定需要写入或更新的变量菜单的变量索引,对变量的内容进行修改。
[0021] 引入变量菜单概念以后,原有应用菜单的功能可以使用应用菜单代码+变量菜单代码的形式来完成,也仍然可以按照原有应用菜单的方式编写完整独立的代码。当采用的是应用菜单代码+变量菜单代码时,由于应用菜单代码调用了变量菜单,所以只要更新了变量菜单中的变量,用户就可以体验到不同的应用菜单。当采用的是传统的独立应用菜单代码时,仍然按照原有的菜单更新命令对应用菜单代码进行更新,才能使用户体验的应用菜单有所不同。
[0022] 对变量菜单中的变量进行更新,除了可以在应用菜单中使用SET_VAR命令外,还可以通过独立的变量菜单更新命令来实现更新。使用SET_VAR命令必须要用户使用应用菜单才可以,而变量菜单更新命令则可以在用户不知情的情况下更新变量菜单的变量内容。在上表中可以看到,变量菜单的编码结构中包含更新会话密钥字段。当变量菜单被下载到卡片上时,这个更新会话密钥字段的内容就已经确定。若要改变这个更新会话密钥字段的内容,必须重新下载这个变量菜单。
[0023] 变量菜单更新命令数据格式中包含校验码字段,这个字段是用来校验此变量菜单更新命令是否具有合法性的。根据变量菜单中更新会话密钥字段第1个字节的不同取值,卡片在接收到变量菜单更新命令后完成不同的操作。
[0024] 下面列出变量菜单更新命令的数据格式。
[0025] 变量菜单更新命令的数据格式为:
[0026]
[0027] 每次更新变量菜单后,用户都必须点击STK/UTK菜单入口才能使用应用菜单,卡片(即STK/UTK卡)的应用菜单只能被动执行,等待用户点击。
[0028] 现有技术可以实现变量菜单更新后,用户即可使用一个不同内容的应用菜单。但无论最终的应用菜单代码是采用应用菜单代码+变量菜单代码方式还是原有的独立应用菜单代码方式,对代码进行更新以后,应用菜单的使用,都必须依赖用户的主动性,需要用户每次都点击操作手机界面,进入STK/UTK菜单入口来调用应用菜单,这是一个繁琐的过程。现有技术无法做到菜单数据(包括应用菜单和变量菜单)更新后自动调用应用菜单。

发明内容

[0029] 为了解决上述的技术问题,本发明提供了STK/UTK卡及其控制方法,其目的在于,变量菜单更新后,应用菜单能够主动执行。
[0030] 本发明提供了STK/UTK卡的控制方法,包括:
[0031] 步骤1,变量菜单更新成功后,判断更新会话密钥第一个字节是否在预设值的范围内,如果是,执行步骤2,否则按照现有流程执行;
[0032] 步骤2,依据更新会话密钥选择指定的应用菜单;
[0033] 步骤3,启动应用菜单。
[0034] 预设值的范围是[0x10,0x1F]。
[0035] 步骤2中,依据更新会话密钥的最后两个字节选择指定的应用菜单。
[0036] 步骤3中,还调用相应的变量菜单;和/或
[0037] 还包括步骤4,通知终端按照交互指令代码进行操作。
[0038] 本发明提供了STK/UTK卡,其特征在于,包括:
[0039] 变量菜单更新成功指示模块,用于指示变量菜单更新成功;
[0040] 判断模块,用于判断更新会话密钥第一个字节是否在预设值的范围内;
[0041] 应用菜单选择模块,用于当更新会话密钥第一个字节在预设值的范围内时,选择指定的应用菜单并启用该应用菜单。
[0042] 预设值的范围是[0x10,0x1F]。
[0043] 判断模块依据更新会话密钥的最后两个字节选择指定的应用菜单。
[0044] 还包括:
[0045] 变量菜单调用模块,用于供所述指定的应用菜单调用相应的变量菜单;和/或[0046] 通知模块,用于通知终端按交互指令代码要求进行操作。
[0047] 本发明提供了应用菜单执行系统,包括终端和STK/UTK卡,STK/UTK卡包括:变量菜单更新成功指示模块,判断模块和应用菜单选择模块;
[0048] 变量菜单更新成功指示模块,用于指示变量菜单更新成功;
[0049] 判断模块,用于判断更新会话密钥第一个字节是否在预设值的范围内;
[0050] 应用菜单选择模块,用于当更新会话密钥第一个字节在预设值的范围内时,选择指定的应用菜单,并启用该应用菜单。
[0051] 还包括变量菜单调用模块和/或通知模块;
[0052] 变量菜单调用模块,用于供所述指定的应用菜单调用相应的变量菜单;
[0053] 通知模块,用于通知终端按照交互指令代码进行操作。
[0054] 本发明使应用菜单的执行变被动为主动,用户不再需要通过繁琐的点击STK/UTK菜单入口才能调用应用菜单,只需等待应用菜单自动执行。

附图说明

[0055] 图1为本发明中提供的第一个STK/UTK卡控制流程图;
[0056] 图2为本发明中提供的第一个STK/UTK卡结构示意图;
[0057] 图3为本发明中提供的第二个STK/UTK卡控制流程图;
[0058] 图4为本发明中提供的第二个STK/UTK卡控制流程图。

具体实施方式

[0059] 本发明提出的解决上述问题的方法是:扩展变量菜单更新命令,将变量菜单更新命令的功能与激活一个应用菜单并执行的功能合二为一。通过对变量菜单中变量的更新来触发应用菜单主动执行,用户被动接受菜单执行。如果应用菜单代码中使用了变量菜单的变量,则每次更新变量菜单变量后,用户所看到的应用菜单均不相同。具体来讲,通过分析变量菜单,发现更新会话密钥第一个字节在0x10-0x1F之间的变量菜单需要向用户展示应用菜单,于是本发明就在变量菜单更新成功后,利用更新会话密钥分离出应用菜单索引,STK/UTK卡启动指定的应用菜单(应用菜单被启动后可调用或不调用变量菜单),并把应用菜单被激活执行后的首个机卡交互指令代码拼装起来传递给终端,通知终端按交互指令代码要求进行操作,如屏幕显示、发短信、打电话等。一般来说,应用菜单索引AID共有三个字节,但是中间的一个字节全都置0,因此更新会话密钥字段只使用了应用菜单索引AID的第一个和第三个字节来唯一标识应用菜单。STK/UTK卡需要在更新会话密钥最后两个字节中间增加一个全为0的字节,扩展为应用菜单的AID。
[0060] 变量菜单根据其编码数据中更新会话密钥的不同取值分为两大类,一类是此变量菜单更新后不需要执行应用菜单,另一类是在更新之后需要调用指定应用菜单执行。当变量菜单更新会话密钥的第一个字节非0x10-0x1F时,执行变量菜单更新命令后,不执行应用菜单。当变量菜单更新会话密钥的第一个字节为0x10-0x1F时,在成功更新变量菜单后,执行一个指定的应用菜单,所执行的应用菜单由更新会话密钥的最后两个字节表示。更新会话密钥倒数第二个字节表示所需执行应用菜单的大类编号,倒数第一个字节表示所需执行应用菜单的业务编号。
[0061] 接收到变量菜单更新命令后,STK/UTK卡根据相应变量菜单的编码数据中更新会话密钥的不同取值进行的具体操作如下:
[0062] 更新会话密钥第一个字节的值为0x00-0x07(低半字节的最高比特位为0)时,要求STK/UTK卡验证变量菜单更新命令数据中的源地址字段和校验码字段是否与更新会话密钥中的源地址字段和校验码字段相符。具体方法为:更新会话密钥第一字节的低三个比特表示保存源地址号码的有效字节数(n),从更新会话密钥第二字节至第n+1个字节为源地址号码后2n或2n-1(此时需要用F填充更新会话密钥第n+1个字节的高半字节)位,编码方式同电话号码本文件EFadn(注:没有数字类型TON和号码鉴别NPI)。校验码为更新会话密钥的后四个字节。卡片收到变量菜单更新命令后,先验证命令发送的源地址是否与更新会话密钥中保存的源地址号码相符;然后比较命令中的校验码是否与更新会话密钥中保存的校验码相符。若均相符,则对变量菜单中的变量进行更新。否则,不执行更新。例如1:更新会话密钥为“05 12 61 23 12 F3 56 78”(F为填充位),表示收到变量菜单更新命令时,要比较该命令中的源地址号码的后9个数字是否为“211632213”,同时,还要比较变量菜单更新命令数据中的校验码是否为“12 F3 56 78”,两个条件同时满足则对变量菜单中的变量进行更新,否则不执行更新。例如2:若更新会话密钥为“00 10 61 23 12 3F56
78”,当收到变量菜单更新命令时,由于第一字节的低三个比特为0,因此忽略源地址号码的比较,但验证变量菜单更新命令数据中的校验码是否为“123F 56 78”。
[0063] 更新会话密钥第一个字节的值为0x08-0x0F(低半字节的最高比特位为1)时,要求STK/UTK卡验证变量菜单更新命令数据中的源地址字段是否与更新会话密钥中的源地址字段相符,同时还要通过更新会话密钥字段和变量菜单更新命令中的命令参数字段计算MAC(Message Authentication Code,消息认证代码),截取所得结果的前四字节与变量菜单更新命令中的校验码字段比较,验证是否相符。具体方法为:更新会话密钥第一字节的低三个比特表示保存源地址号码的有效字节数(n),从更新会话密钥第二字节至第n+1个字节为源地址号码后2n或2n-1位,编码方式同EFadn(注:没有TON和NPI)。卡片收到变量菜单更新命令后,先验证命令发送的源地址是否与更新会话密钥中保存的源地址号码相符;然后使用变量菜单中的更新会话密钥和变量菜单更新命令中的命令参数字段计算MAC,截取MAC值的前四字节,与命令中的校验码比较是否相符。若均相符,则对变量菜单中的变量进行更新。否则,不执行更新。例如1:更新会话密钥为“0D 12 61 23 12 F3 5678”,表示收到变量菜单更新命令时,要比较该命令中的源地址号码的后9个数字是否为“211632213”,同时,还要使用此更新会话密钥和变量菜单命令中的命令参数字段计算MAC,并比较变量菜单更新命令数据中的校验码与所得MAC值的前四字节是否一致,两个条件同时满足则对变量菜单中的变量进行更新,否则不执行更新。例如2:若更新会话密钥为“08
10 61 23 12 3F 56 78”,则忽略源地址号码的比较,但仍需要使用此更新会话密钥和变量菜单命令中的命令参数字段计算MAC,并验证变量菜单更新命令数据中的校验码与所得MAC值的前四字节是否一致。
[0064] 更新会话密钥第一个字节的值为0x10-0x17(低半字节的最高比特位为0)时,要求STK/UTK卡验证变量菜单更新命令数据中的源地址字段和校验码字段是否与更新会话密钥中的源地址字段和校验码字段相符。若验证成功,且变量菜单的变量成功更新,则执行指定的应用菜单。具体方法为:更新会话密钥第一字节的低三个比特表示保存源地址号码的有效字节数(n),从更新会话密钥第二字节至第n+1个字节为源地址号码后2n或2n-1位,编码方式同电话号码本文件EFadn(注:没有TON和NPI)。校验码为更新会话密钥的后四个字节。更新会话密钥倒数第二个字节表示所需执行应用菜单的大类编号,倒数第一个字节表示所需执行应用菜单的业务编号。卡片收到变量菜单更新命令后,先验证命令发送的源地址是否与更新会话密钥中保存的源地址号码相符;然后比较命令中的校验码是否与更新会话密钥中保存的校验码相符。若均相符,则对变量菜单中的变量进行更新。否则,不执行更新。若变量菜单更新命令执行成功,卡片主动调用指定的应用菜单。若应用不存在,卡片返回9000。例如1:更新会话密钥为“15 12 61 23 12 F3 56 78”,表示收到变量菜单更新命令时,要比较该命令中的源地址号码的后9个数字是否为“211632213”,同时,还要比较变量菜单更新命令数据中的校验码是否为“12 F3 56 78”,两个条件同时满足,则对变量菜单中的变量进行更新,否则不执行更新。若变量菜单的变量更新成功,则执行56大类下编号为78的应用。若此应用不存在,卡片返回9000。若变量菜单的变量更新不成功,则不再执行指定应用菜单。例如2:若更新会话密钥为“10 10 61 23 12 3F 56 78”,表示忽略源地址号码的比较,但验证变量菜单更新命令数据中的校验码是否为“12 3F 56 78”。若验证失败,则不执行更新。若验证成功,则对变量菜单中的变量进行更新。若变量菜单的变量更新成功,则执行56大类下编号为78的应用。若此应用不存在,卡片返回9000。若变量菜单的变量更新不成功,则不再执行应用菜单。
[0065] 更新会话密钥第一个字节的值为0x18-0x1F(低半字节的最高比特位为1)时,要求STK/UTK卡验证变量菜单更新命令数据中的源地址字段是否与更新会话密钥中的源地址字段相符,同时还要通过更新会话密钥字段和变量菜单更新命令中的命令参数字段计算MAC,截取所得结果的前四字节与变量菜单更新命令中的校验码字段比较,验证是否相符。若验证成功,且变量菜单的变量成功更新,则执行指定的应用菜单。具体方法为:更新会话密钥第一字节的低三个比特表示保存源地址号码的有效字节数(n),从更新会话密钥第二字节至第n+1个字节为源地址号码后2n或2n-1位,编码方式同EFadn(注:没有TON和NPI)。更新会话密钥倒数第二个字节表示所需执行应用菜单的大类编号,倒数第一个字节表示所需执行应用菜单的业务编号。卡片收到变量菜单更新命令后,先验证命令发送的源地址是否与更新会话密钥中保存的源地址号码相符;使用变量菜单中的更新会话密钥和变量菜单更新命令中的命令参数字段计算MAC,截取MAC值的前四字节,与命令中的校验码比较是否相符。若均相符,则对变量菜单中的变量进行更新。否则,不执行更新。若变量菜单更新命令执行成功,卡片主动调用指定的应用菜单。若应用不存在,卡片返回9000。例如1:
更新会话密钥为“1D 12 61 23 12 F3 56 78”,表示收到变量菜单更新命令时,要比较该命令中的源地址号码的后9个数字是否为“211632213”,同时,还要使用此更新会话密钥和变量菜单命令中的命令参数字段计算MAC,并比较变量菜单更新命令数据中的校验码与所得MAC值的前四字节是否一致,两个条件同时满足则对变量菜单中的变量进行更新,否则不执行更新。若变量菜单的变量更新成功,则执行56大类下编号为78的应用。若此应用不存在,卡片返回9000。若变量菜单的变量更新不成功,则不再执行指定应用菜单。例如2:若更新会话密钥为“18 10 61 23 12 3F 56 78”,表示忽略源地址号码的比较,但仍需要使用此更新会话密钥和变量菜单命令中的命令参数字段计算MAC,并验证变量菜单更新命令数据中的校验码与所得MAC值的前四字节是否一致。若验证失败,则不执行更新。若验证成功,则对变量菜单中的变量进行更新。若变量菜单的变量更新成功,则执行56大类下编号为78的应用。若此应用不存在,卡片返回9000。若变量菜单的变量更新不成功,则不再执行应用代码。
[0066] 更新会话密钥第一个字节的值为其它值时,按照现有流程进行处理:即STK/UTK卡收到变量菜单更新命令后,不需要校验任何信息,直接对变量菜单中的变量进行更新。
[0067] 下面就一个天气预报的业务举例说明如何实现在更新变量菜单变量数据的同时主动执行应用菜单:
[0068] 业务需求:要求每天能将用户所在地区的最新天气预报自动显示给用户看。
[0069] 需求分析:天气预报内容每天都在改变,需要每天更新。要求自动显示给用户看,就不能让用户自己点击STK/UTK的入口,应能自动执行应用菜单。解决方案:
[0070] 使用变量菜单来存储天气预报信息,通过变量菜单更新命令来更新天气预报,同时执行一个显示天气预报的应用菜单,自动提示用户。
[0071] 因为只是完成显示的功能,因此所设计的菜单结构应为:
[0072]一级菜单 二级菜单 三级菜单 四级菜单
联通在信 联通信息 天气预报 显示“今天白天小雪,最高气温-3”
[0073] 最终代码包括应用菜单数据代码和变量菜单数据代码。
[0074] 应用菜单数据代码:
[0075] 150001:AID
[0076] 002F:所需空间
[0077] 098059296C14988462A5:菜单名称(天气预报)
[0078] FD 0000:应用变量
[0079] FA 0000:变量
[0080] 000000 16:CARD
[0081] FF 08 06:DO(SAVE_TO_TEMPVAR)
[0082] 01:操作类型(0:把缓冲区中Terminal Response数据存入参数1;1:把参数2中数据存入参数1,若参数2不存在,则参数1内容置为空)
[0083] 00:参数1_TEMPVAR索引
[0084] 1580020000:参数2_数据
[0085] FF 04 1B:DO(GET_VAR:把变量菜单中索引变量的内容复制到目的索引变量)[0086] 01:参数1(HEX数据。参数个数(≥1))
[0087] 01:参数2(目的变量起始索引。TEMPVAR索引或OTA变量索引)
[0088] 00:参数3(源变量起始索引。TEMPVAR索引、应用变量索引或OTA变量索引)[0089] 21 04:DISPLAYTEXT
[0090] 81:编码限定符(最高比特为1表示用户确认,否则自动清除;最低比特为1表示高优先级,否则为普通)
[0091] 0D:文本标识
[0092] 01:变量个数
[0093] 01:变量1
[0094] 变量菜单数据代码:
[0095] 158002:AID
[0096] 002F:所需空间
[0097] 1011111111111501:更新会话密钥
[0098] 0020:预留变量长度
[0099] 19084ECA5929767D59296674FF0C67009AD86C146E2900310039000000000000:变量0000(今天白天晴,最高气温19)
[0100] 从变量菜单数据的更新会话密钥可以看出,更新会话密钥第一个字节是0x10,表示在执行变量菜单更新命令时,应在更新完菜单数据后,执行指定应用菜单。所执行的应用菜单为15大类下编号01的应用,即AID为150001的天气预报应用。
[0101] 这样,将应用按照上述方案设计完成后,能够保证每次对变量菜单中的天气预报信息更新后,都可以直接显示给用户看,满足业务需求。
[0102] 本发明提供的STK/UTK卡的控制流程如图1所示,包括:
[0103] 步骤101,变量菜单更新成功;
[0104] 步骤102,判断更新会话密钥第一个字节是否大于或等于0x10,并且小于或等于0x1F,如果是,执行步骤104,否则执行步骤103;
[0105] 步骤103,按照现有流程执行;
[0106] 步骤104,根据更新会话密钥选择指定的应用菜单;
[0107] 步骤105,启动指定的应用菜单,并调用相应的变量菜单;
[0108] 步骤106,通知终端按交互指令代码要求进行操作,如屏幕显示、发短信、打电话等。
[0109] 本发明提供的STK/UTK卡如图2所示,包括:
[0110] 变量菜单更新成功指示模块201,用于指示变量菜单更新成功;
[0111] 判断模块202,用于判断更新会话密钥第一个字节是否在预设值的范围内;
[0112] 应用菜单选择模块203,用于当更新会话密钥第一个字节在预设值的范围内时,选择指定的应用菜单并启用该应用菜单;
[0113] 变量菜单调用模块204,用于供所述指定的应用菜单调用相应的变量菜单;
[0114] 通知模块205,用于通知终端按照机卡交互指令进行操作。
[0115] 当应用菜单仍然以独立完整的代码方式存储在STK/UTK卡片中时,虽然其不对其他变量菜单进行访问,但本发明仍然可以主动调用该应用菜单。
[0116] 具体的实现方式为:定义一个变量菜单,其更新会话密钥的第一个字节在0x10-0x1F之间,最后两个字节分别指明需要被调用的应用菜单的大类编号和业务编号,虽然这个应用菜单的代码中不对此变量菜单进行访问,但由于变量菜单的定义符合更新变量菜单后执行应用菜单的标准,则只要此变量菜单接收到变量菜单更新的指令,指令成功执行后,通过判断确定更新会话密钥的第一个字节在0x10-0x1F之间,卡片就会主动调用执行这个独立的应用菜单,并把应用菜单被激活执行后的首个机卡交互指令代码拼装起来传递给终端,通知终端按交互指令代码要求进行操作,如屏幕显示、发短信、打电话等。
[0117] 相应的流程如图3所示,包括:
[0118] 步骤101,变量菜单更新成功;
[0119] 步骤102,判断更新会话密钥第一个字节是否大于或等于0x10,并且小于或等于0x1F,如果是,执行步骤104,否则执行步骤103;
[0120] 步骤103,按照现有流程执行;
[0121] 步骤104,根据更新会话密钥选择指定的应用菜单;
[0122] 步骤305,启动指定的应用菜单;
[0123] 步骤106,通知终端按交互指令代码要求进行操作,如屏幕显示、发短信、打电话等。
[0124] 实现该流程的系统如图4所示,包括:
[0125] 变量菜单更新成功指示模块201,用于指示变量菜单更新成功;
[0126] 判断模块202,用于判断更新会话密钥第一个字节是否在预设值的范围内;
[0127] 应用菜单选择模块203,用于当更新会话密钥第一个字节在预设值的范围内时,选择指定的应用菜单并启用该应用菜单;
[0128] 通知模块205,用于通知终端按交互指令代码要求进行操作,如屏幕显示、发短信、打电话等。
[0129] 本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。