From 13a3d194a650745c9ab6e8315bca5c390b87aec6 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Thu, 2 Dec 2021 09:54:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E5=8D=A1=E6=A7=BD=E5=90=8C=E4=B8=80=E7=A7=92=E7=9A=84=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=9C=AA=E6=8E=A5=E6=9D=A5=E7=94=B5=E5=B9=BF=E6=92=AD?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E9=87=8D=E5=A4=8D=E5=A4=84=E7=90=86=EF=BC=88?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=9C=BA=E5=9E=8B=E4=BC=9A=E6=94=B6=E5=88=B0?= =?UTF-8?q?=E4=B8=A4=E6=9D=A1=E5=B9=BF=E6=92=AD=EF=BC=9F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../forwarder/receiver/PhoneStateReceiver.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.java b/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.java index 64754fb0..570815fd 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.java +++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.java @@ -12,13 +12,16 @@ import com.idormy.sms.forwarder.model.CallInfo; import com.idormy.sms.forwarder.model.PhoneBookEntity; import com.idormy.sms.forwarder.model.vo.SmsVo; import com.idormy.sms.forwarder.sender.SendUtil; +import com.idormy.sms.forwarder.utils.CommonUtil; import com.idormy.sms.forwarder.utils.ContactHelper; import com.idormy.sms.forwarder.utils.PhoneUtils; import com.idormy.sms.forwarder.utils.SettingUtil; import com.idormy.sms.forwarder.utils.SimUtil; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.Locale; public class PhoneStateReceiver extends BroadcastReceiver { private static final String TAG = "PhoneStateReceiver"; @@ -95,6 +98,18 @@ public class PhoneStateReceiver extends BroadcastReceiver { if (TextUtils.isEmpty(name)) name = context.getString(R.string.unknown_number); } + + //TODO:同一卡槽同一秒的重复未接来电广播不再重复处理(部分机型会收到两条广播?) + String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINESE).format(new Date()); + String prevHash = SettingUtil.getPrevNoticeHash(phoneNumber); + String currHash = CommonUtil.MD5(phoneNumber + simInfo + time); + Log.d(TAG, "prevHash=" + prevHash + " currHash=" + currHash); + if (prevHash != null && prevHash.equals(currHash)) { + Log.w(TAG, "同一卡槽同一秒的重复未接来电广播不再重复处理(部分机型会收到两条广播)"); + return; + } + SettingUtil.setPrevNoticeHash(phoneNumber, currHash); + SmsVo smsVo = new SmsVo(phoneNumber, name + context.getString(R.string.calling), new Date(), simInfo); Log.d(TAG, "send_msg" + smsVo.toString()); SendUtil.send_msg(context, smsVo, simId, "call");