feat(push): 添加极光推送ID采集并优化推送模块

- 在设备信息采集请求中添加pushId字段并采集JPush注册ID
- 将PushMessageService重命名为PushMessageReceiver以更准确反映其职责
- 在PushMessageReceiver中添加推送服务状态检测逻辑
- 修复AndroidManifest中receiver的intent-filter配置并限制导出
- 在PushExecutor中添加reboot命令的预留实现
This commit is contained in:
2026-08-09 23:44:58 +08:00
parent 3efa751939
commit ef34590570
5 changed files with 49 additions and 5 deletions

View File

@@ -270,10 +270,11 @@
<!-- User defined. For test only 用户自定义接收消息器,3.0.7开始支持,目前新tag/alias接口设置结果会在该广播接收器对应的方法中回调-->
<!--since 5.2.0 接收JPush相关事件-->
<receiver
android:name=".push.jpush.PushMessageService"
android:exported="true">
android:name=".push.jpush.PushMessageReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="cn.jpush.android.intent.SERVICE_MESSAGE" />
<action android:name="cn.jpush.android.intent.RECEIVER_MESSAGE" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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: ");
}
}

View File

@@ -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);