资讯详情

Android(kotlin)使用距离传感器实现自动息屏亮屏,仿手机通话

文章目录

  • 前言`
  • 一、加息屏亮屏权限
  • 二、距离传感器代码示例
  • 三、使用方法


前言`

app添加视频通话或长时间视频拍摄功能,为了节约电力优化,需要类似于手机通话状态,当手机靠近人体时自动屏幕,面对手机时自动屏幕.


一、加息屏亮屏权限

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

无需动态申请亮屏权限.

二、距离传感器代码示例

代码如下(示例):

/** * @author: WangYT * @date: {2022/4/16} * @remake: 距离传感器 */ @SuppressLint("InvalidWakeLockTag") object ProximityUtil { 
             private val context = BaseApplication.INSTANCE     private val sensorManager = context.getSystemService(Context.SENSOR_SERVICE) as SensorManager     private val proximity = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)     private val pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager     private val wakeLock = pm.newWakeLock(32, "ProximityWake")      fun create() { 
                 sensorManager.registerListener(sensorListener, proximity, SensorManager.SENSOR_DELAY_NORMAL)     }      private val sensorListener = object : SensorEventListener { 
                 @SuppressLint("WakelockTimeout")         override fun onSensorChanged(event: SensorEvent?) { 
                     if (event == null) return             val dis = event.values[0]
            //等于0代表很近
            if (dis <= 0) { 
        
                if (!wakeLock.isHeld) { 
        
                    wakeLock.acquire()
                }
                LogUtil.logDebug("离人体很近")
            } else { 
        
                LogUtil.logDebug("离人很远啊")
                if (!wakeLock.isHeld) { 
        
                    wakeLock.setReferenceCounted(false)
                    wakeLock.release()
                }
            }
        }

        override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) { 
        
        }

    }

    fun destroy() { 
        
        sensorManager.unregisterListener(sensorListener)
        if (wakeLock.isHeld) { 
        
            wakeLock.release()
        }
    }

三、使用方式

打开:

ProximityUtil.create()

关闭:

ProximityUtil.destroy()

标签: 用什么传感器来控制距离距离传感器会感应亮屏

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台