在此thread MSohm说“GPS服务选项不会打开或关闭GPS”。这意味着如果设备具有内置GPS接收器,那么代码就像这样
LocationProvider provider = LocationProvider.getInstance(null);
无论GPS服务选项如何,都不应该返回 null 。
但是如果我在Curve 8310(4.5.0)和Storm 9530(4.7.0)模拟器(都有内置GPS接收器)上尝试上面的代码,那么我得到 null 如果GPS服务选项设置为位置关闭。如果我将GPS服务选项更改为位置开启,那么我会得到一个非空的LocationProvider,然后我就可以获得locatoin等。
这是模拟器的错误吗?谁能说这对真实设备有用呢?
更新
我刚刚获得了在真实设备上测试的结果(Storm)。令人惊讶的是,真实的设备行为与模拟器上的相同。我很迷惑。 MSohm说“GPS服务选项不会打开或关闭GPS”,但看起来它可以打开/关闭GPS。任何人都可以发表评论吗?
答案 0 :(得分:1)
我的经验告诉我这不是错误
您实际上可以在GPS选项下的Blackberry选项中打开和关闭位置。
我推荐的是,在声明LocationProvider检查它是否为null之后。如果它为空,则向用户发送一条消息,告诉他GPS位置已关闭,并且必须先将其打开才能使用GPS。
您也可以告诉他在哪里更改此设置。
您在真实设备上会遇到相同的行为,所以我认为这是最好的方法。
我在曲线8530上进行了测试。
请记住,在运行模拟器时,您必须在模拟器的窗口菜单中启用GPS,这可能是您在模拟器上获得null LocationProvier的原因