LocationProvider.getInstance()总是返回null

问题描述:

在我的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

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(如果可能的话)(应该在模拟器用户指南中)