Android Mediatek 禁用拨号应用的部分UI显示

简介: Android Mediatek 禁用拨号应用的部分UI显示

这个是早期客制化需求 , 当时我记得是需要拨号的同时需要禁止系统通话被拉起 , 意思就是

电话过来了, 不能显示UI的同时还在通话 , 然后我做个了自定义的APP去控制通话。

这个修改主要是在Dialer应用的几个文件中修改了一些函数的逻辑,使得在特定条件下,不再显示拨号界面或者通知。

修改的文件:

  1. vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallActivity.java
  2. vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallPresenter.java
  3. vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/StatusBarNotifier.java

文件修改说明:

1. InCallActivity.java

在这个文件中,修改了getIntent函数的逻辑。原先的逻辑是根据传入的参数来设置Intent的一些属性。现在的逻辑是,直接设置了一些固定的属性值。

2. InCallPresenter.java

在这个文件中,修改了几个函数的逻辑。原先的逻辑是在满足一定条件时,显示拨号界面。现在的逻辑是,注释掉了显示拨号界面的代码,使得在满足条件时,不再显示拨号界面。

3. StatusBarNotifier.java

在这个文件中,修改了updateInCallNotification函数的逻辑。原先的逻辑是在满足一定条件时,显示通知。现在的逻辑是,注释掉了显示通知的代码,使得在满足条件时,不再显示通知。



 

 
---
 .../java/com/android/incallui/InCallActivity.java      |  2 +-
 .../java/com/android/incallui/InCallPresenter.java     | 10 +++++-----
 .../java/com/android/incallui/StatusBarNotifier.java   |  6 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)
 
diff --git a/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallActivity.java b/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallActivity.java
index 0c56bdb28be..f1932d6b836 100755
--- a/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallActivity.java
+++ b/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallActivity.java
@@ -103,7 +103,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity
     Intent intent = new Intent(Intent.ACTION_MAIN, null);
     intent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION | Intent.FLAG_ACTIVITY_NEW_TASK);
     intent.setClass(context, InCallActivity.class);
-    InCallActivityCommon.setIntentExtras(intent, showDialpad, newOutgoingCall, isForFullScreen);
+    InCallActivityCommon.setIntentExtras(intent, false, newOutgoingCall, false);
     return intent;
   }
 
