更新记录

1.2.1(2026-10-25)

兼容蒸汽模式


平台兼容性

uni-app(5.26)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× √ × × √ × √ × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(5.26)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × √ × × ×

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × × √

UTS 安卓后台保活与原生 HTTP 任务

Android 前台服务、原生 HTTP 定时请求、限时息屏唤醒、通知停止和厂商设置引导,附可直接运行的演示页。

HBuilderX 5.26+;插件 ID:austin-keep-x;版本 1.2.1。

项目 Android 演示文件
uni-app x · Vapor 6.0+ index.uvue
uni-app x · VDOM 5.0+ index.uvue
uni-app · Vue3 5.0+ index.vue

原生 HTTP 任务需要 Android 6.0+。不支持 iOS、鸿蒙、Web、小程序通用保活。

第 1 步:导入插件

完整目录放到 你的项目/uni_modules/austin-keep-x/。uni_modules 与项目的 manifest.json、pages.json 同级,保留插件全部文件。

项目 manifest.json 无需为本插件重复填写权限、注册服务或勾选模块。插件自带的 utssdk/app-android/AndroidManifest.xml 会在打包时自动合并。

通知授权和手机的后台运行设置需要运行后操作,见第 4 步。

第 2 步:注册演示页

在项目 pages.json 的 pages 数组中添加:

{
  "path": "uni_modules/austin-keep-x/index",
  "style": { "navigationBarTitleText": "安卓后台保活", "disableScroll": true }
}

在自己的页面中打开演示页:

uni.navigateTo({ url: '/uni_modules/austin-keep-x/index' })

uni-app x 使用插件内 index.uvue;普通 uni-app Vue3 使用 index.vue,路由写法相同。

第 3 步:制作并运行自定义基座

  1. HBuilderX 选中项目,进入 发行 → 原生 App 云打包 → Android,勾选 制作自定义调试基座。
  2. 填写应用包名及签名信息,完成打包并安装新基座。
  3. 在运行菜单选择 自定义基座,运行到 Android 手机,打开第 2 步的演示页。

首次导入、更新插件原生代码或权限后需要重打基座;只修改页面、调用参数或文档不需要。入口见 DCloud 自定义基座说明。

第 4 步:体验后台运行

演示页无需填写域名或接口。

  1. 按需打开“手机设置”:建议允许后台运行、锁定最近任务;通知未授权时点 允许通知,按弹窗或设置页完成授权。
  2. 点 开始体验,等页面显示“服务运行中”。
  3. 返回桌面或锁屏,等待至少 60 秒。
  4. 回到页面,查看后台新增心跳、离开时长和体验结果。
  5. 点 结束体验,停止服务。

体验提供最多 2 分钟息屏运行支持,会增加耗电;到期释放 CPU 唤醒锁,服务仍可运行。结束体验会提前释放,结果保留供查看。已有 HTTP 业务任务时,需先明确结束并清除配置才能体验。

手机设置怎么选

页面按钮 是否需要 用户操作
允许后台运行 建议 打开本应用电池设置,允许后台运行;无法直达时按提示从应用详情进入
防止一键清理 建议 查看步骤,在手机最近任务界面找到本应用,按卡片菜单或厂商手势选择“锁定”;插件不能替用户完成
允许通知 推荐 允许本应用通知,便于查看、停止服务;拒绝通知不阻止服务启动
补充:允许本应用不优化 补充,未豁免时显示 列表选择“所有应用 → 本应用 → 不优化”,只修改本应用

vivo / iQOO 未找到后台开关时:手机设置 → 搜索“后台耗电管理”或“后台高耗电” → 本应用 → 允许后台高耗电。厂商页面可能受系统权限保护,按钮无法保证直达。

打开设置不代表完成授权。通知、电池优化状态可读取;厂商后台高耗电和最近任务锁定需用户确认。完成设置后回到页面,重新开始体验。

体验结果怎么看

每 30 秒记录一次原生心跳,离开 60 秒通常新增约 2 次,系统休眠可能延迟。

结果 含义 / 操作
有心跳 同一服务会话在离开期间记录了新心跳,观察到后台执行
无心跳 未观察到新心跳,检查后台运行设置后重试
结果待确认 仅新增 1 次且紧邻返回,可能是解锁后的补跳;或本轮进入过系统设置,需重新体验
不足 60 秒 重新开始,离开至少 60 秒
发生恢复 服务实例已变化,不能据此判断原实例持续运行
服务已停止 返回时未运行,或提前结束了体验
读取失败 未取得有效状态,重新体验

