0

我的钱包小程序需要执行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”部分,它应该是:

描述 长度
Alpha 标识符标签 1
长度(X)
字母标识符 X

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

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

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

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

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

4

1 回答 1

0

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

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

于 2022-02-07T18:37:05.487 回答