息屏来电时无法下滑拒接电话。接听电话上下滑动改为双按钮(接听按钮和拒接按钮)。

此问题具体项目具体分析,这里是有两点原因,一,ui界面相比机器太大,滑动距离太长滑不到,二,下滑正好会碰到屏幕上的物理私印按键的home键,所以就退到桌面了也无法拒接

息屏来电的活动是:vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallActivity.java

解决方法:

直接单纯改ui,把滑动拒接接听的模块整个往上移动到合适的地方就可以

vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml

更改 android:layout_marginBottom属性,原本是20dp。直接改最下面的“下滑拒接”的提示文字就可以。因为整个布局是<FrameLayout下的<LinearLayout,android:orientation="vertical"下面各控件都是垂直一个个分布的

        <TextView
               android:id="@+id/incoming_swipe_to_reject_text"
                android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_marginBottom="150dp"    
               android:layout_gravity="center_horizontal"
                android:alpha="0"
                android:focusable="false"
                android:gravity="center_horizontal"
               android:text="@string/call_incoming_swipe_to_reject"
               android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint"
                tools:alpha="1"/>
     </LinearLayout>

如果要改滑动逻辑的话在:

java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java

但里面的算法比较繁琐不介意在这里改。分析好原因,源码设计的就可以,如果改短滑动距离反而容易误触

原生设计滑动接听,按钮接听两种方式,改为双按钮的话只需要

vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/answer/impl/answermethod/AnswerMethodFactory.java

public static AnswerMethod createAnswerMethod(@NonNullActivity activity) {
    /*/tyd.yantao
        if (needTwoButton(activity)) {
        //*/
        if(true){
        //*/
          return new TwoButtonMethod();
        } else {
          return new FlingUpDownMethod();
        }

猜你喜欢

转载自blog.csdn.net/youthking1314/article/details/129620731
今日推荐