返回后的前台心跳不计入本次结果。页面不能自动证明用户已锁屏;心跳也不等于业务成功或全程连续执行。“运行记录”中可查看详细记录。

接入自己的业务

1. 导入并调用保活 API

业务页面从 @/uni_modules/austin-keep-x 导入,即 你的项目/uni_modules/austin-keep-x/ 目录。@/ 为包含 manifest.json 的项目源码目录,不要追加 index.uvue 或 utssdk/app-android。

uni-app x 放在 <script setup lang="uts">;普通 uni-app Vue3 使用 lang="ts"。

import {
  startKeepAlive, getKeepAliveStatus, stopKeepAlive,
  KeepAliveStartOptions
} from '@/uni_modules/austin-keep-x'

// 分别绑定页面的开始、刷新、停止按钮。
function startTask(): void {
  const options: KeepAliveStartOptions = {
    notificationTitle: '后台任务运行中',
    notificationText: '点击返回应用,或停止后台任务',
    autoRestart: true,
    wakeLockTimeoutMs: 0,
    heartbeatIntervalMs: 30000
  }
  const result = startKeepAlive(options)
  console.log('是否接受启动请求', result.ok, result.errMsg)
}
function refreshTask(): void {
  const status = getKeepAliveStatus()
  console.log('服务是否运行', status.running, status.serviceState)
}
function stopTask(): void {
  const result = stopKeepAlive()
  console.log('是否接受停止请求', result.ok, result.errMsg)
}

启动是异步过程,ok 表示接受请求,稍后刷新得到的 running 才是实际状态。插件提供前台服务支持;页面 JS 定时器、WebSocket、录音或定位需要各自原生后台实现。首次启动服务、申请通知权限应在前台页面发起。

需要申请 Android 13+ 通知权限时,在前台按钮中调用:

import {
  requestKeepAliveNotificationPermission, KeepAlivePermissionResult
} from '@/uni_modules/austin-keep-x'

function requestNotification(): void {
  requestKeepAliveNotificationPermission({
    complete: (result: KeepAlivePermissionResult) => {
      console.log('通知是否已授权', result.granted)
    }
  })
}

2. 按需设置息屏唤醒

wakeLockTimeoutMs 默认 0;需要息屏期间继续处理原生任务时,填任务所需时长,最长 600000 毫秒(10 分钟)。到期自动释放、不续期;提前完成时调用:

import { releaseKeepAliveWakeLock } from '@/uni_modules/austin-keep-x'

releaseKeepAliveWakeLock()

唤醒锁不点亮屏幕,会增加耗电,不保证网络可用;Doze 仍可能限制未豁免应用。系统恢复只沿用未到期额度,开机恢复不重新取得旧锁。见 Android 电源限制。

3. 按需使用原生 HTTP 任务

适合状态同步、在线状态上报和定时查询。请求由 Android 原生线程执行,无需先调用 startKeepAlive()。

import {
  startKeepAliveHttpTask, getKeepAliveHttpTaskStatus, stopKeepAliveHttpTask,
  KeepAliveHttpTaskOptions
} from '@/uni_modules/austin-keep-x'

// 分别绑定开始、刷新、停止按钮,替换为自己的 HTTPS 接口。
function startHttpTask(): void {
  const options: KeepAliveHttpTaskOptions = {
    taskId: 'status-sync',
    url: 'https://你的域名/api/status',
    method: 'GET',
    intervalMs: 60000,
    timeoutMs: 15000,
    maxRetries: 2,
    autoRestart: true
  }
  const result = startKeepAliveHttpTask(options)
  console.log('是否接受启动请求', result.ok, result.errMsg)
}
function refreshHttpTask(): void {
  const status = getKeepAliveHttpTaskStatus()
  console.log('服务运行状态 / HTTP 2xx 次数', status.serviceRunning, status.successCount)
}
function stopHttpTask(): void {
  const result = stopKeepAliveHttpTask()
  console.log('是否接受停止请求', result.ok, result.errMsg)
}
要点 行为
任务数量 同时一个;重新开始会替换当前 HTTP 任务
停止 stopKeepAliveHttpTask() 只停止 HTTP,默认清除配置和结果;stopKeepAlive() 停止两种服务
重试 GET 默认最多重试 2 次,POST 默认不重试;POST 配置重试须填 idempotencyHeader,服务端按此头去重
数据保存 请求头、请求体及有限结果使用本机 Keystore 加密保存;退出登录应停止并清除配置
HTTPS 使用系统证书验证,不绕过自签名验证,不自动跟随重定向
业务结果 HTTP 2xx 不等于业务成功,需检查返回内容;令牌过期后更新配置并重新开始
请求间隔 尽力调度,休眠、断网和厂商策略可能延迟,不保证精确定时或永久在线

