在我的Java ME应用程序中,LocationProvider.getInstance(null)总是在模拟器中返回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 :(得分:0)
CLDC-1.1,MIDP-2.1,来自SDK3.0的DefaultCLDCPhone01上的位置API 1.0
LAPI 1.0 - JSR 179。在此版本规范中,LocationProvider.getInstance
返回null“如果无法返回满足定义条件的LocationProvider,但有其他支持的可用或暂时不可用的提供程序不符合条件。”
......根据JSR293
,如果它没有提供,它将抛出异常
oops JSR293?这是LAPI 2.0
而非1.0
。无论它指定什么,它都与您的案例无关,因为在您编写时,它支持早期版本规范。对于您的情况,请使用JSR 179.或者配置 DefaultCLDCPhone 以支持JSR 293(如果可能的话)(应该在模拟器用户指南中)