Android音视频通话中靠近黑屏离开亮屏。

音频通话过程中,考虑到靠近耳朵,为了避免误触,需要在靠近的时候关闭屏幕。大部分Android手机上有各种各样的传感器,这里就用到了距离传感器。

下面的代码可以获取到传感器对象,注册添加接口。

manager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
if (manager != null){
    mProximitysensor = manager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
}

注册:

manager.registerListener(sensorEventListener,mProximitysensor,SensorManager.SENSOR_DELAY_FASTEST);

sensorEventListener有两个回调,分别是onSensorChangedonSensorChanged,前者是传感器检测到的数据的变化,后者是精度的变化。这里我们用到了前者。在回调回来时,判断靠近的距离,来关闭或者打开屏幕,代码如下:

SensorEventListener sensorEventListener = new SensorEventListener() {
     @Override
     public void onSensorChanged(SensorEvent sensorEvent) {

        float value = sensorEvent.values[0];
        isPickUp = value < sensorEvent.sensor.getMaximumRange();
       //打开或者关闭屏幕
       if (listener != null){
          listener.onPickupDetected(isPickUp);
       }
    }

     @Override
     public void onAccuracyChanged(Sensor sensor, int i) {

     }
};

最后在不需要使用的时候,一定要及时释放掉。

manager.unregisterListener(sensorEventListener);

源码

你可能感兴趣的:(Android音视频通话中靠近黑屏离开亮屏。)