为啥地理定位在深度清理后停止在 Android Go 上运行?

Posted

技术标签:

【中文标题】为啥地理定位在深度清理后停止在 Android Go 上运行?【英文标题】:Why does geolocation stops working on Android Go after a deep clean?为什么地理定位在深度清理后停止在 Android Go 上运行? 【发布时间】:2019-04-24 13:59:24 【问题描述】:

一旦用户对设备进行深度清理(清除所有正在运行的应用程序),Cordova Geolocation 插件就会停止在 android Go 上运行。

我正在构建一个适用于 Android 的 Cordova 应用程序,该应用程序将安装在多个 Blackview A20 移动设备上。 Blackview A20 设备运行名为 Android Go 的精简版 Android。我正在使用 Cordova Geolocation 插件在使用应用程序时跟踪设备: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-geolocation/

一切正常,经度/纬度值被发送到我们的服务器进行保存。但是只要用户按下设备的“正在运行/活动应用程序”软按钮,然后按下(X)按钮关闭所有正在运行的应用程序并清理设备内存,然后再次运行应用程序,然后是地理定位插件经度和纬度均返回 0。据我所知,解决此问题的唯一方法是重新启动设备本身,这不是解决方案。

如果您在同一台设备上运行 Google Maps Go 应用程序,该问题似乎不会发生,因为 Google Maps Go 应用程序仍会在我四处移动时跟踪设备。这可能是由于 Google Maps Go 应用程序可能是原生 Android 应用程序而不是我正在构建的混合 Android 应用程序。此外,我正在构建的同一个应用程序在其他设备上也没有出现同样的问题(在运行 Android 7.0 的 Blackview BV8000 Pro 以及运行 Android 5.0 的三星 Galaxy S5 上进行了测试)。我尝试了按钮映射应用程序来阻止用户按下运行/活动应用程序按钮,但它仍然不能解决手头的问题。我还尝试了多个第三方插件来跟踪地理位置,但出现了同样的问题。

我不确定这个问题是由 Android Go、Cordova Geolocation 插件还是 Blackview A20 设备引起的。任何帮助表示赞赏。

navigator.geolocation.getCurrentPosition(onLocationFound, onLocationError, "timeout":TIMEOUT_GEO_LOCATION);

【问题讨论】:

【参考方案1】:

如果我理解正确的话;当您进行深度清理时,您必须再次从用户那里获取权限,或者转到应用设置并检查权限面板并手动切换位置权限。

【讨论】:

似乎不是问题。我在深度清理后检查了应用程序的位置权限仍然设置为启用。我尝试再次禁用和启用位置权限,但仍然没有成功。

以上是关于为啥地理定位在深度清理后停止在 Android Go 上运行?的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 地理定位在更新后停止工作

ionic vue 背景地理定位跟踪在 5 分钟后停止

Cordova 地理定位插件有时不工作

保持地理定位服务运行?

为啥地理定位给我的当前位置错误的导航器当前位置方法?

我的应用程序第二次没有初始化/地理定位插件