android 9.0 滑动解锁不稳定导致无法解锁

这里直接给出修改:

  • 源码位置: SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
 protected boolean flingExpands(float vel, float vectorVel, float x, float y) {
      if (isFalseTouch(x, y)) {
          return true;
      }
      if (Math.abs(vectorVel) < mFlingAnimationUtils.getMinVelocityPxPerSecond()) {
 -     	  return getExpandedFraction() > 0.5f;
 +        return getExpandedFraction() > 0.7f;
      } else {
          return vel > 0;
      }
  }
  • 源码位置 :SystemUI/src/com/android/systemui/classifier/HumanInteractionClassifier.java
 public boolean isFalseTouch() {
     if (mEnableClassifier) {
         float evaluation = mHistoryEvaluator.getEvaluation();
   -     boolean result = evaluation >= 5.0f;
   +     boolean result = evaluation >= 8.0f;
         if (FalsingLog.ENABLED) {
             FalsingLog.i("isFalseTouch", new StringBuilder()
                       .append("eval=").append(evaluation).append(" result=")
                       .append(result ? 1 : 0).toString());
         }
         return result;
     }
     return false;
 }

上面两处修改都会产生影响,自己打印log选择合适的值。

  • 分析:抬起手指,产生touch up事件,会走endMotionEvent(),其中有 boolean expand的判断,这个就是控制是否expand逻辑,解锁false, 无法解锁true.
 flingExpands() -> isFalseTouch(x, y) -> mFalsingManager.isFalseTouch()
 ->  HumanInteractionClassifier.isFalseTouch()

Android8.1 SystemUI Keyguard之滑动解锁流程
Android 7.0 锁屏解锁之向上滑动显示解锁界面分析

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值