From d8523a3f3c1dc3b1fdcababf49caeb33946d90d7 Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Mon, 22 Apr 2024 11:06:19 +0800 Subject: [PATCH] Update MonitorService.java --- .../nbee/echolink/service/MonitorService.java | 54 ++++++++++++------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/nbee/echolink/service/MonitorService.java b/app/src/main/java/com/nbee/echolink/service/MonitorService.java index 33602ba..1482f60 100644 --- a/app/src/main/java/com/nbee/echolink/service/MonitorService.java +++ b/app/src/main/java/com/nbee/echolink/service/MonitorService.java @@ -32,31 +32,47 @@ public class MonitorService extends Service { private String lastPhoneNumber = null; private long lastCallTime = 0; private static final long HEARTBEAT_INTERVAL_MINUTES = 10; // 10分钟 + + /** + * 服务创建时调用的函数。 + * 该函数在服务创建时被系统自动调用,用于初始化服务的相关操作。 + * 无参数和返回值。 + */ @Override public void onCreate() { - super.onCreate(); - Timber.d("监控服务 onCreate"); - startForegroundService(); - networkUtils = new NetworkUtils(this); - scheduleHeartbeat(this); // 启动心跳定时任务 + super.onCreate(); // 调用父类的onCreate方法进行初始化 + Timber.d("监控服务 onCreate"); // 记录日志,表示监控服务创建 + startForegroundService(); // 启动前台服务,保证服务不会被系统轻易杀死 + networkUtils = new NetworkUtils(this); // 初始化网络工具类 + scheduleHeartbeat(this); // 启动心跳定时任务,用于保持服务的活跃状态或与服务器保持连接 } + + /** + * 服务启动时的命令处理。 + * + * @param intent 携带启动服务的意图,可能包含来电或短信的信息。 + * @param flags 启动标志,提供额外数据。 + * @param startId 一个唯一的整数,标识此启动请求。 + * @return 返回START_STICKY,如果系统在服务终止后杀死,则重新创建服务并调用onStartCommand(),但不重新传递最后的意图。 + */ @Override public int onStartCommand(Intent intent, int flags, int startId) { - if (intent != null) { - if (intent.hasExtra("incomingNumber")) { + if (intent != null) { // 检查传入的Intent是否非空 + if (intent.hasExtra("incomingNumber")) { // 检查Intent是否包含来电号码 String incomingNumber = intent.getStringExtra("incomingNumber"); - Timber.d("获取到来电信息,号码: "+ incomingNumber); - sendCallInfoToServer(incomingNumber); - } else if (intent.hasExtra("sender") && intent.hasExtra("messageBody")) { + Timber.d("获取到来电信息,号码: " + incomingNumber); + sendCallInfoToServer(incomingNumber); // 将来电信息发送到服务器 + } else if (intent.hasExtra("sender") && intent.hasExtra("messageBody")) { // 检查Intent是否包含短信信息 String sender = intent.getStringExtra("sender"); String messageBody = intent.getStringExtra("messageBody"); - Timber.d("获取到短信信息,号码: "+ sender); - sendSmsInfoToServer(sender, messageBody); + Timber.d("获取到短信信息,号码: " + sender); + sendSmsInfoToServer(sender, messageBody); // 将短信信息发送到服务器 } } - return START_STICKY; + return START_STICKY; // 返回服务启动策略 } + private void sendCallInfoToServer(String incomingNumber) { Timber.d("sendCallInfoToServer: 处理来电信息"); if (incomingNumber.equals("null") || incomingNumber == null) { @@ -81,9 +97,9 @@ public class MonitorService extends Service { networkUtils.postRequest(callInfo); } - private void sendSmsInfoToServer(String sender,String messageBody){ + private void sendSmsInfoToServer(String sender, String messageBody) { Timber.d("sendSmsInfoToServer: 处理短信信息"); - if (checkNullString(sender,messageBody)){ + if (checkNullString(sender, messageBody)) { return; } String currentTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); @@ -94,15 +110,15 @@ public class MonitorService extends Service { networkUtils.postRequest(smsInfo); } - public void sendWeChatMsg(WeChatMsg weChatMsg){ + public void sendWeChatMsg(WeChatMsg weChatMsg) { networkUtils.postRequest(weChatMsg); } - private boolean checkNullString(String a, String b){ - if (a == null || b == null){ + private boolean checkNullString(String a, String b) { + if (a == null || b == null) { return true; } - if (a.equals("null") || b.equals("null")){ + if (a.equals("null") || b.equals("null")) { return true; } return false;