2016-03-22 97 views
1

我一直在試驗科爾多瓦的加速度計插件,並且有一個問題,到目前爲止我一直無法在Android上修復。在clearWatch方法中使用motionID來停止watchAcceleration科爾多瓦加速度計插件觀察加速問題

更多信息可以在這裏找到cordova-plugin-device-motion docs

var motionID = null; 


function startAccelerometer() { 
var refreshRate = { 
    frequency: 50 
}; 
motionID = navigator.accelerometer.watchAcceleration(
    gotMotion, onMotionError, refreshRate); 
} 

然後使用clearWatch()功能來阻止它我打電話

function stopAcclererometer() { 

navigator.accelerometer.clearWatch(motionID); 
$("#acclData").empty(); 
} 

的問題似乎是,clearWatch不清除motionID如果startAccelerometer()是不止一次地呼叫,或者如果沒有首先清除它而創建新的motionID

任何幫助,非常感謝。

回答

0

這是一個相當簡單的修復,但我仍然想知道是否有更清晰的方法來解決問題。我設法通過附加一個簡單的計數到混合中並在已達到條件時退出,即按下開始,然後在停止時清除計數。

if (count > 0) { 
     return; 
    } else if (count === 0) { 
     startAccelerometer(); 
    } 
});