Phonegap Accelerometer только вызывает Error Callback - PullRequest
1 голос
/ 20 декабря 2011

это мой код:

function onDeviceReady() {
    console.log("Device Ready");
    startWatch();

};

function startWatch() {

    // Update acceleration every 5 seconds
    var options = { frequency: 5000 };
    watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
};



function onSuccess(acceleration){

    console.log('Acceleration X: ' + acceleration.x + 
       'Acceleration Y: ' + acceleration.y + 
       'Acceleration Z: ' + acceleration.z + 
       'Timestamp: '      + acceleration.timestamp);
};

function onError(){
    console.log("Acceleration Error occured");
};

Я тестирую его на 2 телефонах Android (Samsung Galaxy Nexus GT-I9250, Android 4.0 и Huawei Ideos X3, Android 2.3.3), с выходов на консоль Iзнаю, что оба вызывают только Callback Callback, но почему?

Я не могу найти причину этого в Google, поэтому, пожалуйста, помогите, если у вас есть идея.

Ответы [ 3 ]

0 голосов
/ 20 декабря 2011

Может быть, потому что вы передаете ссылку, которая не существует, на ваш вызов watchAccelerometer ()?

Вы передаете onError, но имя вашего обработчика - accelerometerError

0 голосов
/ 21 декабря 2011

Вот мысль. Я не проверял это (мой мобильный девелопер дома), но мне кажется, что вам может потребоваться сообщить устройствам Android, что вы хотите использовать акселерометр в своем манифесте Android.

<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />

У вас есть этот параметр в вашем XML-файле манифеста?

0 голосов
/ 20 декабря 2011

У вас может быть проблема с синхронизацией.

Вам следует попробовать следующее, которое успешно работает на моем HTC Evo, или опубликовать все приложение:

<!DOCTYPE HTML>
<html>
  <head>
    <meta name="viewport" content="width=320; user-scalable=no" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>PhoneGap</title>
      <script type="text/javascript" charset="utf-8" src="phonegap-1.3.0.js"></script>
      <script type="text/javascript" charset="utf-8">


function onDeviceReady() {
    console.log("Device Ready");
    startWatch();

};

function startWatch() {

    // Update acceleration every 5 seconds
    var options = { frequency: 5000 };
    watchID = navigator.accelerometer.watchAcceleration(onSuccess, accelerometerError, options);
};



function onSuccess(acceleration){

    alert('Acceleration X: ' + acceleration.x + 
       'Acceleration Y: ' + acceleration.y + 
       'Acceleration Z: ' + acceleration.z + 
       'Timestamp: '      + acceleration.timestamp);
};

function accelerometerError(){
    alert("Acceleration Error occured");
};

function init() {
    document.addEventListener("deviceready", onDeviceReady, true);
}
</script>

  </head>
  <body onload="init();" id="stage" class="theme">

  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...