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



相关文章
|
1天前
|
Android开发 算法 架构师
android的基础ui组件,这些知识点你会吗
android的基础ui组件,这些知识点你会吗
android的基础ui组件,这些知识点你会吗
|
1天前
|
Android开发 缓存 双11
android的基础ui组件,Android开发社招面试经验
android的基础ui组件,Android开发社招面试经验
android的基础ui组件,Android开发社招面试经验
|
1天前
|
安全 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【5月更文挑战第16天】 在移动开发领域,性能一直是开发者关注的焦点。随着Kotlin语言的普及,其与Java在Android应用中的性能表现成为热门话题。本文将深入分析Kotlin和Java在Android平台上的性能差异,并通过实际测试数据来揭示二者在编译速度、应用启动时间以及运行效率方面的表现。我们的目标是为开发者提供一个参考依据,以便在选择合适的编程语言时做出更加明智的决策。
|
2天前
|
缓存 移动开发 Android开发
Android 应用性能优化实践
【5月更文挑战第15天】 在移动开发领域,应用的性能直接关系到用户体验和产品的市场表现。特别是对于安卓平台,设备的多样性和应用生态环境的复杂性使得性能优化成为开发者的一项重要技能。本文将深入探讨针对安卓应用的性能瓶颈识别、分析方法以及具体的优化策略,旨在为开发者提供一套实用的性能提升解决方案。
|
2天前
|
移动开发 测试技术 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【5月更文挑战第15天】 在移动开发领域,一个成功的Android应用不仅需要具备吸引用户的功能,更应提供流畅和高效的用户体验。随着技术的不断进步,开发者面临着将先进技术集成到现有架构中以提高应用性能的挑战。本文将深入探讨如何通过最新的Android框架和工具来优化应用性能,包括对UI的响应性、内存管理以及多线程处理等关键方面的改进,旨在帮助开发者构建出更加强大、快速且稳定的Android应用。
|
2天前
|
缓存 Android开发 UED
构建高效Android应用:从优化用户体验到提升性能
【5月更文挑战第15天】 在移动开发领域,构建一个高效的Android应用不仅仅意味着实现功能,还要确保流畅的用户体验和出色的性能。本文将深入探讨如何通过界面优化、代码整洁、资源管理和多线程处理等技术手段来提升Android应用的整体效率。我们将透过实际案例,揭示常见性能瓶颈的成因,并提供相应的解决方案。此外,文章还会涵盖最新的Android Studio工具和Lint检查的使用,帮助开发者早期发现潜在问题。
|
2天前
|
缓存 Java Android开发
Android应用性能优化实战
【5月更文挑战第14天】 在竞争激烈的应用市场中,一个流畅、高效的应用能显著提升用户体验并增强用户黏性。本文深入探讨了针对安卓平台进行应用性能优化的策略与实践,从内存管理到多线程处理,再到布局渲染和网络请求的优化,旨在为开发者提供一套全面的优化工具箱。通过分析常见的性能瓶颈并结合最新的Android技术动态,我们不仅讨论理论,还将分享具体的代码示例和改进方法,帮助开发者在实际应用中实现性能提升。
|
2天前
|
移动开发 数据处理 Android开发
构建高效Android应用:Kotlin协程的实践与优化策略
【5月更文挑战第14天】在移动开发领域,性能优化和资源管理是提升用户体验的关键因素之一。随着Kotlin语言的普及,其异步编程解决方案——协程,已经成为Android开发者手中的强大工具。本文将深入探讨Kotlin协程在Android应用中的实践方法,分析其在处理异步任务时带来的优势,并提出一系列优化策略,帮助开发者构建更加高效、响应迅速的Android应用。通过具体案例分析和性能对比,我们将展示如何充分利用协程来简化代码结构,提高应用性能,并确保用户界面的流畅性。
|
2天前
|
移动开发 数据库 Android开发
构建高效Android应用:探究Kotlin协程的优势与实践
【5月更文挑战第14天】在移动开发领域,性能优化和流畅的用户体验始终是开发者追求的目标。随着Kotlin语言的兴起,其提供的协程特性为Android应用带来了革新性的异步编程解决方案。本文将深入探讨Kotlin协程的核心优势,并结合实际案例分析如何在Android应用中有效地利用协程来提升性能和响应性,同时保证代码的简洁性和可维护性。
|
2天前
|
存储 传感器 Android开发
构建高效Android应用:从优化布局到提升性能
【5月更文挑战第13天】 在竞争激烈的移动应用市场中,一个高效的Android应用不仅需要具备直观的用户界面和丰富的功能,还要确保流畅的性能和快速的响应时间。本文将深入探讨如何通过优化布局设计、减少资源消耗以及利用系统提供的API来提升Android应用的性能。我们将分析布局优化的策略,讨论内存使用的常见陷阱,并介绍异步处理和电池寿命的考量。这些技术的综合运用将帮助开发者构建出既美观又高效的Android应用。

热门文章

最新文章