在真正的 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: 这只是看源代码,还没有测试过。
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: 这只是看源代码,还没有测试过。