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);

源码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,165评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,273评论 19 139
  • 古人学问无遗力,少壮工夫老始成。纸上得来终觉浅,绝知此事要躬行。——陆游《冬夜读书示子聿》 小弟初学安卓,该文算是...
    RMaple_Qiu阅读 2,976评论 0 5
  • 樊老师是工龄30年的乡村教师,她没有菜地,家里却总是不缺时令蔬菜。就好像如今的其他老师一样,大小节日从不缺...
    阿依达阅读 3,114评论 4 3
  • “妈妈,我明天放假”“那你就买票回来”;我在熟悉的小镇下车看到爸爸骑车在等我;踏进家门看见妈妈准备的丰盛的晚...
    日暮里阅读 3,421评论 2 0

友情链接更多精彩内容