android 使用距离传感器让屏幕自动息屏 您所在的位置:网站首页 手机近距离传感器怎样设置 android 使用距离传感器让屏幕自动息屏

android 使用距离传感器让屏幕自动息屏

2024-07-15 08:34| 来源: 网络整理| 查看: 265

记录一下最近做的自动息屏,原理是根据手机距离传感器来判断是否息屏

1.mainfest中权限注册

2.onCreate方法中对电源与传感器管理器进行初始化

@SuppressLint("InvalidWakeLockTag") private void initSenor() { localPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); wakeLock = localPowerManager.newWakeLock(32, "MyPower"); mSensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); }

其中powerManager.newWakeLock方法表示不同的wakelock操作对象

各种锁的类型对CPU 、屏幕、键盘的影响: PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。

SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯

SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯

FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度

ACQUIRE_CAUSES_WAKEUP:正常唤醒锁实际上并不打开照明。相反,一旦打开他们会一直仍然保持(例如来世user的activity)。当获得wakelock,这个标志会使屏幕或/和键盘立即打开。一个典型的使用就是可以立即看到那些对用户重要的通知。

ON_AFTER_RELEASE:设置了这个标志,当wakelock释放时用户activity计时器会被重置,导致照明持续一段时间。如果你在wacklock条件中循环,这个可以用来减少闪烁

 

3.在onResume中进行传感器注册

if (sensorMnager!=null){ //注册传感器 第一个参数为距离监听器,第二个是传感器类型,第三个是延迟类型 sensorManager.registerListener(this,mSensor,SensorManager.SENSOR_DELAY_NORMAL); }

4.接口实现:

@Override public void onSensorChanged(SensorEvent event) { float[] its = event.values; if (its != null && event.sensor.getType() == Sensor.TYPE_PROXIMITY) { // 经过测试,当手贴近距离感应器的时候its[0]返回值为0.0,当手离开时返回1.0 if (its[0] == 0.0) {// 贴近手机 if (wakeLock.isHeld()) { return; } else { wakeLock.acquire();// 申请设备电源锁 } } else {// 远离手机 if (wakeLock.isHeld()) { return; } else { wakeLock.setReferenceCounted(false); wakeLock.release(); // 释放设备电源锁 } } } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { }

5.释放资源

@Override protected void onDestroy() { super.onDestroy(); if (sensorManager != null) { sensorManager.unregisterListener(this);// 注销传感器监听 } if (wakeLock != null) { if (wakeLock.isHeld()) wakeLock.release(); //释放电源锁 wakeLock = null; } if (localPowerManager != null) { localPowerManager = null; } }

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有