美文网首页高级UI
安卓距离传感器

安卓距离传感器

作者: A大心 | 来源:发表于2019-12-16 21:10 被阅读0次

    最近项目中需要检测距离传感器是否可用,具体效果如下:

    效果图

    相对还是非常简单的直接调取api就ok,直接展示代码:

        权限:

    <uses-permission android:name="android.permission.WAKE_LOCK" />

    1.首先获取sensorManager 

    sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

    mSensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);

    //息屏设置

    mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);

    wakeLock = mPowerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, TAG);

    2.在Activity的onRsume中去注册传感器

    //注册传感器,先判断有没有传感器

    if (mSensor != null)

    sensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);

    3.实现SensorEventListener接口

    implements SensorEventListener

    4.实现onSensorChanged和onAccuracyChanged方法

    在onSensorChanged()方法中写入以下代码:

        if (event.values[0] == 0.0) {

            //关闭屏幕

            if (!wakeLock.isHeld()){

                    wakeLock.acquire();

        }    else {

            //唤醒设备

        if (wakeLock.isHeld())

                    wakeLock.release();

        }

    5.传感器取消监听和释放息屏

    在OnDestory()中写入一下代码:

    //传感器取消监听

    sensorManager.unregisterListener(this);

    //释放息屏

    if (wakeLock.isHeld())

        wakeLock.release();

        wakeLock = null;

        mPowerManager = null;

    基本到这就可以检验距离传感器是否可用,说简单点就是相当于我们打电话时把手机放耳边会息屏,离开亮屏这么一个操作,还是很简单的。

    相关文章

      网友评论

        本文标题:安卓距离传感器

        本文链接:https://www.haomeiwen.com/subject/dsxjnctx.html