android怎么判断手机重力感应是否开启

android怎么判断手机重力感应是否开启,第1张

ndroid中检测重力感应变化大致需要下面几个步骤:

1) 得到传感器服务 getSystemService(SENSOR_SERVICE)

得到一个SensorManager,用来管理分配调度处理Sensor的工作,注意它并不服务运行于后台,真正属于Sensor的系统服务宏尺是SensorService,终端下#service list可以看到sensorservice: [android.gui.SensorServer]。

2) 得到传感器类型 getDefaultSensor(Sensor.TYPE_GRAVITY)

当然还有各种千奇百怪的传感器蔽岁高,可以查阅Android官网API或者源码Sensor.java。

3) 注册监听器 SensorEventListener

应用程序打开一个监听接口,专门处理传感器的数据,这个监听机制比较重要,被雀轮系统广泛使用。

4) 实现监听器的回调函数 onSensorChanged, onAccuracyChanged

var con = document.getElementById("con")

 

(function(){

    // 监听运动传感事件,查看是否支持硬件运动

    if (window.DeviceMotionEvent) {

        window.addEventListener('devicemotion', deviceMotionHandler, false)

    } else {

        alert("您的设备不支持硬件调用")

    }

 

    // 变量初始化

    var x = 0,

     y = 0,

     z = 0,

    lastX = 0,

    lastY = 0,

    lastZ = 0,

curTime = 0,

lastTime = 0,

diffTime = 0,

    speed = 0

 

    // 设置一个阀值

    var SHAKE_THRESHOLD = 800 // 设定摇晃的阈值为600 运行相应 *** 作

 

    /*

     * 功能:测算三个方向重力加速度,达到一定值进行相应 *** 作

     * 作者:HTML5学堂、刘国利、陈能堡

     *

     */

    function deviceMotionHandler(eventData){

        var acceleration = eventData.accelerationIncludingGravity

 

        // 获取当前时间

        curTime = new Date().getTime()

        // 计算时间差,当这个差值大于一定值执行计算三个方向的速度

        if ((curTime - lastTime) > 100) {

            // 记录上一次的时间

            diffTime = curTime - lastTime

            lastTime = curTime

 

            // 获取当前三个方向的值

            x = acceleration.x

            y = acceleration.y

            z = acceleration.z

 

    渣槐        // 计算速度,为了防止出现负数,进行绝对值

            speed = Math.abs((x + y + z - lastX - lastY - lastZ) / 早告diffTime * 8000)

            if (speed > SHAKE_THRESHOLD) {

                alert("我实现摇一摇了")

            }

 

         如睁友   // 记录上一次三个方向的值

            lastX = x

            lastY = y

            lastZ = z                    

        }

    }

})()

资料来源HTML5学堂。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12355370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存