Android 8.1 来电显示SIM卡

本文介绍了一个在Android系统中实现来电显示SIM卡来源的功能改进。通过修改ContactGridManager类,新增了对来电SIM卡的判断与显示,使得用户能清晰识别是哪张SIM卡接收到的来电。此改动涉及Dialer应用程序的ContactGridManager.java文件,利用SubscriptionManager获取活动的SIM信息,并根据来电的订阅ID匹配正确的SIM卡,最终在联系人名称前加上“SIM1:”或“SIM2:”前缀。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:来电要求显示哪张SIM来电。

--- a/alps/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/contactgrid/ContactGridManager.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/incallui/contactgrid/ContactGridManager.java
@@ -41,6 +41,11 @@ import com.android.incallui.incall.protocol.PrimaryInfo;
 import com.mediatek.incallui.plugin.ExtensionManager;
 import java.util.List;

+// add Caller ID SIM card Monkey.20181206
+import com.android.incallui.call.CallList;
+import com.android.incallui.call.DialerCall;
+import android.telephony.SubscriptionManager;
+import android.telephony.SubscriptionInfo;
+// end
 /** Utility to manage the Contact grid */
 public class ContactGridManager {
 
@@ -261,6 +266,35 @@ public class ContactGridManager {
               ? PhoneNumberUtilsCompat.createTtsSpannable(primaryInfo.name)
               : primaryInfo.name);
 
+        //getOutgoingOrActive
+        //getIncomingCall
+        //add Caller ID SIM card Monkey.20181206
+     List<SubscriptionInfo> mSubInfoList=SubscriptionManager.from(context).getActiveSubscriptionInfoList();
+        int getSubId = -1;
+        if(CallList.getInstance().getIncomingCall() != null){
+                getSubId = CallList.getInstance().getIncomingCall().getCallSubId();
+        }       
+        if(mSubInfoList != null){
+                if(mSubInfoList.size() >= 2 && getSubId != -1){
+                        for(SubscriptionInfo s:mSubInfoList){
+                               android.util.Log.e("Monkey_Dialer","getSubscriptionId  ----->>>"+s.getSubscriptionId());
+                               if(s.getSubscriptionId() == getSubId){
+                                       contactNameTextView.setText
+                                               ("SIM1:" + (primaryInfo.nameIsNumber
+                                                       ? PhoneNumberUtilsCompat.createTtsSpannable(primaryInfo.name)
+                                                       : primaryInfo.name));
+                               }else{
+                                       contactNameTextView.setText
+                                               ("SIM2:" + (primaryInfo.nameIsNumber
+                                                       ? PhoneNumberUtilsCompat.createTtsSpannable(primaryInfo.name)
+                                                       : primaryInfo.name));
+                               }
+                               break;
+                        }
+                }
+        }
+        //end
+        
       // Set direction of the name field
       int nameDirection = View.TEXT_DIRECTION_INHERIT;

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旧时旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值