在真正的 gps 应用程序也 运行 之前,Nativescript 位置模块不会执行

Nativescript location module doesn't perform until real gps apps are also running

A simple gps location app,直接来自文档 LocationManager 示例,在 3 种不同的 android 手机上测试时效果不佳。请自己尝试。

不显示高度、速度和方向等属性。如果它有数据、wifi 和 gps,它的性能最好。更糟糕的是,如果它有 wifi 和 gps。最糟糕的是,如果它只有 gps。

但是,如果像 GPS Status 或 Google 地图这样的应用程序也是 运行,那么它响应良好并且可用。那些其他应用程序正在解锁 TNS 位置模块没有的东西。

我在 repo 中提出了一个问题。

正在查看 the source code, the startLocationMonitoring method takes up to 3 arguments: onLocation, onError and options, where the options object can have the desiredAccuracy property

If desiredAccuracy is set to enums.Accuracy.high, it'll set the Android accuracy to ACCURACY_FINE。默认值为 ACCURACY_COARSE,这与您得到的结果一致。

那么您可能想要做的是:

1 - 在您的 main-page.js 中导入 enums:

var enums = require('ui/enums');

2 - 添加对象作为 startLocationMonitoring 调用的第三个参数,here:

{
    desiredAccuracy: enums.Accuracy.high
}

Nb: 这只是看源代码,还没有测试过。