HTML5地理位置无法在Android上使用仅GPS(位置服务模式)

时间:2015-01-08 07:58:53

标签: android cordova gps

我的HTML5地理定位存在问题。

我构建了一个应用并尝试获取用户的位置,我打开了GPS,尝试将模式设置为仅GPS(因为下面的代码适用于高精度模式(使用无线,移动网络,GPS))但是没有运气。

这是我的代码:

如果我设置

enableHighAccuracy: false

错误将是:禁用GPS提供商

navigator.geolocation.getCurrentPosition(onSuccess, onError, { enableHighAccuracy: false, maximumAge: 3000, timeout: 150000 });

如果我设置

enableHighAccuracy: true

错误将是:超时(因为它耗尽150000毫秒)

我也使用watchPosition代替getCurrentPosition,但没有区别。

请帮助我,因为我不能强迫用户使用高精度模式。

谢谢!!

3 个答案:

答案 0 :(得分:2)

我有类似的问题。我在Nexus 4设备上测试我的应用程序,结果发现问题是设备没有SIM卡。意思是没有Cell数据。

事实证明,没有Sim卡/蜂窝数据,GPS芯片将无法工作。 在其他Android设备上测试后(使用工作的SIM卡),它运行良好。

@wdev是对的,常规的GPS芯片通常需要10多分钟来修复地理位置。这就是为什么大多数设备在A-GPS上进行中继,将时间缩短到几秒钟,但需要某种连接(蜂窝或wifi)。

如果您有兴趣,this Wikipedia article explains A-GPS

希望这有助于某人。

答案 1 :(得分:1)

GPS定位需要花费大量时间,特别是在室内。有时甚至是不可能的。您可以使用https://play.google.com/store/apps/details?id=com.chartcross.gpstest&hl=fr之类的应用来检查您的代码是否存在问题或GPS修复本身。

您有两种选择:

  • 要求用户激活低精度
  • 使用非常高的maximumAge并希望用户最近进行了地理定位

答案 2 :(得分:0)

我们确实在Android手机上遇到以下问题: -在某些手机上,api可以正常运行 -在某些手机(Android 7.0)上,其行为是:

  • 如果在启动基于Cordova的应用程序的那一刻,其他使用GPS的应用程序正在后台运行:无论启用了高精度地理定位还是启用了“ just device”,新启动的Cordova地理定位似乎都可以正常工作。
  • 如果我们在设置中启用GPS时启动cordova应用程序,但现在没有其他应用程序正在使用地理定位(在启动cordova应用程序时gps处于禁用状态)-cordova应用程序无法正确检索位置。它似乎无法自行激活gps设备。
  • 即使cordova无法激活gps,我们也确实看到cordova应用程序出现在最近请求地理定位的应用程序列表中
  • 提示是:如果在启动Cordova应用程序之前任务栏上可以看到地理位置“ pin”,则一切正常。如果没有,它将不起作用。