diff --git a/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallPresenter.java b/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallPresenter.java
index 013b1055280..e8ba1439a06 100755
--- a/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallPresenter.java
+++ b/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/InCallPresenter.java
@@ -1271,7 +1271,7 @@ public class InCallPresenter implements CallList.Listener {
     // present (e.g. a call was accepted by a bluetooth or wired headset), we want to
     // bring it up the UI regardless.
     if (!isShowingInCallUi() && mInCallState != InCallState.NO_CALLS) {
-      showInCall(showDialpad, false /* newOutgoingCall */);
+      //showInCall(showDialpad, false /* newOutgoingCall */);
     }
     /// M: For CR ALPS02853151. Dismiss add member screen while return to InCall.@{
     else if (AddMemberScreenController.getInstance().IsAddMemberScreenShown()) {
@@ -1571,8 +1571,8 @@ public class InCallPresenter implements CallList.Listener {
     }
 
     if (showCallUi || showAccountPicker) {
-      LogUtil.i("InCallPresenter.startOrFinishUi", "Start in call UI");
-      showInCall(false /* showDialpad */, !showAccountPicker /* newOutgoingCall */);
+      LogUtil.i("InCallPresenter.startOrFinishUi", "leon Start in call UI");
+     // showInCall(false /* showDialpad */, !showAccountPicker /* newOutgoingCall */);
     } else if (startIncomingCallSequence) {
       LogUtil.i("InCallPresenter.startOrFinishUi", "Start Full Screen in call UI");
 
@@ -1744,7 +1744,7 @@ public class InCallPresenter implements CallList.Listener {
     final Intent activityIntent =
         InCallActivity.getIntent(mContext, false, true, false /* forFullScreen */);
     activityIntent.putExtra(TouchPointManager.TOUCH_POINT, touchPoint);
-    mContext.startActivity(activityIntent);
+    //mContext.startActivity(activityIntent);
   }
 
   /**
@@ -2297,7 +2297,7 @@ public class InCallPresenter implements CallList.Listener {
               return false;
           } else {
               Log.i(this, "show InCallActivity for waiting call");
-              showInCall(false, false);
+              //showInCall(false, false);
           }
       } else {
           mStatusBarNotifier.updateNotification(mCallList);
diff --git a/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/StatusBarNotifier.java b/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/StatusBarNotifier.java
index 59ddfe2bb0f..dd1c5d5af9b 100755
--- a/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/StatusBarNotifier.java
+++ b/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/StatusBarNotifier.java
@@ -258,14 +258,14 @@ public class StatusBarNotifier
    */
   @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
   private void updateInCallNotification(CallList callList) {
-    LogUtil.d("StatusBarNotifier.updateInCallNotification", "");
+    LogUtil.d("StatusBarNotifier.updateInCallNotification", "updateInCallNotification call");
 
     final DialerCall call = getCallToShow(callList);
 
     if (call != null) {
-      showNotification(callList, call);
+     // showNotification(callList, call);
     } else {
-      cancelNotification();
+     // cancelNotification();
     }
 
     /// M: add for OP02 plugin. @{
-- 
2.29.0



相关文章
|
12天前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
本篇将带你实现一个虚拟音乐控制台。用户可以通过界面控制音乐的播放、暂停、切换歌曲,并查看当前播放的歌曲信息。页面还支持调整音量和动态显示播放进度,是音乐播放器界面开发的基础功能示例。
172 80
|
2天前
「Mac畅玩鸿蒙与硬件51」UI互动应用篇28 - 模拟记账应用
本篇教程将介绍如何创建一个模拟记账应用,通过账单输入、动态列表展示和实时统计功能,学习接口定义和组件间的数据交互。
102 68
|
6天前
|
流计算 UED
「Mac畅玩鸿蒙与硬件48」UI互动应用篇25 - 简易购物车功能实现
本篇教程将带你实现一个简易购物车功能。通过使用接口定义商品结构,我们将创建一个动态购物车,支持商品的添加、移除以及实时总价计算。
94 69
|
16天前
|
数据处理
「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
本篇将带你实现一个评分统计工具,用户可以对多个选项进行评分。应用会实时更新每个选项的评分结果,并统计平均分。这一功能适合用于问卷调查或评分统计的场景。
139 65
|
15天前
「Mac畅玩鸿蒙与硬件46」UI互动应用篇23 - 自定义天气预报组件
本篇将带你实现一个自定义天气预报组件。用户可以通过选择不同城市来获取相应的天气信息,页面会显示当前城市的天气图标、温度及天气描述。这一功能适合用于动态展示天气信息的小型应用。
116 38
|
5天前
|
前端开发
「Mac畅玩鸿蒙与硬件49」UI互动应用篇26 - 数字填色游戏
本篇教程将带你实现一个数字填色小游戏,通过简单的交互逻辑,学习如何使用鸿蒙开发组件创建趣味性强的应用。
44 20
|
1天前
|
UED
「Mac畅玩鸿蒙与硬件52」UI互动应用篇29 - 模拟火车票查询系统
本篇教程将实现一个模拟火车票查询系统,通过输入条件筛选车次信息,并展示动态筛选结果,学习事件处理、状态管理和界面展示的综合开发技巧。
32 13
|
4天前
|
前端开发 UED
「Mac畅玩鸿蒙与硬件50」UI互动应用篇27 - 水果掉落小游戏
本篇教程将带你实现一个水果掉落小游戏,掌握基本的动态交互逻辑和鸿蒙组件的使用,进一步了解事件处理与状态管理。
30 14
|
22小时前
「Mac畅玩鸿蒙与硬件53」UI互动应用篇30 - 打卡提醒小应用
本篇教程将实现一个打卡提醒小应用,通过用户输入时间进行提醒设置,并展示实时提醒状态,实现提醒设置和取消等功能。
24 9
|
17天前
|
存储 索引
「Mac畅玩鸿蒙与硬件44」UI互动应用篇21 - 随机励志语录生成器
本篇将带你实现一个随机励志语录生成器应用。用户点击按钮后,界面会随机显示一条预设的励志语录。该应用展示了如何结合数组操作、状态管理和动态更新界面内容的功能,是一个轻量级的互动应用示例。
88 21
「Mac畅玩鸿蒙与硬件44」UI互动应用篇21 - 随机励志语录生成器