在Notification Keyguard界面上滑动时, 它有去检查滑动的Y-距离长度, 只有大于一定的阈值才会触发解锁. 这个阈值是在如下文件中定义的, 它是用下面的值乘以一个因子(1.5)之后得到这个Y-距离. alps/frameworks/base/packages/SystemUI/res/values/Dimens.xml 80dp

对于在Notification Keyguard界面向上滑动没有解锁或者没有显示出bouncer界面的情况, 可如下加log验证是不是因为滑动距离小于阈值引起.

添加如下log后, 在问题时间点搜索log   "onTrackingStarted begin" 和 "onTrackingStopped begin", 这两句log是成对出现的, 在手指按下在屏幕上开始滑时会打印"onTrackingStarted begin", 松开离开屏幕时会打印"onTrackingStopped begin", 搜索到这对log后, 寻找离"onTrackingStopped begin"最近的关于"-h="的log, "-h"表示的就是滑动的高度, 检查下打印的这个高度和阈值的比较. 如果在正常情况下, 向上滑动解锁体验不是很好的原因是由于这个高度小于阈值所致, 可适当修改将这个阈值改小. 如果不是这个原因导致不解锁, 请联系MTK技术人员.

PhoneStatusBar.java public void onTrackingStarted(){     Log.d(TAG, "onTrackingStarted begin"); //添加这行  ... }

public void onTrackingStopped(){     Log.d(TAG, "onTrackingStopped begin"); //添加这行  ... }

PanelView.java public boolean onTouchEvent(MotionEvent event){     ...  case MotionEvent.ACTION_MOVE:       ...    Log.d(TAG, "-h="+(-h)+" getFalsingThreshold()="+getFalsingThreshold());         //添加这行    if(-h >= getFalsingThreshold()){         mTouchAboveFalsingThreshold = true;    }    ...  ... }

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