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



相关文章
|
15天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
2月前
|
存储 JavaScript 开发者
探索鸿蒙新世界:ArkUI框架实战指南,解锁HarmonyOS应用UI设计的无限可能!
【10月更文挑战第19天】ArkUI框架是华为鸿蒙系统中用于开发用户界面的核心工具,支持ArkTS和eTS两种开发语言。本文介绍了ArkUI的基本概念、组件使用、布局管理和状态管理,通过示例代码帮助开发者轻松构建美观、高效的跨设备UI。
95 3
|
24天前
|
JSON Java Android开发
探索安卓开发之旅:打造你的第一个天气应用
【10月更文挑战第30天】在这个数字时代,掌握移动应用开发技能无疑是进入IT行业的敲门砖。本文将引导你开启安卓开发的奇妙之旅,通过构建一个简易的天气应用来实践你的编程技能。无论你是初学者还是有一定经验的开发者,这篇文章都将成为你宝贵的学习资源。我们将一步步地深入到安卓开发的世界中,从搭建开发环境到实现核心功能,每个环节都充满了发现和创造的乐趣。让我们开始吧,一起在代码的海洋中航行!
|
24天前
|
存储 搜索推荐 Java
打造个性化安卓应用:从设计到实现
【10月更文挑战第30天】在数字化时代,拥有一个个性化的安卓应用不仅能够提升用户体验,还能加强品牌识别度。本文将引导您了解如何从零开始设计和实现一个安卓应用,涵盖用户界面设计、功能开发和性能优化等关键环节。我们将以一个简单的记事本应用为例,展示如何通过Android Studio工具和Java语言实现基本功能,同时确保应用流畅运行。无论您是初学者还是希望提升现有技能的开发者,这篇文章都将为您提供宝贵的见解和实用的技巧。
|
28天前
|
搜索推荐 开发工具 Android开发
打造个性化Android应用:从设计到实现的旅程
【10月更文挑战第26天】在这个数字时代,拥有一个能够脱颖而出的移动应用是成功的关键。本文将引导您了解如何从概念化阶段出发,通过设计、开发直至发布,一步步构建一个既美观又实用的Android应用。我们将探讨用户体验(UX)设计的重要性,介绍Android开发的核心组件,并通过实际案例展示如何克服开发中的挑战。无论您是初学者还是有经验的开发者,这篇文章都将为您提供宝贵的见解和实用的技巧,帮助您在竞争激烈的应用市场中脱颖而出。
|
1月前
|
算法 Java 数据库
Android 应用的主线程在什么情况下会被阻塞?
【10月更文挑战第20天】为了避免主线程阻塞,我们需要合理地设计和优化应用的代码。将耗时操作移到后台线程执行,使用异步任务、线程池等技术来提高应用的并发处理能力。同时,要注意避免出现死循环、不合理的锁使用等问题。通过这些措施,可以确保主线程能够高效地运行,提供流畅的用户体验。
42 2
|
2月前
|
Java API Android开发
安卓应用程序开发的新手指南:从零开始构建你的第一个应用
【10月更文挑战第20天】在这个数字技术不断进步的时代,掌握移动应用开发技能无疑打开了一扇通往创新世界的大门。对于初学者来说,了解并学习如何从无到有构建一个安卓应用是至关重要的第一步。本文将为你提供一份详尽的入门指南,帮助你理解安卓开发的基础知识,并通过实际示例引导你完成第一个简单的应用项目。无论你是编程新手还是希望扩展你的技能集,这份指南都将是你宝贵的资源。
54 5
|
2月前
|
移动开发 Dart 搜索推荐
打造个性化安卓应用:从零开始的Flutter之旅
【10月更文挑战第20天】本文将引导你开启Flutter开发之旅,通过简单易懂的语言和步骤,让你了解如何从零开始构建一个安卓应用。我们将一起探索Flutter的魅力,实现快速开发,并见证代码示例如何生动地转化为用户界面。无论你是编程新手还是希望扩展技能的开发者,这篇文章都将为你提供价值。
|
2月前
|
JavaScript API 开发者
掌握ArkTS,打造HarmonyOS应用新视界:从“Hello World”到状态管理,揭秘鸿蒙UI开发的高效秘诀
【10月更文挑战第19天】ArkTS(ArkUI TypeScript)是华为鸿蒙系统中用于开发用户界面的声明式编程语言,结合了TypeScript和HarmonyOS的UI框架。本文介绍ArkTS的基本语法,包括组件结构、模板和脚本部分,并通过“Hello World”和计数器示例展示其使用方法。
64 1
|
2月前
|
调度 Android开发 开发者
构建高效Android应用:探究Kotlin多线程优化策略
【10月更文挑战第11天】本文探讨了如何在Kotlin中实现高效的多线程方案,特别是在Android应用开发中。通过介绍Kotlin协程的基础知识、异步数据加载的实际案例,以及合理使用不同调度器的方法,帮助开发者提升应用性能和用户体验。
53 4