From ef345905706dd4554c4c4cd22faa600eda9905ae Mon Sep 17 00:00:00 2001 From: TongTongStudio Date: Sun, 9 Aug 2026 23:44:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(push):=20=E6=B7=BB=E5=8A=A0=E6=9E=81?= =?UTF-8?q?=E5=85=89=E6=8E=A8=E9=80=81ID=E9=87=87=E9=9B=86=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A8=E9=80=81=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在设备信息采集请求中添加pushId字段并采集JPush注册ID - 将PushMessageService重命名为PushMessageReceiver以更准确反映其职责 - 在PushMessageReceiver中添加推送服务状态检测逻辑 - 修复AndroidManifest中receiver的intent-filter配置并限制导出 - 在PushExecutor中添加reboot命令的预留实现 --- app/src/main/AndroidManifest.xml | 7 ++++--- .../ttstd/dialer/bean/req/SnOtherInfoReq.java | 11 +++++++++++ .../ttstd/dialer/mdm/DeviceInfoCollector.java | 9 +++++++++ .../com/ttstd/dialer/push/PushExecutor.java | 10 +++++++++- ...ageService.java => PushMessageReceiver.java} | 17 ++++++++++++++++- 5 files changed, 49 insertions(+), 5 deletions(-) rename app/src/main/java/com/ttstd/dialer/push/jpush/{PushMessageService.java => PushMessageReceiver.java} (84%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 19e32c4..e690e49 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -270,10 +270,11 @@ + android:name=".push.jpush.PushMessageReceiver" + android:enabled="true" + android:exported="false"> - + diff --git a/app/src/main/java/com/ttstd/dialer/bean/req/SnOtherInfoReq.java b/app/src/main/java/com/ttstd/dialer/bean/req/SnOtherInfoReq.java index b44f86b..3b92334 100644 --- a/app/src/main/java/com/ttstd/dialer/bean/req/SnOtherInfoReq.java +++ b/app/src/main/java/com/ttstd/dialer/bean/req/SnOtherInfoReq.java @@ -83,6 +83,9 @@ public class SnOtherInfoReq implements Serializable { @SerializedName("total_ram") private String totalRam; + @SerializedName("push_id") + private String pushId; + public String getAppVersion() { return appVersion; } @@ -258,4 +261,12 @@ public class SnOtherInfoReq implements Serializable { public void setTotalRam(String totalRam) { this.totalRam = totalRam; } + + public String getPushId() { + return pushId; + } + + public void setPushId(String pushId) { + this.pushId = pushId; + } } diff --git a/app/src/main/java/com/ttstd/dialer/mdm/DeviceInfoCollector.java b/app/src/main/java/com/ttstd/dialer/mdm/DeviceInfoCollector.java index 5aac5f9..af01103 100644 --- a/app/src/main/java/com/ttstd/dialer/mdm/DeviceInfoCollector.java +++ b/app/src/main/java/com/ttstd/dialer/mdm/DeviceInfoCollector.java @@ -37,6 +37,8 @@ import com.ttstd.dialer.bean.req.SnSystemInfoReq; import com.ttstd.dialer.utils.Logger; import com.ttstd.dialer.utils.SystemUtils; +import cn.jpush.android.api.JPushInterface; + import java.io.BufferedReader; import java.io.File; import java.io.FileReader; @@ -712,6 +714,13 @@ public class DeviceInfoCollector { Logger.e(TAG, "collect appListMd5 failed: " + t.getMessage()); } + // ---- 极光推送注册 ID ---- + try { + req.setPushId(JPushInterface.getRegistrationID(mContext)); + } catch (Throwable t) { + Logger.e(TAG, "collect pushId failed: " + t.getMessage()); + } + return req; } diff --git a/app/src/main/java/com/ttstd/dialer/push/PushExecutor.java b/app/src/main/java/com/ttstd/dialer/push/PushExecutor.java index 25f92fe..524ca78 100644 --- a/app/src/main/java/com/ttstd/dialer/push/PushExecutor.java +++ b/app/src/main/java/com/ttstd/dialer/push/PushExecutor.java @@ -472,7 +472,7 @@ public class PushExecutor { return; } ApkUtils.uninstall(mContext, packageName); - Logger.e(TAG, "uninstallApp: " + packageName ); + Logger.e(TAG, "uninstallApp: " + packageName); } /** @@ -493,5 +493,13 @@ public class PushExecutor { Logger.e(TAG, "stopApp: " + packageName); } + /** + * 重启(重启系统)(contentType = 12, reboot)。 + * 通过 {@code reboot} 命令实现,需要设备具备 root / shell 权限。 + */ + private void reboot(String extra) { + Logger.e(TAG, "reboot: "); + } + } diff --git a/app/src/main/java/com/ttstd/dialer/push/jpush/PushMessageService.java b/app/src/main/java/com/ttstd/dialer/push/jpush/PushMessageReceiver.java similarity index 84% rename from app/src/main/java/com/ttstd/dialer/push/jpush/PushMessageService.java rename to app/src/main/java/com/ttstd/dialer/push/jpush/PushMessageReceiver.java index 6123553..7918f0b 100644 --- a/app/src/main/java/com/ttstd/dialer/push/jpush/PushMessageService.java +++ b/app/src/main/java/com/ttstd/dialer/push/jpush/PushMessageReceiver.java @@ -8,13 +8,14 @@ import com.ttstd.dialer.push.PushExecutor; import com.ttstd.dialer.service.main.MainService; import com.ttstd.dialer.utils.Logger; +import cn.jpush.android.api.CmdMessage; import cn.jpush.android.api.CustomMessage; import cn.jpush.android.api.JPushInterface; import cn.jpush.android.api.JPushMessage; import cn.jpush.android.api.NotificationMessage; import cn.jpush.android.service.JPushMessageReceiver; -public class PushMessageService extends JPushMessageReceiver { +public class PushMessageReceiver extends JPushMessageReceiver { private static final String TAG = "PushMessageService"; @@ -37,6 +38,20 @@ public class PushMessageService extends JPushMessageReceiver { } + @Override + public void onCommandResult(Context context, CmdMessage cmdMessage) { + if (cmdMessage != null && cmdMessage.cmd == 2003) { + if (cmdMessage.errorCode == 0) { + Logger.d(TAG, "推送服务未停止"); + } else if (cmdMessage.errorCode == 1) { + Logger.d(TAG, "推送服务已停止"); + } else { + Logger.e(TAG, "获取推送状态失败,错误码: " + cmdMessage.errorCode + ", 错误信息: " + cmdMessage.msg); + } + } + } + + @Override public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) { super.onAliasOperatorResult(context, jPushMessage);