From ed07a6f67f3ca42989c7b34babab31b9df7b3d3f Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 12 Jul 2024 10:15:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=9F=AD=E4=BF=A1=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2sim=E5=8D=A1=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpmaster/sms/SimUtil.java | 29 ++++++++++++------- .../xypower/mpmaster/sms/SmsSendReceiver.java | 11 +++++++ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java index ac0fc28b..fc04a500 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java @@ -583,9 +583,9 @@ public class SimUtil { if (pos != -1) { ss = ss.substring(0, pos); - result.append(",SS=" + ss); + result.append(",SL=" + ss); int ssVal = Integer.parseInt(ss); - result.append(",SL=" + Integer.toString(MpMasterService.getSignalLevel(ssVal, 5))); + result.append("/" + Integer.toString(MpMasterService.getSignalLevel(ssVal, 5))); } } @@ -594,7 +594,7 @@ public class SimUtil { // boolean b2 = tm.isDataCapable(); boolean b3 = tm.isDataRoamingEnabled(); - result.append(isActiveSlot ? ",默认数据传输" : ",非默认数据传输"); + result.append(isActiveSlot ? ",默认" : ","); result.append(" "); } @@ -603,7 +603,7 @@ public class SimUtil { ex.printStackTrace(); } - return result.toString(); + return result.toString().trim(); } public static String getSimStateName(int simState) { @@ -653,7 +653,7 @@ public class SimUtil { case TelephonyManager.NETWORK_TYPE_LTE: return "4G"; default: - return "UNKNOWN"; + return "未知"; } } @@ -736,12 +736,10 @@ public class SimUtil { SubscriptionInfo simInfoAnother = null; if (doubleSim) { if (localList != null && localList.size() > 1) { - SubscriptionInfo simInfo1 = (SubscriptionInfo) localList.get(0); - SubscriptionInfo simInfo2 = (SubscriptionInfo) localList.get(1); if (slot == 0) { - simInfoAnother = simInfo1; + simInfoAnother = (SubscriptionInfo) localList.get(0); } else { - simInfoAnother = simInfo2; + simInfoAnother = (SubscriptionInfo) localList.get(1); } } } @@ -756,7 +754,18 @@ public class SimUtil { //deliveryIntent参数为传送后接受的广播信息PendingIntent // PendingIntent deliverPI = PendingIntent.getBroadcast(mContext,0,itDeliver,0); if (simInfoAnother != null) { - SmsManager.getSmsManagerForSubscriptionId(simInfoAnother.getSubscriptionId()).sendTextMessage(sender, null, message, sendPI, null); + SmsManager smsManager = SmsManager.getSmsManagerForSubscriptionId(simInfoAnother.getSubscriptionId()); + if (message.length() > 70) { + ArrayList msgs = smsManager.divideMessage(message); + ArrayList sentIntents = new ArrayList(); + + for(int i = 0;i < msgs.size(); i++){ + sentIntents.add(sendPI); + } + smsManager.sendMultipartTextMessage(sender, null, msgs, sentIntents, null); + } else { + smsManager.sendTextMessage(sender, null, message, sendPI, null); + } } } } diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java index 108ec947..0940ce4a 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java @@ -1,9 +1,13 @@ package com.xypower.mpmaster.sms; +import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.os.Bundle; +import android.telephony.SmsManager; import android.text.TextUtils; +import android.util.Log; import com.dev.devapi.api.SysApi; import com.xypower.mpmaster.MpMasterService; @@ -18,6 +22,13 @@ public class SmsSendReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); + int resultCode = getResultCode(); + // String resultData = getResultData(); + // Bundle resultExtras = getResultExtras(true); + if (resultCode != Activity.RESULT_OK) { + // Log.i("SMS", Integer.toString(resultCode)); + } + if (SimUtil.SMS_SEND_ACTION.equals(action)) { final String type = intent.getStringExtra(SimUtil.SMSTYPE); if (TextUtils.isEmpty(type)) {