【问题标题】:Cordova geolocation plugin not getting location from GPS for AndroidCordova 地理定位插件无法从 Android 的 GPS 获取位置
【发布时间】:2015-04-15 09:35:06
【问题描述】:

在我的 Cordova 应用程序中,我试图从 GPS 获取用户的位置。为此,我使用Geolocation plugin。我需要每 10 秒后获取一次位置。我正在做类似的事情:

navigator.geolocation.getCurrentPosition(
                      $rootScope.onSuccessForLocation,
                      $rootScope.onErrorForLocation_High,
                      {maximumAge:600000, timeout:7000, enableHighAccuracy: true}
                      );

现在,当此代码运行时,它在回调方法中为我提供了位置,但它不是来自 GPS,因为当应用程序启动时,GPS 图标应该出现并开始在状态栏中闪烁。但它没有发生。 我有一个使用相同插件的旧应用程序。当我启动该应用程序时,GPS 图标开始闪烁。到目前为止我注意到的一件事是,在旧应用程序中,我可以在 android 项目中看到 Geolocation.java 文件,但即使我尝试在 Github 源文件夹中搜索它,最新插件中也没有这样的文件。现在,我不知道我身边缺少什么。有人知道发生了什么吗?

【问题讨论】:

    标签: android cordova gps geolocation


    【解决方案1】:

    他们使用 HTML5 地理定位实现而不是本机代码。 他们在 0.3.7 版插件中删除了 android java 代码

    ### 0.3.7 (Apr 17, 2014)
    * CB-6422: [windows8] use cordova/exec/proxy
    * CB-6212: [iOS] fix warnings compiled under arm64 64-bit
    * CB-5977: [android] Removing the Android Geolocation Code.  Mission Accomplished.
    * CB-6460: Update license headers
    * Add NOTICE file
    

    如果您想使用使用本机代码的旧版本插件,您可以像这样安装它

    cordova plugin add org.apache.cordova.geolocation@0.3.6
    

    【讨论】:

    • 还有一个问题:在没有可用互联网的情况下,如果更新的插件没有本机代码会发生什么?我的意思是当我尝试使用 enableHighAccuracy: true 获取位置时,HTML5 将如何响应?
    • 我想onErrorForLocation_High会在超时后被调用,因为它没有找到准确的位置,但没有尝试
    猜你喜欢
    • 2019-07-01
    • 2017-09-19
    • 1970-01-01
    • 2016-09-24
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    相关资源
    最近更新 更多