同次逻辑请求重试复用 requestId,不同周期生成新 ID;服务端仍需正确去重。停止会尽力取消请求,已到达服务端的操作不会回滚。不要循环续唤醒锁维持请求。

Android 15+ 且 targetSdk 35+:dataSync 后台运行受 6 小时 / 24 小时时限约束,且不能从开机广播启动。触及时限或系统暂停后,读取原因,回前台由用户重新开始。见 Android 超时说明及 dataSync 限制。

4. 按需复制演示页

项目 复制来源 放入自己项目
uni-app x uni_modules/austin-keep-x/index.uvue pages/keep/index.uvue
uni-app Vue3 uni_modules/austin-keep-x/index.vue pages/keep/index.vue

复制后在 pages.json 注册 pages/keep/index。页面中的 @/uni_modules/austin-keep-x 导入保持原样,插件目录继续保留。

API 与参数

以下 API、类型均从 @/uni_modules/austin-keep-x 导入。

API 参数 返回与说明
startKeepAliveHttpTask(options) KeepAliveHttpTaskOptions KeepAliveResult;配置并启动原生 HTTP 任务
getKeepAliveHttpTaskStatus() 无 KeepAliveHttpTaskStatus;任务与最近请求结果
stopKeepAliveHttpTask(clearConfig?) boolean,默认 true KeepAliveResult;停止 HTTP,默认清配置/结果;false 保留加密配置及诊断,仍不会自动重开
startKeepAlive(options?) KeepAliveStartOptions \| null KeepAliveResult;启动,运行中再次调用可更新配置
stopKeepAlive() 无 KeepAliveResult;停止保活及 HTTP 任务,取消恢复并释放锁
isKeepAliveRunning() 无 boolean;真实服务状态
getKeepAliveStatus() 无 KeepAliveStatus;运行、电源、通知与恢复状态
getKeepAliveDiagnostics() 无 KeepAliveDiagnostics;失败、跳转和最近记录
clearKeepAliveDiagnostics() 无 boolean;只清除记录,不启停服务
getKeepAliveGuide() 无 KeepAliveGuide;当前厂商操作说明
releaseKeepAliveWakeLock() 无 boolean;提前释放锁,服务继续运行
requestKeepAliveNotificationPermission(options?) KeepAlivePermissionOptions \| null void;Android 13+ 主动申请通知权限
openKeepAliveSettings(target) string,目标见下表 KeepAliveSettingsResult;按目标跳转并返回实际入口、回退说明
openNotificationSettings() 无 boolean;打开通知设置
openBatteryOptimizationSettings() 无 boolean;打开电池优化列表,由用户选择 App
openAutoStartSettings() 无 boolean;尝试本厂商设置,失败时回退应用设置
openAppSettings() 无 boolean;打开当前应用详情

旧设置 API 保持可用,true 只表示页面已打开,不表示用户已授权。新接入建议使用 openKeepAliveSettings(),读取实际去向和后续步骤。

设置跳转与返回字段

import { openKeepAliveSettings, KeepAliveSettingsResult } from '@/uni_modules/austin-keep-x'

const entry: KeepAliveSettingsResult = openKeepAliveSettings('background')
// entry.opened:是否打开了页面;entry.direct:是否直达目标。
// entry.message:向用户展示的后续操作;不能据 opened 推断已授权。
target 目标与回退行为
background 打开本应用电池设置;不可用时回退应用详情,并说明后续路径。厂商后台高耗电入口需按提示手动进入
recent-tasks 返回锁定步骤,不自动打开最近任务或替用户锁定;opened、direct 均为 false
auto-start 尝试当前厂商自启动入口;不可用时回退应用详情。业务启用恢复策略时按需引导
battery 电池优化列表;不可用时回退应用详情
notification 本应用通知设置;不可用时回退应用详情
app 当前应用详情

KeepAliveSettingsResult 的 5 个字段均存在:

字段 类型 说明
opened boolean 是否成功打开了设置页面;不代表用户完成设置
target string 本次请求的目标
destination string 实际入口标识;如 app-battery 为本应用电池页,manual 为需手动操作
direct boolean 是否直达目标入口;回退到本应用电池页或详情时为 false
message string 当前入口的操作说明、回退原因或手动步骤

自启动入口按当前设备尝试;厂商后台高耗电等页面可能受系统权限保护,无法直达时需手动进入。最近任务“锁定”是厂商功能,不能用 Android 的屏幕固定替代。电池豁免与厂商“允许后台高耗电”是不同设置。参见 Android 设置入口与屏幕固定/Lock task 说明。

KeepAliveHttpTaskOptions

所有时间单位为毫秒;范围内需填整数。taskId、url 必填,其余可省略。

字段 类型 默认值 / 说明
taskId string 1~64 位字母、数字、点、下划线或横线
url string 1~4096 字符自有 HTTPS 地址,不含账号或 fragment;状态/日志不返回 query
method string? GET;支持 GET、POST
headers KeepAliveHttpHeader[]? 最多 32 项 { name: string, value: string },合计最多 16 KiB;值最长 4096 字符且不可含换行,不重复、不覆盖 Host/Content-Length 等传输头
body string? 空;POST 最多 64 KiB,JSON 自行序列化;GET 不支持请求体
intervalMs number? 60000;30000~86400000,尽力调度
timeoutMs number? 15000;1000~60000,单次请求总超时
maxRetries number? GET 2 / POST 0;0~3,每次逻辑请求的额外重试上限
retryBackoffMs number? 5000;1000~300000,失败退避基准
autoRestart boolean? true;允许系统回收后尝试恢复,受系统类型及时限约束
maxResponseBytes number? 8192;1~65536,响应读取上限,超出标记截断
saveResponseBody boolean? true;为 false 时不保存响应正文,仍保存响应码和统计
idempotencyHeader string? 空;POST 重试需填服务端支持的去重请求头名,例如 Idempotency-Key,值由插件按逻辑请求生成

普通失败仅对网络错误、408、429、5xx 按上限退避重试;401 等其他 4xx 与重定向不重试,整数秒 Retry-After 最多等待 5 分钟。离线不消耗请求次数,每 30 秒检查;每次完成后再等待 intervalMs,不追补休眠时错过的周期。总超时会结算失败并尽力中断 I/O;系统 DNS 等底层调用可能延迟释放,下一次请求等待前一次退出,不并发叠加。

进程中断时,已发送的 POST 可能处于服务端已处理但客户端未收到结果的状态。无幂等约定时任务暂停并说明原因,避免自动重复提交;配置幂等头仍需服务端正确实现去重,恢复同一请求也不会突破剩余重试次数。

KeepAliveHttpTaskStatus

以下字段全部存在。时间戳为毫秒,未发生为 0;计数为当前任务统计。

字段 类型 说明
supported boolean 是否支持原生 HTTP(Android 6.0+)
notificationsEnabled / channelBlocked boolean 应用通知可用 / HTTP 任务通知渠道被关闭
configured / enabled boolean 是否保存任务配置 / 是否允许任务执行
serviceRunning boolean HTTP 前台服务是否真实运行;配置已保存不等于已运行
taskId string 当前任务标识
state string idle 未配置、starting 启动中、waiting 等待、running 请求中、retrying 重试中、paused 已暂停或停止但保留配置、failed 失败;默认清除配置后为 idle
requestInFlight boolean 当前是否有正在执行的请求
url / method string 脱敏接口地址(不含查询参数)/ 请求方法
intervalMs / timeoutMs number 生效的间隔与单次超时
autoRestart boolean 是否配置恢复尝试
nextRunAt number 下次预计执行时间;系统可能延迟
lastStartedAt / lastFinishedAt number 最近请求开始 / 结束时间
lastSuccessAt number 最近 HTTP 2xx 时间
totalRuns number 逻辑执行次数,重试归在同一次请求内
successCount / failureCount number 成功 / 最终失败次数
consecutiveFailures number 连续最终失败次数
attempt number 当前逻辑请求的尝试序号
requestId string 本次逻辑请求 ID,重试复用
lastHttpStatus number 最近 HTTP 响应码,尚无响应为 0
lastErrorCode / lastErrorMessage string 最近错误代码 / 说明
responseText string 有限响应正文;禁用保存时为空
responseTruncated boolean 是否因上限截断
responseBytes number 已读取响应字节数
lastDurationMs number 最近请求耗时
pauseReason string 系统时限、未确认的 POST 等暂停原因;回前台检查后重新开始

