簡體   English   中英

無法在Cordova Android應用中訪問加速度計

[英]Cannot access accelerometer in Cordova Android app

我試圖在我的Cordova [3.3.1-0.1.2] Android應用程序中訪問navigator.accelerometer,並且在Android [4.0.3]模擬器中運行時navigator.accelerometer是未定義的。

設置Cordova應用時,我遵循了本教程: http : //www.techariv.in/2013/08/creating-android-hello-cordova.html

我在<widget>內的www / config.xml中添加了以下內容:

<plugin name="Accelerometer" value="org.apache.cordova.AccelListener" />

我也嘗試過

<plugin name="Accelerometer" value="CDVAccelerometer" />

另外,我在www / js / index.js中具有以下內容(它確實加載了執行):

onDeviceReady: function() {
    app.receivedEvent('deviceready');

    alert(navigator.accelerometer);
    navigator.accelerometer.getCurrentAcceleration(function() {
        alert('success');
    }, function() {
        alert('fail');
    });
},

當應用運行時,我會收到一條警告,其中僅顯示“未定義”。 均未調用getCurrentAcceleration()的回調。

請注意,onDeviceReady()通過

document.addEventListener('deviceready', this.onDeviceReady, false)

(這是標准的“ Hello World”應用程序,除了添加了警報和加速計回調外,沒有任何修改。

將插件記錄添加到config.xml不足以將插件添加到cordova應用程序。 應該安裝一些本機代碼,並通過cordova或phonegap cli鏈接到導航器。

這是一個指南

請參閱訪問功能部分。

您可能會注意到,cordova cli將為您處理config.xml的修改。

無論如何,我建議您使用這個不錯的grunt插件 它可以通過PluginID或URL輕松管理phonegap插件。 您可以在此處找到有關此類情況的插件信息,並在此處找到更多插件

這就是我能夠在android上訪問加速度計的方式。

安裝設備運動插件cordova plugin add org.apache.cordova.device-motion

然后在onDeviceReady回調中:

window.addEventListener("devicemotion", deviceMotionUpdate, true);

function deviceMotionUpdate(e){
    console.log("x: ", e.accelerationIncludingGravity.x);
    console.log("y: ", e.accelerationIncludingGravity.y);
    console.log("z: ", e.accelerationIncludingGravity.z);
}

如果您沒有遠程調試設置,則可能需要將console.logs更改為警報。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM