2010-08-07 27 views
2

在此thread中,MSohm说“GPS服务选项不打开或关闭GPS”。这意味着,如果设备有内置GPS接收器,那么这样的代码在BlackBerry上,如果GPS服务选项设置为位置OFF,则LocationProvider为空

LocationProvider provider = LocationProvider.getInstance(null); 

应该不会返回无论GPS服务选项。如果我在Curve 8310(4.5.0)和Storm 9530(4.7.0)模拟器(都有内置GPS接收器)上尝试上面的代码,那么我会得到null如果GPS服务选项设置为位置OFF。如果我将GPS服务选项更改为位置ON,那么我得到一个非null LocationProvider,然后我可以获得定位等。

这是模拟器的错误吗?任何人都可以说如何在真实设备上工作?

UPDATE:

我刚刚得到真实设备(暴雨)的测试结果。令人惊讶的是,真实的设备行为与我在模拟器上的行为相同。我很困惑。 MSohm说:“GPS服务选项不打开或关闭GPS”,但看起来像是打开/关闭GPS。任何人都可以提出意见吗?

回答

1

我的经验告诉我,这是没有错误

实际上,你可以打开和关闭切换位置在黑莓选项,根据GPS选项。

我会推荐的是,声明LocationProvider后检查它是否为空。如果它为空,则向用户发送一条消息,告诉他GPS位置已关闭,并且必须先打开它才能使用GPS。

你也可以告诉他在哪里改变这个设置。

您在真实设备上获得相同的行为,所以我认为这是最好的方法。

我测试了这一个曲线8530

请记住,运行模拟器时,您必须启用仿真器的窗口菜单GPS,这可能是为什么你得到一个空的理由LocationProvier在模拟器

+0

谢谢,库罗,为您的答案。我确实检查LocationProvider为null,并提醒用户转到设备GPS选项以将位置设置为ON。这一点与BB论坛管理员MSohm所说的相矛盾,所以我不确定我的结果。现在,看起来我可以信任它。 – 2010-08-18 07:21:54