android模仿打电话期间手机靠近息屏,远离亮屏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013626215/article/details/79990782

由于项目有个在打电话时靠近时要息屏远离手机是要亮屏的需求,经过一顿google和百度都是说

**1.**要释放电源锁(mWakeLock.release())和获取电源锁(mWakeLock.acquire())来达到这样的效果,但是这样并不能像系统打电话的那要亮屏息屏。

**2.**又有人说是如下方法,但是这样需要获取系统权限,也放弃了

mPowerManager.goToSleep(SystemClock.uptimeMillis());
mPowerManager.wakeUp(SystemClock.uptimeMillis());

**3.**又有人说要mPolicyManager.lockNow();来锁定屏幕,这种也需要用户的授权,麻烦就没有尝试
以上方法参考地址

**4.**啰嗦了这么多下面说一下我自己的处理方式:

1.通过SensorManager来判断用户是远离还是靠近手机
2.动态调节屏幕亮度
3.显示黑色的遮罩层

提供个思路,代码就不贴了,如果有更好的方法求大佬指教!!!

demo下载地址

--------------2018.9.29分割线----------------------
最近做api适配发现在api >=21的时候系统提供了一个flag支持自动息屏亮屏的功能,只要将下面代码放入activity的onCreate()里面就行了,下面代码分享给大家:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  // api 21以上支持PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK,靠近自动黑屏,远离自动亮屏的效果
            WakeLock mWakeLock = pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, TAG);
  }

更多flag参考地址https://blog.csdn.net/qq_32115439/article/details/80169222

猜你喜欢

转载自blog.csdn.net/u013626215/article/details/79990782