Я начинаю использовать акселерометр в приложениях для Android, использующих Nativescript + Angular, и у меня возникает следующая проблема.
Я использовал следующий пример .
В которой шаг за шагом объясняется, как создать простую игру-лабиринт.Но когда я использую приложение на разных устройствах, они ведут себя по-разному, и мне приходится вручную изменять значения xAcc и yAcc.
// Start accelerometer events 1 second after the word is created.
setTimeout(function() {
accService.startAccelerometerUpdates((data) => {
var xAcc = -data.x * 0.003;
var yAcc = data.y * 0.003;
gravity.setAcceleration({ x: xAcc, y: yAcc });
})
}, 1000);
Я тестировал приложение на разных планшетах, и на каждом из нихмодификация этих значений должна быть сделана.Я нашел три типа конфигурации
Тип 1
var xAcc = data.x * 0.003;
var yAcc = -data.y * 0.003;
Тип 2
var xAcc = -data.x * 0.003;
var yAcc = -data.y * 0.003;
Тип 3
var xAcc = data.y * 0.003;
var yAcc = -data.x * 0.003;
Я пытался использоватьПлагин Accelerometer Advanced, но на планшетах, которые имеют только акселерометр при запуске приложения, возвращается ошибка, так как это подключение прослушивает разные датчики.
Есть ли способ получить ориентацию осей акселерометра?