【问题标题】:How to make TAG_ALPHA_IDENTIFIER empty not to ask user for a confirmation如何使 TAG_ALPHA_IDENTIFIER 为空而不要求用户确认
【发布时间】:2022-02-09 00:02:41
【问题描述】:

我的钱包小程序需要执行 PLAY TONE 等操作。但它需要提示“是或否?”来自用户。 AFAIK,是 TAG_ALPHA_IDENTIFIER 负责的。但是,如果我在下面尝试此代码,它仍然会要求用户确认,但现在带有“@”文本。如何完全摆脱用户确认?

尝试 1. 失败并出现 NullPtrException

proHdlr.appendTLV(ToolkitConstants.TAG_ALPHA_IDENTIFIER, null, (short)0, (short)0);
proHdlr.send();

尝试2。提示'@@'

proHdlr.appendTLV(ToolkitConstants.TAG_ALPHA_IDENTIFIER, (byte)0, (byte)0);
proHdlr.send();

尝试 3. 提示 '@'

proHdlr.appendTLV(ToolkitConstants.TAG_ALPHA_IDENTIFIER, (byte)0);
proHdlr.send();

尝试4.提示默认文本

byte[] ALPHA_MSG = {};
proHdlr.appendTLV(ToolkitConstants.TAG_ALPHA_IDENTIFIER, ALPHA_MSG, (short)0, (short)ALPHA_MSG.length);
proHdlr.send();

根据ETSI 102.223,“8.2 Alpha identifier”部分,应该是:

Description Length
Alpha identifier tag 1
Length(X) Y
Alpha identifier X

文档中也有“默认文本”,但是由于“5.3.7 文本属性”需要存在 Alpha 标识符,所以默认文本不应该打扰,对吧?

在本文档的“6.4.5 PLAY TONE”部分,第 45 页它说:

如果 alpha 标识符由 UICC 提供且为空数据对象(即长度 = '00' 且无值部分),则终端不应向用户提供任何信息;

这就是我需要的。我应该如何用 ProactiveHandler 做 Java?我所有的 Google 搜索都以 Alpha Identifier 的一些文本/菜单标题结束。

如何摆脱用户确认并在没有它的情况下执行主动操作?

【问题讨论】:

    标签: javacard sim-card globalplatform sim-toolkit


    【解决方案1】:

    a) 尽量不传递任何数据,即省略 proHdlr.appendTLV(ToolkitConstants.TAG_ALPHA_IDENTIFIER 行。

    b) 行为可能与电话相关或更具体的调制解调器相关。查看基于 MediaTek 的产品、基于 Qualcomm 的产品和 iPhone,然后比较结果。

    【讨论】:

    • 我猜是 b) 可能出于安全原因,一些供应商默认插入默认文本供用户确认。我想没有办法绕过它。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多