Проблемы с акселерометром

Я делаю приложение, которое будет использовать в качестве ресурса акселерометр. Я запрограммировал его на HTML5 и JavaScript, а затем протестировал приложение, и оно давало разные значения на разных смартфонах.

Я тестировал в Samsung Galaxy IV Sony Xperia E. Оба смартфона тестировались одновременно на плоском столе.

Значения Sony Xperia E:

X: 0

Z: 0,07 ~ 0,15 (нестабильно)

Z: 2,45

Значения Samsung Galaxy IV:

X: -0,53

Y: 0,05 ~ 0,09 (нестабильный)

Z: 9,46

У меня есть учитель, который сказал мне, что проблема в гравитации.

Как это можно исправить? Как?

<script type="text/javascript" charset="utf-8">

// The watch id references the current `watchAcceleration`
var watchID = null;

// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);

// device APIs are available
//
function onDeviceReady() {
    startWatch();
}

// Start watching the acceleration
//
function startWatch() {

    // Update acceleration every 3 seconds
    var options = { frequency: 300 };

    watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
}

// Stop watching the acceleration
//
function stopWatch() {
    if (watchID) {
        navigator.accelerometer.clearWatch(watchID);
        watchID = null;
    }
}

// onSuccess: Get a snapshot of the current acceleration
//
function onSuccess(acceleration) {
    var element = document.getElementById('accelerometer');
    element.innerHTML = 'Acceleration X: ' + acceleration.x         + '<br />' +
                        'Acceleration Y: ' + acceleration.y         + '<br />' +
                        'Acceleration Z: ' + acceleration.z         + '<br />' +
                        'Timestamp: '      + acceleration.timestamp + '<br />';
}

// onError: Failed to get the acceleration
//
function onError() {
    alert('onError!');
}

</script>
 <div id="accelerometer">Waiting for accelerometer...</div>

0 ответов

Другие вопросы по тегам