2010-01-16 176 views
4

我正在嘗試開發使用J2ME來檢測室內設備的移動應用程序。由於GPS無法在室內檢測到移動設備。所以我正在尋找使用位置基地與細胞ID。任何人都可以給我一些關於這個方法的指導嗎?檢測室內移動設備(J2ME)

opencellid.org提供了一個免費的來源,用於使用小區ID來檢測移動設備。基於它們的API,它需要輸入IMSI。但我無法檢索IMSI,因爲它需要製造商/運營商域權限才能這樣做。

順便說一句,我來自新加坡,使用星和作爲服務提供商和測試我的N97的迷你程序。不使用任何這些信息都有幫助。

圍繞它的任何其他方式,因爲旁邊的想法使用單元格編號??任何幫助將不勝感激...

+0

我看不到的地方IMSI要求記錄在OpenCellId API中。除了HLR和SIM卡之外,任何人都不知道IMSI,那它有什麼用處? – Tobu 2010-01-16 14:11:41

+0

嗨,感謝您的回覆。 這是因爲我從 http://www.easywms.com/easywms/?q=en/node/3589找到了一個例子。 從示例中,它基本上從IMSI代碼中提取MCC和MNC。所以我認爲我需要IMSI。是否有另一種獲取MCC和MNC信息的方法? – Nivek 2010-01-17 03:17:24

回答

2

有沒有簡單的方法來檢測,如果某人是'室內'。

你可以使用GPS來檢測,當有人在室內通過信號的損失,但你還是沒有辦法知道,如果他們根本沒有信號,或者如果他們實際上是在門。

在這種情況下手機三角測量幾乎沒用,因爲它不夠準確。看着我手機的谷歌地圖,它甚至不能告訴我所在的街道,只是一個粗略的想法,我在500米以內。

如果建築物內有Wifi接入點,那麼這些可能是檢測人在室內的最佳方式。如果某個建築物中的每個無線接入點的數據庫都得到了編譯,Wifi接入點就可以工作.....

有關更多信息,請參閱http://www.skyhookwireless.com/!從developer.nokia.com

public String getIMSI() { 
    String out = ""; 
    try { 
     out = System.getProperty("IMSI"); 
     if (out == null || out.equals("null") || out.equals("")) { 
      out = System.getProperty("phone.imsi"); 
     } 
     if (out == null || out.equals("null") || out.equals("")) { 
      out = System.getProperty("com.nokia.mid.mobinfo.IMSI"); 
     } 
     if (out == null || out.equals("null") || out.equals("")) { 
      out = System.getProperty("com.nokia.mid.imsi"); 
     } 
     if (out == null || out.equals("null") || out.equals("")) { 
      out = System.getProperty("IMSI"); 
     } 
     if (out == null || out.equals("null") || out.equals("")) { 
      out = System.getProperty("imsi"); 
     } 
    } catch (Exception e) { 
     return out == null ? "" : out; 
    } 
    return out == null ? "" : out; 
} 

採取

0

代碼,但是這需要津貼所以你有AFAIK與諾基亞證書來簽名。 和設置的MIDlet-權限com.nokia.mid.mobinfo.IMSI

你可能想嘗試

String mcc = System.getProperty("com.nokia.mid.countrycode"); 
String mns = System.getProperty("com.nokia.mid.networkid"); 

代替 IIRC那些更容易閱讀