Android音視頻通話中靠近黑屏離開亮屏。

音頻通話過程中,考慮到靠近耳朵,為了避免誤觸,需要在靠近的時候關(guān)閉屏幕。大部分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有兩個回調(diào),分別是onSensorChangedonSensorChanged,前者是傳感器檢測到的數(shù)據(jù)的變化,后者是精度的變化。這里我們用到了前者。在回調(diào)回來時,判斷靠近的距離,來關(guān)閉或者打開屏幕,代碼如下:

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

        float value = sensorEvent.values[0];
        isPickUp = value < sensorEvent.sensor.getMaximumRange();
       //打開或者關(guān)閉屏幕
       if (listener != null){
          listener.onPickupDetected(isPickUp);
       }
    }

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

     }
};

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

manager.unregisterListener(sensorEventListener);

源碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,326評論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • 古人學問無遺力,少壯工夫老始成。紙上得來終覺淺,絕知此事要躬行?!懹巍抖棺x書示子聿》 小弟初學安卓,該文算是...
    RMaple_Qiu閱讀 436評論 0 5
  • 樊老師是工齡30年的鄉(xiāng)村教師,她沒有菜地,家里卻總是不缺時令蔬菜。就好像如今的其他老師一樣,大小節(jié)日從不缺...
    阿依達閱讀 474評論 4 3
  • “媽媽,我明天放假”“那你就買票回來”;我在熟悉的小鎮(zhèn)下車看到爸爸騎車在等我;踏進家門看見媽媽準備的豐盛的晚...
    日暮里閱讀 549評論 2 0

友情鏈接更多精彩內(nèi)容