2015-06-30 2 views
0

A simple gps location app, прямо из документации. Пример LocationManager не работает, когда тестируется на 3 разных телефонах Android. Попробуйте сами.Модуль местонахождения Nativescript не работает до тех пор, пока не будут запущены реальные приложения gps

Свойства, такие как высота, скорость и направление, не отображаются. Он лучше всего работает, если у него есть данные, wifi и gps. Хуже, если он имеет Wi-Fi и GPS. Хуже, если он имеет только gps.

Однако, если приложение, например GPS Status или Google Maps, также работает, оно отвечает хорошо и доступно. Эти другие приложения отпирают то, что нет в модуле местоположения TNS.

Я сделал вопрос в repo.

ответ

1

Глядя на the source code, метод startLocationMonitoring занимает до 3-х аргументов: onLocation, onError и options, где в options object can have the desiredAccuracy property.

If desiredAccuracy is set to enums.Accuracy.high, он установит точность Android ACCURACY_FINE. Значение по умолчанию - ACCURACY_COARSE, что согласуется с результатами, которые вы получаете.

Так что, вероятно, вы хотите сделать, это:

1 - Импорт enums в вашем main-page.js:

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

2 - Добавить объект в качестве третьего параметра при вызове startLocationMonitoring, here:

{ 
    desiredAccuracy: enums.Accuracy.high 
} 

Nb: Это только от взгляда на исходный код, не проверял его.

+0

Похоже, что это сработает, чтобы установить: {желательноАктура: 3} – getsetbro

+0

Конечно. enums.Accuracy.high равно 3. Как видно из [enums.js] (https://github.com/NativeScript/NativeScript/blob/master/ui/enums/enums.ts#L73). Но поскольку существует «перечисление», хорошая практика заключается в том, чтобы ссылаться на него (например, что, если это число изменяется до 4, то вам не нужно менять код) –

Смежные вопросы