2012-07-20 90 views
2

我想爲我的j2me應用程序的註冊過程生成通用唯一的ID。我碰到下面的方法爲在J2ME中生成唯一的ID

  1. IMEI沒有設備Getting IMEI and IMSI in Java ME這種方法不會對大多數設備的工作。對於大多數模型來說,IMEI的問題並不容易從Midlet中獲得。

  2. 藍牙設備地址Getting Bluetooth Address 問題需要支持藍牙API,並且會限制應用程序可以運行的設備數量。

  3. UUID類 問題極品藍牙API,因爲它是在javax.bluetooth包相同的概率

他們的Android應用使用我公司的註冊過程如下

  1. 客戶可移動的意志使用SMS將公司提供的IMEI號和令牌發送到服務器
  2. 服務器將發送到客戶手機的許可證密鑰,將存儲在客戶手機中

,我必須遵循J2ME應用程序

一種解決方案可以通過手機短信獲得唯一的ID從服務器相同的方法。但公司使用上述註冊流程。

是否有我可以用我的registraing應用程序或任何其他計算策略有沒有什麼辦法來克服上述問題。

回答

1

您可以在部署時將一個服務器生成的唯一ID放入jad中。

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。

+0

謝謝!優雅的解決方 – crowmagnumb 2014-02-21 21:48:51