From 7b0de2b279b0a15017e9f1b07276884867065c83 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Thu, 11 Mar 2021 14:41:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8E=B7=E5=8F=96SIM?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=88=E5=85=BC=E5=AE=B9=E9=AB=98=E7=89=88?= =?UTF-8?q?=E6=9C=ACAndroid=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SmsForwarderBroadcastReceiver.java | 17 ++++--- .../idormy/sms/forwarder/utils/SimUtil.java | 49 +++++++++++++------ 2 files changed, 45 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/BroadCastReceiver/SmsForwarderBroadcastReceiver.java b/app/src/main/java/com/idormy/sms/forwarder/BroadCastReceiver/SmsForwarderBroadcastReceiver.java index 90d1f631..f2c637f4 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/BroadCastReceiver/SmsForwarderBroadcastReceiver.java +++ b/app/src/main/java/com/idormy/sms/forwarder/BroadCastReceiver/SmsForwarderBroadcastReceiver.java @@ -31,18 +31,23 @@ public class SmsForwarderBroadcastReceiver extends BroadcastReceiver { try { Bundle extras = intent.getExtras(); - Log.d(TAG, "subscription = " + extras.getInt("subscription")); - Log.d(TAG, "simId = " + extras.getInt("simId")); Object[] object = (Object[]) Objects.requireNonNull(extras).get("pdus"); if (object != null) { - //获取接收手机号 + //接收手机卡信息 String simInfo = ""; + //卡槽ID,默认卡槽为1 + int simId = 1; try { - //获取卡槽ID - int simId = SimUtil.getSimId(extras); + if (extras.containsKey("simId")) { + simId = extras.getInt("simId"); + } else if (extras.containsKey("subscription")) { + simId = SimUtil.getSimIdBySubscriptionId(extras.getInt("subscription")); + } + + //自定义备注优先 simInfo = simId == 2 ? SettingUtil.getAddExtraSim2() : SettingUtil.getAddExtraSim1(); - if (!simInfo.isEmpty()) { //自定义备注优先 + if (!simInfo.isEmpty()) { simInfo = "SIM" + simId + "_" + simInfo; } else { simInfo = SimUtil.getSimInfo(simId); diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SimUtil.java b/app/src/main/java/com/idormy/sms/forwarder/utils/SimUtil.java index 613242b0..3d4c31fe 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SimUtil.java +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SimUtil.java @@ -12,27 +12,46 @@ public class SimUtil { //获取卡槽信息ID public static int getSimId(Bundle bundle) { int whichSIM = -1; - if (bundle != null) { - if (bundle.containsKey("simId")) { - whichSIM = bundle.getInt("simId"); - } else if (bundle.containsKey("com.android.phone.extra.slot")) { - whichSIM = bundle.getInt("com.android.phone.extra.slot"); - } else { - String keyName = ""; - for (String key : bundle.keySet()) { - if (key.contains("sim")) - keyName = key; - } - if (bundle.containsKey(keyName)) { - whichSIM = bundle.getInt(keyName); - } + if (bundle == null) { + return whichSIM; + } + + if (bundle.containsKey("simId")) { + whichSIM = bundle.getInt("simId"); + Log.d(TAG, "simId = " + whichSIM); + } else if (bundle.containsKey("com.android.phone.extra.slot")) { + whichSIM = bundle.getInt("com.android.phone.extra.slot"); + Log.d(TAG, "com.android.phone.extra.slot = " + whichSIM); + } else { + String keyName = ""; + for (String key : bundle.keySet()) { + if (key.contains("sim")) + keyName = key; + } + if (bundle.containsKey(keyName)) { + whichSIM = bundle.getInt(keyName); } } - Log.d(TAG, " Slot Number " + whichSIM); + Log.d(TAG, "Slot Number " + whichSIM); return whichSIM + 1; } + //通过SubscriptionId获取卡槽信息ID + public static int getSimIdBySubscriptionId(int subscriptionId) { + try { + for (PhoneUtils.SimInfo simInfo : MyApplication.SimInfoList) { + if (simInfo.mSubscriptionId == subscriptionId) { + return simInfo.mSimSlotIndex + 1; + } + } + } catch (Exception e) { + Log.d(TAG, "getSimExtra Fail: " + e.getMessage()); + } + + return 0; + } + //获取卡槽备注 public static String getSimInfo(int simId) { String res = "";