HTTP 启动错误码:31001 上下文不可用、31002 参数无效、31003 服务启动失败、31004 本机存储失败、31005 平台不支持、31006 权限或前台启动条件不满足。运行时请求失败在 lastErrorCode / lastErrorMessage 中读取。

KeepAliveStartOptions

字段 类型 默认值 说明
notificationTitle string? 后台任务运行中 通知标题,空白使用默认值
notificationText string? 点击返回应用,或停止后台任务 通知正文
channelId string? austin_keep_x 通知渠道;创建后部分属性不能由代码覆盖
channelName string? 后台任务 通知渠道名称
autoRestart boolean? true 系统回收、重启和应用更新后的恢复尝试
wakeLockTimeoutMs number? 0 0~600000;0 不持锁;不自动续期
heartbeatIntervalMs number? 30000 5000~300000;原生诊断采样,不是业务回调

KeepAliveResult

字段 类型 说明
ok boolean 请求是否被接受
running boolean 返回时服务是否已确认运行
errCode number 0 成功,非 0 见错误表
errMsg string 失败说明
detail string 请求状态或原生失败详情

KeepAliveStatus

字段 类型 说明
supported boolean 当前平台是否支持
enabled boolean 用户是否请求保留当前任务,与实际运行分开
running boolean 真实前台服务状态
serviceState string starting / running / stopped / failed;非支持平台为 unsupported
autoRestartEnabled boolean 是否启用恢复策略
platform string 当前平台
manufacturer / brand / model string 设备厂商、品牌、型号
sdkInt number Android API Level
batteryOptimizationIgnored boolean 是否在系统电池优化豁免名单
screenInteractive boolean 设备是否处于可交互亮屏状态
deviceIdleMode boolean 是否进入深度 Doze
powerSaveMode boolean 系统省电模式
backgroundRestricted boolean 系统 App 后台活动限制,不代表全部厂商策略
notificationPermissionGranted boolean Android 13+ 通知运行时权限,低版本为 true
notificationsEnabled boolean App 通知总开关
channelBlocked boolean 当前通知渠道是否被禁用
startedAt number 最近服务会话开始的 Unix 毫秒时间,未创建过会话为 0;停止后保留
processId number 当前查询所在的 App 进程 ID;是否有前台服务另看 running
sessionId string 最近服务实例标识,重建时变化
lastHeartbeatAt number 最近原生心跳的 Unix 毫秒时间
lastHeartbeatElapsedRealtime number 最近心跳的开机单调时间,毫秒
heartbeatAgeMs number 距最近心跳的单调时间,无有效样本为 -1
heartbeatCount number 此实例心跳计数,查询不会增加计数
heartbeatIntervalMs number 配置的心跳间隔
wakeLockHeld boolean CPU 锁是否持有,Doze 中仍受约束
wakeLockTimeoutMs number 配置的唤醒时长
wakeLockExpiresAt number 当前唤醒锁截止的 Unix 毫秒时间,未持锁时为 0
restartCount number 已记录的恢复次数
lastStopReason string 最近停止来源
lastTaskRemovedAt number 最近划走任务的 Unix 毫秒时间
lastStartReason string 最近启动来源
lastFailureReason / lastFailureAt string / number 最近失败说明及 Unix 毫秒时间
lastAutoStartEntry / lastAutoStartFallback string 最近厂商入口及回退记录
lastReceiverAction / lastReceiverAt string / number 最近系统广播及 Unix 毫秒时间
notificationTitle / notificationText string 保存的通知文案
channelId string 当前通知渠道

诊断与厂商说明

KeepAliveDiagnostics 包含 lastFailureReason: string、lastFailureAt: number、lastAutoStartEntry: string、lastAutoStartFallback: string、lastReceiverAction: string、lastReceiverAt: number,含义同状态表;recentLogsText: string 是有限条数的本机记录。

KeepAliveGuide 字段 类型 说明
manufacturerKey string 厂商标识
manufacturerName string 厂商名称
autoStartInstructions string 自启动 / 后台启动说明
batteryInstructions string 电池与后台运行说明
recentTasksInstructions string 最近任务保护说明
note string 当前系统能力与入口限制

通知授权回调

