过去一周,我在一个奇怪的情况下苦苦挣扎。我正在尝试删除一个applet,并且我收到0x6985作为删除命令的响应。
场景:
Applet在我的生态系统中如何相互连接?
问题场景:
SIM卡在手机中的情况
当服务器发送X小程序的删除命令时,作为响应,我得到0x6985。
我调用Y小程序,并检查Y的缓冲区中存在哪些数据,这些数据负责X接收的呼叫的责任。在那里,从未收到来自X的呼叫。
使用读卡器在非移动状态下的情况
使用PCSC阅读器,将删除命令发送到X。AppletX成功删除。
Y小程序的缓冲区数据确认已从X小程序接收到呼叫。
[我的观察:我尝试了所有可能的方法来完成此任务,但每次都失败。小程序X和Y的上限文件是相同的,即在移动电话中和通过读卡器使用。我觉得电话管理器存在一些问题,因为我在这里找不到其他人,但我缺乏电话管理器的经验。非常感谢您对此主题的任何帮助。
如果使用不同的卡,可能会在实现上有所不同。通常,只有在没有其他Applet对其引用的情况下,才应删除该Applet。即使if在删除时删除引用是一个有效的选项,我也想知道OS制造商是否总是会正确处理该部分:您仅在选择删除后才调用uninstall
,并且您仅在您知道没有更多引用的情况下将其删除-相当不错的捕获22。
问题也可能是使用了Applet X(甚至可能是Y)的实例之一。如果是这种情况,那么删除也将不可用。我不确定您的卡实施是否选择两个上下文;这些不是多核野兽。
最终调试6985很难。 ISO 7816状态字更多地是关于语法而不是语义。他们只会给您最少的信息。 6985等效于“运行时错误”,是的,恐怕您会花费很多时间进行调试。