簡體   English   中英

通過Android中的Javascript訪問加速度計?

[英]Access accelerometer via Javascript in Android?

有沒有辦法在Android的瀏覽器上使用Javascript訪問加速度計數據? 我知道它支持“onorientationchange”,但我想得到一切。

澄清:我問的是如何在網站上做到這一點,而不是原生應用。

從ICS,Android 4.0開始,您可以通過JavaScript事件監聽器使用“devicemotion”事件來訪問加速度計數據。 請參閱W3C文檔,了解如何訪問它 - http://dev.w3.org/geo/api/spec-source-orientation.html

注 - W3C文檔標題以“設備方向”命名,但規范確實包含“devicemotion”事件文檔。

對此線程進行更新。

HTML5讓別人這樣做。 檢測加速度計是否存在很容易。

    if (window.DeviceMotionEvent == undefined) {
        //No accelerometer is present. Use buttons. 
        alert("no accelerometer");
    }
    else {
        alert("accelerometer found");
        window.addEventListener("devicemotion", accelerometerUpdate, true);
    }

在您定義為接收加速度計事件的函數中,您可以查看accelerationIncludingGravity成員。

function accelerometerUpdate(e) {
   var aX = event.accelerationIncludingGravity.x*1;
   var aY = event.accelerationIncludingGravity.y*1;
   var aZ = event.accelerationIncludingGravity.z*1;
   //The following two lines are just to calculate a
   // tilt. Not really needed. 
   xPosition = Math.atan2(aY, aZ);
   yPosition = Math.atan2(aX, aZ);
}

更多信息可以在這里找到: http//dev.w3.org/geo/api/spec-source-orientation.html

您可以嘗試使用PhoneGap ,它提供API以從javascript訪問加速度計。

這里是文檔。

如果您嘗試從服務器上托管的網頁(通過WebView集成到本機應用程序中的網頁)訪問加速度計,那么加速度計數據現在似乎不適用於Android。 您可以在此處找到更詳細的評估: http//www.mobilexweb.com/blog/android-froyo-html5-accelerometer-flash-player

您可能還想查看此SO帖子: 使用JavaScript在瀏覽器中檢測Android手機的旋轉

如果我正確地閱讀文檔,您可以設置一個類(在Java / Android中),它提供公共函數中所需的加速度計功能。

然后使用addJavascriptInterface調用為webview設置一個javascript界面​​,這使得該類中的公共函數可以在javascript中調用。

在網絡瀏覽器中看到這篇文章flash.sensors.Accelerometer在Android上 ,似乎加速計數據可用於閃存。 因此,一個可能的解決方法(至少對於具有閃存的設備)將是一個小型閃存小程序,它為您抓取數據。

聽起來像是一個黑客,但聽起來仍然比用flash制作整個東西更好

暫無
暫無

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

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