优化: 短信指令 smsf#system#rebootsmsf#system#shutdown 增加过滤重复消息机制 #653

This commit is contained in:
pppscn
2026-02-01 21:38:01 +08:00
parent 8f0d1c4894
commit 4f0e97db4b

View File

@@ -6,13 +6,14 @@ import android.content.Intent
import android.content.pm.PackageManager
import android.net.wifi.WifiManager
import androidx.core.app.ActivityCompat
import com.google.gson.Gson
import cn.ppps.forwarder.App
import cn.ppps.forwarder.core.Core
import cn.ppps.forwarder.server.model.SmsSendData
import cn.ppps.forwarder.service.HttpServerService
import com.google.gson.Gson
import com.xuexiang.xrouter.utils.TextUtils
import com.xuexiang.xutil.XUtil
import com.xuexiang.xutil.security.CipherUtils
import com.xuexiang.xutil.system.DeviceUtils
import frpclib.Frpclib
import kotlinx.coroutines.Dispatchers
@@ -91,6 +92,22 @@ class SmsCommandUtils {
//判断是否已root
if (!DeviceUtils.isDeviceRooted()) return false
// 过滤重复消息机制
var duplicateMessagesLimits = SettingUtils.duplicateMessagesLimits * 1000L
if (duplicateMessagesLimits > 0L) {
duplicateMessagesLimits += 10000L //系统指令多加10秒避免误操作
val key = CipherUtils.md5(smsCommand)
val timestamp: Long = System.currentTimeMillis()
var timestampPrev: Long by HistoryUtils(key, timestamp)
Log.d(TAG, "duplicateMessagesLimits=$duplicateMessagesLimits, timestamp=$timestamp, timestampPrev=$timestampPrev, msgInfo=$smsCommand")
if (timestampPrev != timestamp && timestamp - timestampPrev <= duplicateMessagesLimits) {
Log.e(TAG, "过滤重复消息机制")
timestampPrev = timestamp
return false
}
timestampPrev = timestamp
}
if (action == "reboot") {
DeviceUtils.reboot()
} else if (action == "shutdown") {