2

我想为我的 j2me 应用程序的注册过程生成普遍唯一的 id。我遇到了以下方法

  1. 设备的 IMEI 编号在 Java ME 中获取 IMEI 和 IMSI这种方法不适用于大多数设备。对于大多数型号来说,从 Midlet 获取 IMEI 的问题并不容易。

  2. 蓝牙设备地址获取蓝牙地址 问题 需要蓝牙 API 支持,并且会限制应用程序可以在其上运行的设备数量。

  3. UUID 类问题需要蓝牙 API,因为它在 javax.bluetooth 包中相同的概率

我公司为他们的android应用程序使用的注册过程如下

  1. 客户手机将使用 SMS 将公司提供的 IMEI 号码和 Token 发送到服务器
  2. 服务器将向客户手机发送许可证密钥,该密钥将存储在客户手机中

我必须对 j2me 应用程序遵循相同的方法

一种解决方案是通过 SMS 从服务器获取唯一 ID。但公司使用上述注册程序。

是否有任何其他方法可以用于注册我的应用程序,或者有什么方法可以克服上述问题。

4

2 回答 2

2

我同意@funkybro 的观点,即服务器提供的具有唯一 ID 的 Jad 密钥可以解决该问题。但如果不可能,我会根据移动时间和哈希码创建一个 ID。

long time = System.currentTimeMillis();
StringBuffer id = new StringBuffer(Long.toString(time, 16).toUpperCase());
id.append(Integer.toHexString(new Object().hashCode()).toUpperCase());

如果此 ID 重复,则注册过程将失败,并要求应用程序提供新 ID。

于 2012-07-20T19:43:16.173 回答
1

您可以在部署时将服务器生成的唯一 ID 放在 jad 中。

于 2012-07-20T19:09:42.330 回答