2011-03-18 122 views
0

在我的Java ME應用程序中,LocationProvider.getInstance(null)總是在模擬器中返回null。LocationProvider.getInstance()總是返回null

應用程序處於早期狀態,所以我沒有嘗試過真正的手機。

我相信,我讀過關於Location API的每篇文章,但是我仍然不明白,爲什麼它發生在我身上。

它可以在不同的項目中正常工作,在相同的模擬器上具有相同的設置。

下面的代碼:

if(currentLp == null) 
{ 
    try 
    { 
     System.err.println("nope"); 
     currentLp = LocationProvider.getInstance(null); 
    } catch (LocationException ex) 
    { 
      System.err.println("Ooops!"); 
    } 
} 

CLDC-1.1, MIDP-2.1, Location API 1.0上DefaultCLDCPhone01從SDK3.0

+0

你正在使用哪個模擬器?它實際上提供了一個LocationProvider嗎?哪個「不同的項目」能夠「正常工作」?你是否在你的模擬器安裝上親自運行這些項目並看到它們工作? – funkybro 2011-03-18 08:05:32

+0

我寫了,我用的是DeafultCLDCPhone01。根據JSR293,如果它不提供,它會拋出異常。 並更新 - 它開始在CalmshellCldcPhone上工作。而不是在其他項目中使用DefaultCLDCPhone。 – 2011-03-18 08:30:14

回答

0

CLDC-1.1,MIDP-2.1,位置API 1.0 DefaultCLDCPhone01從SDK3.0

LAPI 1.0 - JSR 179。在此版本規範中,如果符合所定義條件的LocationProvider無法返回,但其他支持的可用或暫時不可用的不符合條件的提供者,則LocationProvider.getInstance將返回空值。「

...如果它不提供,它會拋出異常,根據JSR293

哎呀JSR293?這是LAPI 2.0而不是1.0。無論它指定了什麼,它與你的案例無關,因爲你寫的是它支持早期的版本規範。對於你的情況,使用JSR 179.或者配置DefaultCLDCPhone以支持JSR 293(如果可能的話)(應該在模擬器用戶指南中)