From 103b1f583908726a84356d7e01544b505eb708e7 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Mon, 2 Oct 2023 22:32:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E7=9F=AD=E4=BF=A1?= =?UTF-8?q?=E6=8C=87=E4=BB=A4=E5=A2=9E=E5=8A=A0=E7=9F=AD=E4=BF=A1=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=8A=9F=E8=83=BD=20#338?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../forwarder/fragment/SettingsFragment.kt | 2 + .../sms/forwarder/utils/SmsCommandUtils.kt | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/SettingsFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/SettingsFragment.kt index 285bf88c..22533b97 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/SettingsFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/SettingsFragment.kt @@ -493,6 +493,8 @@ class SettingsFragment : BaseFragment(), View.OnClickL .permission(Permission.WRITE_SETTINGS) // 接收短信 .permission(Permission.RECEIVE_SMS) + // 发送短信 + .permission(Permission.SEND_SMS) // 读取短信 .permission(Permission.READ_SMS).request(object : OnPermissionCallback { override fun onGranted(permissions: List, all: Boolean) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SmsCommandUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/SmsCommandUtils.kt index c429ae6c..33ebf27a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SmsCommandUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SmsCommandUtils.kt @@ -1,13 +1,21 @@ package com.idormy.sms.forwarder.utils +import android.Manifest import android.content.Context import android.content.Intent +import android.content.pm.PackageManager import android.net.wifi.WifiManager import android.util.Log +import androidx.core.app.ActivityCompat +import com.google.gson.Gson import com.idormy.sms.forwarder.App +import com.idormy.sms.forwarder.R import com.idormy.sms.forwarder.database.AppDatabase +import com.idormy.sms.forwarder.server.model.SmsSendData import com.idormy.sms.forwarder.service.HttpService import com.xuexiang.xrouter.utils.TextUtils +import com.xuexiang.xui.utils.ResUtils +import com.xuexiang.xutil.XUtil import com.xuexiang.xutil.file.FileUtils import com.xuexiang.xutil.system.DeviceUtils import frpclib.Frpclib @@ -121,6 +129,36 @@ class SmsCommandUtils { wifiManager.isWifiEnabled = false } } + + "sms" -> { + if (action == "send") { + if (TextUtils.isEmpty(param)) return false + + try { + val gson = Gson() + val smsSendData = gson.fromJson(param, SmsSendData::class.java) + Log.d(TAG, smsSendData.toString()) + + //获取卡槽信息 + if (App.SimInfoList.isEmpty()) { + App.SimInfoList = PhoneUtils.getSimMultiInfo() + } + Log.d(TAG, App.SimInfoList.toString()) + + //发送卡槽: 1=SIM1, 2=SIM2 + val simSlotIndex = smsSendData.simSlot - 1 + //TODO:取不到卡槽信息时,采用默认卡槽发送 + val mSubscriptionId: Int = App.SimInfoList[simSlotIndex]?.mSubscriptionId ?: -1 + + if (ActivityCompat.checkSelfPermission(XUtil.getContext(), Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) { + return false + } + PhoneUtils.sendSms(mSubscriptionId, smsSendData.phoneNumbers, smsSendData.msgContent) + } catch (e: Exception) { + Log.e(TAG, "Parsing SMS failed: " + e.message.toString()) + } + } + } } return true