KeepAlivePermissionOptions 的 success?、fail?、complete? 均为 (result: KeepAlivePermissionResult) => void。结果字段为 ok: boolean、granted: boolean、errCode: number、errMsg: string;complete 在本次请求结束后调用。通知未授权不代表禁止前台服务,但通知栏控制可能不可见;另查通知总开关和渠道状态。

插件自动合并的权限与组件

以下内容已在 uni_modules/austin-keep-x/utssdk/app-android/AndroidManifest.xml 声明,项目 manifest.json 无需重复填写,也不需要复制这份 XML。

权限 用途
android.permission.FOREGROUND_SERVICE 前台服务
android.permission.FOREGROUND_SERVICE_SPECIAL_USE 普通保活服务类型
android.permission.FOREGROUND_SERVICE_DATA_SYNC HTTP 任务服务类型
android.permission.INTERNET HTTP 请求
android.permission.ACCESS_NETWORK_STATE 网络状态检测
android.permission.WAKE_LOCK 限时 CPU 唤醒,无系统授权弹窗
android.permission.RECEIVE_BOOT_COMPLETED 开启恢复后的开机恢复尝试
android.permission.POST_NOTIFICATIONS Android 13+ 通知,需运行时主动申请

KeepAliveForegroundService、KeepAliveHttpService、KeepAliveBootReceiver 和设置跳转所需 queries 也由插件合并。组件类名前缀为 uts.sdk.modules.austinKeepX。

发布应用前:普通保活使用 specialUse,在上述插件 XML 中找到 PROPERTY_SPECIAL_USE_FGS_SUBTYPE,把 android:value 改为应用实际的后台任务用途;修改后重新打包。HTTP 使用 dataSync,录音、导航需各自专用实现。见 Android 前台服务类型。

恢复与系统边界

情况 行为
返回桌面 / 锁屏 服务继续运行;需 CPU 持续处理时设置有限唤醒额度
划走最近任务 stopWithTask=false,记录时间,不循环拉起进程
系统回收进程 开启恢复时通过系统 sticky 机制尝试重建,时机由系统决定
重启 / 覆盖更新 开启恢复且系统允许广播和后台启动时尝试恢复,记录结果
页面或通知“停止” 取消恢复、释放锁并停止服务
系统设置中的强制停止 不自行拉起应用;需用户重新打开 App
Android“活动应用”停止 当次应用与服务结束;下次能读到用户停止记录时取消恢复,跨重启记录可能不可用
深度 Doze / 厂商清理 可能暂停 CPU、网络或终止进程,设置引导不等于授权

Android 12+ 后台首次启动前台服务受限制,应由用户在可见页面启动。见 前台服务后台启动限制。

Android 13+“活动应用”的停止按钮不会向应用发送回调。插件在下次读取状态或系统恢复前检查退出记录;识别到用户停止后取消恢复,需再次点启动。退出记录跨重启可能丢失,因此开启恢复时,“活动应用”停止后仍可能在下次开机恢复。需要明确取消后续恢复时,使用插件页面或插件通知中的“停止”。 Android 11~13 的退出原因可能同时代表应用更新,遇到无法区分的记录时优先取消恢复,更新后可能需要手动启动。见 Android 用户停止处理说明。

错误处理

errCode 说明与处理
0 请求成功,继续查看真实状态
10001 平台不支持
30001 缺少上下文或前台页面;权限请求在前台发起
30002 启动失败;查看 detail、诊断和基座服务配置
30003 停止请求失败
30004 参数超范围或不是有限数值
30005 缺少清单 / 类型权限,重打包含此插件的基座
30006 系统拒绝后台启动;返回可见页面由用户操作
30007 通知授权失败或被拒绝,按需打开通知设置

没有通知时先查 notificationPermissionGranted、notificationsEnabled、channelBlocked,不要直接判定服务未运行。配置不匹配时查看诊断失败记录。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android 自动合并前台服务、dataSync/specialUse 服务类型、网络、唤醒锁、开机广播和通知权限;通知授权主动申请。原生 HTTP 任务 Android 6.0+,普通保活 Android 5.0+。不支持 iOS 或鸿蒙通用保活。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

按开发者指定的接口发送 HTTP 请求,使用开发者配置的请求头和请求体;不内置业务服务器或数据上报。任务配置与有限结果保存在本应用私有目录,HTTP 任务使用 Android Keystore 加密保存;默认停止任务时清除配置和结果。读取设备电源、通知、厂商与本应用退出记录用于本机诊断。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

暂无用户评论。