2009-12-29 138 views
1

我想创建J2ME应用程序,其中应用程序只能与安装期间使用的SIM卡一起使用。在SIM卡(GSM)上更改应用程序现在应该可以工作。 为了实现这一点,我想到了将SIM卡签名并将其保存在持久存储中。在申请的每一个开始,签名都可以被验证。任何想法如何实现这一点。 在此先感谢J2ME SIM卡更改检测

回答

0

我相信这是不可能的。如果可以使用特定的电话,那么通用方式将无法实现。

0

对于美国的ATT,对于J2ME应用程序,手机将“CarrierDeviceId”嵌入到Jad文件中。每张SIM卡都是独一无二的。所以,如果有类似的东西可供您使用,只需在应用程序第一次启动时阅读此Jad参数,将其保存为RMS或将其发送到服务器即可。现在,每次应用程序启动时,您都可以验证此号码是否匹配,从而验证SIM卡是否相同。

您也可以尝试获取与SIM卡绑定的电话号码,从而验证正在使用旧SIM卡。

1

您的J2ME应用程序可以使用'SATSA'(安全和信任服务API aka JSR177)与SIM通信。您可以发送'3GPP TS 11.11'命令来获取IMSI(选择文件DG_GSM,选择文件EF_IMSI,读取二进制文件)。缺点是:(1)你在相对较低的抽象层次(ISO7816-4层)上与SIM交谈;(2) (2)目前并非所有手机都支持JSR177。

+0

这将是一项艰巨的工作。我使用了一种方法在RMS中保存了一些密钥,使Java应用程序得以签名。因此,在首次登录时,应用程序将得到签名。同一个人无法登录到使用任何其他应用程序。将用户绑定到应用程序。我尝试将应用程序绑定到semcard。无论如何感谢您的支持 – openros 2010-02-06 13:41:33