更新记录

2.1.1(2026-11-03) 下载此版本

修复 v2.1.0 的两个编译阻断问题(老用户请务必升级到本版本后再打自定义基座):

  • 修复 KeepAliveService 缺失 mediaPlayer 字段声明导致的 Kotlin 编译失败
  • 修复 WifiLock 顶层类在 compileSdk 33+ 的 SDK 存根中移除导致的编译失败(改用 WifiManager.WifiLock 与 WifiManager.WIFI_MODE_*)
  • 健壮性:通知小图标对应用图标缺失设防,避免 Android 12+ 前台服务通知非法导致宿主进程崩溃
  • 优化:通知栏 setter 不再重置稳定定时器相位/重建播放器;前后台回调去除栈内跳转重复触发;服务销毁清理唤醒锁超时任务
  • interface.uts 嵌套函数类型别名改为具名引用,规避 HBuilderX 5.33-alpha UTS 编译器 unkown instance 崩溃
  • 新增 verification/native-app 原生验证壳(Android 12 模拟器实测通过:保活/定时器/闹钟/通知点击/停止不复燃)

2.1.0(2026-11-02) 下载此版本

新增鸿蒙Next(HarmonyOS NEXT)支持,Android 功能不变。

鸿蒙侧能力(utssdk/app-harmony,API 12):

  • 长时任务保活:startKeepAlive 申请系统长时任务(正规保活方式,后台模式可经 harmonyBackgroundMode 指定,默认音频播放)
  • 稳定定时器:长时任务保活进程 + setInterval,息屏可持续执行
  • 定时提醒:提醒代理一次性倒计时提醒(触发为系统通知)
  • 通知管理:标题/内容/通知 id 发布、更新与取消
  • 平台不支持的能力(无声音乐/WakeLock/息屏回调等)返回明确失败说明

注意:鸿蒙侧使用需在宿主工程 manifest.json 声明 ohos.permission.KEEP_BACKGROUND_RUNNING 与 ohos.permission.PUBLISH_AGENT_REMINDER,详见插件 README。

2.0.0(2026-11-02) 下载此版本

Android 保活 UTS 插件首发,兼容 uni-app / uni-app x(UTS 插件,Android 5.0+)。

  • 后台无声音乐保活:内置静音循环音频(可替换),防止息屏后 CPU 休眠
  • 息屏精准定时器 ×2:稳定定时器(秒级,Handler+WakeLock 联动)与闹钟定时(>60s 周期,AlarmManager 单发续排,进程死亡后仍会拉活服务)
  • 事件回调:前后台切换、息屏/亮屏、通知点击
  • 通知栏全套管理:标题/内容/图标/通知 id/渠道/重要性/锁屏可见性/振动/分组/组摘要/附加数据/更新与取消
  • 细粒度 WakeLock / WiFi Lock:支持超时获取与标签定制,休眠时保持 WiFi 连接
  • 杂项能力:崩溃自恢复(链式原崩溃处理器)、最近任务隐藏、存活时长查询、包名拉起应用等
  • 国内厂商适配:小米/华为/OPPO/vivo/一加/魅族等自启动设置引导、电池优化豁免申请、通知权限管理
查看更多

平台兼容性

up-android-live - Android 保活插件

一个功能完善的 Android 应用保活插件,专为 uni-app 开发,支持国内主流厂商(小米、华为、OPPO、vivo、一加、魅族等)的保活策略。

功能特性

核心保活机制

  • ✅ 前台服务(Foreground Service):通过前台服务保持应用活跃
  • ✅ WorkManager 定期任务:使用 Android Jetpack WorkManager 实现可靠的后台任务调度
  • ✅ JobScheduler 任务:兼容 Android 5.0+ 的任务调度
  • ✅ 双进程守护:主服务和守护服务运行在不同进程,相互监控
  • ✅ 开机自启动:支持设备重启后自动启动服务
  • ✅ 粘性服务(Sticky Service):服务被杀后自动重启
  • ✅ 唤醒锁(WakeLock):防止 CPU 休眠导致服务停止

国内厂商适配

  • ✅ 小米(MIUI):自启动管理、电池优化
  • ✅ 华为/荣耀(EMUI/HarmonyOS):自启动管理、后台保护
  • ✅ OPPO(ColorOS):自启动管理、后台冻结
  • ✅ vivo(OriginOS/FuntouchOS):后台高耗电、自启动
  • ✅ 一加(OxygenOS):链式启动管理
  • ✅ 魅族(Flyme):待机耗电管理
  • ✅ 三星(OneUI):电池优化
  • ✅ 华硕(ZenUI):自启动管理
  • ✅ 乐视(EUI):自启动管理

权限管理

  • ✅ 电池优化豁免检测与申请
  • ✅ 通知权限检测与申请(Android 13+)
  • ✅ 自启动权限引导(厂商特定)
  • ✅ 一键跳转到相关设置页面

安装

方式一:直接复制

将 uni_modules/up-android-live 目录复制到你的 uni-app 项目根目录下的 uni_modules 文件夹中。

方式二:通过 HBuilderX

  1. 将插件文件夹放入项目的 uni_modules 目录
  2. 在 HBuilderX 中右键项目,选择"重新编译"

使用方法

1. 导入插件

import * as keepAlive from '@/uni_modules/up-android-live'

2. 启动保活服务

// 基础用法
const result = keepAlive.startKeepAlive(null)
console.log(result.message)

// 自定义配置
const result = keepAlive.startKeepAlive({
  title: '应用正在运行',
  content: '保持应用活跃状态',
  channelId: 'my_channel',
  channelName: '我的服务',
  heartbeatInterval: 900000 // 15分钟心跳间隔(毫秒)
})

if (result.success) {
  console.log('保活服务启动成功')
} else {
  console.error('启动失败:', result.message)
}

3. 停止保活服务

const result = keepAlive.stopKeepAlive()
console.log(result.message)

4. 检查服务状态

const isRunning = keepAlive.isKeepAliveRunning()
console.log('服务运行状态:', isRunning)

5. 权限管理

检查所有权限

const permissions = keepAlive.checkPermissions()
console.log('通知权限:', permissions.hasNotificationPermission)
console.log('电池优化豁免:', permissions.isIgnoringBatteryOptimizations)
console.log('自启动权限:', permissions.mayHaveAutoStartPermission)

请求电池优化豁免

const result = keepAlive.requestIgnoreBatteryOptimizations()
console.log(result.message)

请求通知权限(Android 13+)

const result = keepAlive.requestNotificationPermission()
console.log(result.message)

跳转到自启动设置

const result = keepAlive.goToAutoStartSetting()
console.log(result.message)

跳转到通知设置

const result = keepAlive.goToNotificationSetting()
console.log(result.message)

6. 获取厂商信息

const info = keepAlive.getManufacturerInfo()
console.log('厂商:', info.manufacturer)
console.log('是否国内厂商:', info.isDomestic)
console.log('支持自启动设置:', info.supportAutoStart)
console.log('设置包名:', info.settingPackage)

完整示例

推荐的初始化流程

<template>
  <view class="container">
    <button @click="initKeepAlive">初始化保活</button>
    <button @click="checkStatus">检查状态</button>
    <button @click="stopService">停止服务</button>
  </view>
</template>

<script setup lang="ts">
import * as keepAlive from '@/uni_modules/up-android-live'

// 初始化保活服务
const initKeepAlive = () => {
  // 1. 检查厂商信息
  const manufacturerInfo = keepAlive.getManufacturerInfo()
  console.log('当前设备厂商:', manufacturerInfo.manufacturer)

  // 2. 检查权限
  const permissions = keepAlive.checkPermissions()

  // 3. 请求必要权限
  if (!permissions.hasNotificationPermission) {
    keepAlive.requestNotificationPermission()
  }

  if (!permissions.isIgnoringBatteryOptimizations) {
    keepAlive.requestIgnoreBatteryOptimizations()
  }

  // 4. 如果是国内厂商,引导用户设置自启动
  if (manufacturerInfo.isDomestic && manufacturerInfo.supportAutoStart) {
    uni.showModal({
      title: '需要自启动权限',
      content: '为了保持应用正常运行,请在设置中允许应用自启动',
      confirmText: '去设置',
      success: (res) => {
        if (res.confirm) {
          keepAlive.goToAutoStartSetting()
        }
      }
    })
  }

  // 5. 启动保活服务
  const result = keepAlive.startKeepAlive({
    title: '应用正在运行',
    content: '保持应用活跃状态',
    heartbeatInterval: 900000 // 15分钟
  })

  if (result.success) {
    uni.showToast({
      title: '保活服务已启动',
      icon: 'success'
    })
  } else {
    uni.showToast({
      title: result.message,
      icon: 'none'
    })
  }
}

// 检查服务状态
const checkStatus = () => {
  const isRunning = keepAlive.isKeepAliveRunning()
  const permissions = keepAlive.checkPermissions()

  console.log('服务运行状态:', isRunning)
  console.log('权限状态:', permissions)

  uni.showModal({
    title: '服务状态',
    content: `运行中: ${isRunning}\n通知权限: ${permissions.hasNotificationPermission}\n电池优化豁免: ${permissions.isIgnoringBatteryOptimizations}`,
    showCancel: false
  })
}

// 停止服务
const stopService = () => {
  const result = keepAlive.stopKeepAlive()
  uni.showToast({
    title: result.message,
    icon: result.success ? 'success' : 'none'
  })
}
</script>

在 App.vue 中自动启动

<script setup lang="ts">
import { onLaunch } from '@dcloudio/uni-app'
import * as keepAlive from '@/uni_modules/uts-keepalive'

onLaunch(() => {
  // 应用启动时自动启动保活服务
  setTimeout(() => {
    const result = keepAlive.startKeepAlive({
      title: '应用正在运行',
      content: '保持应用活跃状态'
    })
    console.log('保活服务启动:', result.message)
  }, 1000)
})
</script>

API 文档

startKeepAlive(options)

启动保活服务。

参数:

  • options (KeepAliveOptions | null): 配置选项
    • title (string): 通知标题,默认 "应用正在运行"
    • content (string): 通知内容,默认 "保持应用活跃状态"
    • channelId (string): 通知渠道ID,默认 "keepalive_channel"
    • channelName (string): 通知渠道名称,默认 "保活服务"
    • heartbeatInterval (number): 心跳间隔(毫秒),默认 900000(15分钟)

返回值: KeepAliveResult

{
  success: boolean,  // 是否成功
  message: string,   // 消息
  code?: number      // 错误码(失败时)
}

stopKeepAlive()

停止保活服务。

返回值: KeepAliveResult

isKeepAliveRunning()

检查保活服务是否正在运行。

返回值: boolean

requestIgnoreBatteryOptimizations()

请求忽略电池优化(会打开系统设置页面)。

返回值: KeepAliveResult

isIgnoringBatteryOptimizations()

检查是否已忽略电池优化。

返回值: boolean

goToAutoStartSetting()

跳转到自启动设置页面(针对国内厂商)。

返回值: KeepAliveResult

goToNotificationSetting()

跳转到通知设置页面。

返回值: KeepAliveResult

getManufacturerInfo()

获取设备厂商信息。

返回值: ManufacturerInfo

{
  manufacturer: string,        // 厂商名称
  isDomestic: boolean,         // 是否国内厂商
  supportAutoStart: boolean,   // 是否支持自启动设置
  settingPackage?: string      // 设置应用包名
}

checkPermissions()

检查所有必要权限。

返回值: PermissionCheckResult

{
  hasNotificationPermission: boolean,        // 通知权限
  isIgnoringBatteryOptimizations: boolean,   // 电池优化豁免
  mayHaveAutoStartPermission: boolean        // 自启动权限(无法准确检测)
}

requestNotificationPermission()

请求通知权限(Android 13+ 需要运行时权限)。

返回值: KeepAliveResult

v2.0.0 新增功能 API

命名均为本项目自创;模块函数式风格,与 v1.0.0 接口完全兼容。

重要契约(先读)

  1. 通知渠道不可变:channelId / channelName / 重要性 / 锁屏可见性 / 振动 / 声音 属渠道级配置,渠道在首次 startKeepAlive 或 applyNotification 时创建,创建后修改无效(Android 8.0+ 系统限制)。请在首次启动前设置。
  2. 单槽替换:startSystemTimer / startAlarmTimer 重复调用为替换旧任务;三个事件回调重复注册同样替换。
  3. 回调送达前提:定时器2 触发时若进程已死亡,插件会按最后配置拉活服务恢复保活,但 JS 回调仅在进程存活期间送达。
  4. 数值映射:重要性 1/2/3 = 低/默认/高;锁屏可见性 -1000/-1/0/1 = 不指定/保密/私有/公开;唤醒锁类型当前仅支持 1(PARTIAL_WAKE_LOCK)。
  5. 精确闹钟:Android 12+ 可被用户撤销、14+ 默认关闭。未授权时 startAlarmTimer 自动降级为窗口闹钟(精度下降)并在结果 message 中提示。
  6. 音乐配定时器:定时器1 运行期间自动持有 WakeLock;配合无声音乐使用息屏精度最佳,音乐关闭时息屏可能出现漂移。
  7. 闹钟系统限制:未授权精确闹钟时降级为窗口闹钟,不承诺进程死亡后的拉活(后台启动限制);应用被系统"强制停止"后任何闹钟均不再投递,需用户重新打开应用。
  8. 崩溃自恢复(setCrashRestartEnabled):依赖延迟闹钟拉起界面;Android 10+ 原生系统限制后台启动 Activity,原生定制 ROM(国产)多可生效,AOSP 类系统可能静默失败。

后台无声音乐

live.setMusicEnabled(true)   // 开启(服务存活期间无缝循环,默认音量 0 无声)
live.setMusicVolume(0)       // 音量 0~1
live.setMusicResource('keepalive_silence')  // 插件 res/raw 资源名,可放自己的音频

息屏精准定时器

// 定时器1:秒级周期,配合音乐息屏精准
live.startSystemTimer(60, (seconds : number) => {
  console.log('60s 到点', seconds)
})
live.cancelSystemTimer()

// 定时器2:AlarmManager,适合 >60s 周期
live.startAlarmTimer(0, 65 * 1000, () => {
  console.log('65s 到点')
})
live.cancelAlarmTimer()

live.clearAllTimers()        // 停止全部定时器并释放关联唤醒锁

// 精确闹钟权限(Android 12+)
live.isExactAlarmAllowed()   // 是否已授权
live.requestExactAlarmPermission()  // 跳转系统授权页

事件回调

live.onBackgroundStateChanged((inBackground : boolean) => {
  console.log(inBackground ? '进入后台' : '回到前台')
})
live.onScreenStateChanged((screenOn : boolean) => {
  console.log(screenOn ? '亮屏' : '息屏')
})
live.setNotificationExtraData('my-data')
live.onNotificationClick((data : string) => {
  console.log('通知点击,附加数据:', data)
})

通知栏管理(配置 + applyNotification 提交)

live.setNotificationTitle('后台运行中')
live.setNotificationContent('点击查看详情')
live.setNotificationSmallIcon('icon')     // res/drawable 资源名
live.setNotificationId(1001)              // 同 id 更新,异 id 新发
live.setNotificationChannelId('my_channel')      // 渠道级
live.setNotificationChannelImportance(1)         // 渠道级:1/2/3
live.setNotificationLockscreenVisibility(1)      // 渠道级:-1000/-1/0/1
live.setNotificationGroup('work')                // 分组
live.setNotificationGroupSummary(true)           // 组摘要
live.setNotificationExtraData('{"page":"chat"}')
live.setNotificationAutoCancel(false)
live.applyNotification()                  // 按当前配置构建/更新

live.cancelNotification(1002)
live.cancelNotificationGroup('work')

WakeLock / WiFi Lock

live.setWakeLockType(1, 'my-tag')
live.acquireWakeLock(60 * 1000)   // 超时自动释放;-1 无限期
live.releaseWakeLock()
live.acquireWifiLock()            // 休眠时保持 WiFi
live.releaseWifiLock()

杂项

live.getKeepAliveTime()           // 服务本次存活毫秒数
live.moveToBackground()           // 等效按 Home
live.setRecentTaskHidden(true)    // 从最近任务隐藏
live.goAppDetailSettings()        // 系统应用详情页(引导自启动)
live.setCrashRestartEnabled(true) // 崩溃后恢复界面(链式原崩溃处理器)
live.openAppByPackageName('com.xxx')
live.restartService()             // 按当前配置重启

鸿蒙Next(HarmonyOS NEXT)支持

v2.1.0 起支持鸿蒙(utssdk/app-harmony,API 12)。鸿蒙与 Android 保活机制完全不同——长时任务(backgroundTaskManager.startContinuousTask)是系统正规保活方式,无需无声音乐 hack。

宿主配置(必需)

uni-app x 工程 manifest.json 源码视图,鸿蒙 distribute 配置中声明权限:

"app-harmony": {
  "distribute": {
    "module": {
      "requestPermissions": [
        { "name": "ohos.permission.KEEP_BACKGROUND_RUNNING" },
        { "name": "ohos.permission.PUBLISH_AGENT_REMINDER" }
      ]
    }
  }
}

能力差异(与 Android 对比)

能力 Android 鸿蒙Next
保活 前台服务+无声音乐 长时任务(startKeepAlive 即申请,后台模式可用 harmonyBackgroundMode 指定)
稳定定时器1 Handler+WakeLock 长时任务保活进程 + setInterval(息屏精度以真机为准)
定时器2 AlarmManager 精确闹钟(有回调) 提醒代理一次性倒计时提醒,触发为系统通知,无 JS 回调
通知管理 全套(渠道/分组/图标…) 仅标题/内容/通知 id 生效,其余配置缓存忽略
前后台/息屏/通知点击回调 ✅ 注册成功但暂不触发(建议业务层用 uni.onAppShow/onAppHide)
无声音乐 / WakeLock / WiFi Lock / 崩溃自恢复 / 厂商引导 ✅ 不支持,调用返回明确失败说明

后台模式(harmonyBackgroundMode,默认 1):1=音频播放 2=录音 3=定位 4=蓝牙 5=多设备 6=事务保持 7=VoIP。系统按模式校验应用行为:声明音频播放建议真的在播声音(业务侧自行决定),无对应活动的任务可能被系统回收。

使用示例(鸿蒙同 API)

import * as live from '@/uni_modules/up-android-live'

live.startKeepAlive({
  title: '应用正在运行',
  content: '数据同步中',
  harmonyBackgroundMode: 1 // 可选,默认音频播放模式
})
live.startSystemTimer(60, (s : number) => {
  // 长时任务存活期间持续执行
})

保活原理

多重保活策略

  1. 前台服务:通过前台服务显示持久通知,提高进程优先级
  2. WorkManager:使用 Android Jetpack WorkManager 实现可靠的后台任务
  3. JobScheduler:兼容 Android 5.0+ 的系统级任务调度
  4. 双进程守护:主服务和守护服务运行在不同进程,相互监控
  5. 粘性服务:服务返回 START_STICKY,被杀后系统会尝试重启
  6. 开机自启:监听开机广播,设备重启后自动启动
  7. 唤醒锁:防止 CPU 休眠导致服务停止

国内厂商适配

国内厂商通常有严格的后台管理策略,需要用户手动授予权限:

  • 自启动权限:允许应用在后台自动启动
  • 后台运行权限:允许应用在后台持续运行
  • 电池优化豁免:不受省电模式限制

插件提供了一键跳转到各厂商设置页面的功能,简化用户操作。

注意事项

1. 权限配置

插件已在 AndroidManifest.xml 中声明所有必要权限,无需手动配置。

2. 用户引导

保活效果很大程度上依赖用户授予的权限,建议:

  • 在首次启动时引导用户授予所有必要权限
  • 使用友好的文案说明为什么需要这些权限
  • 提供一键跳转到设置页面的功能

3. 系统限制

  • Android 8.0+ 对后台服务有严格限制,必须使用前台服务
  • Android 9.0+ 进一步限制后台活动
  • Android 12+ 对前台服务有更严格的限制
  • 国内厂商的系统优化可能会杀死后台进程

4. 电池消耗

保活服务会增加电池消耗,建议:

  • 合理设置心跳间隔(建议 15 分钟以上)
  • 避免在服务中执行耗时操作
  • 根据实际需求决定是否启用保活

5. 测试建议

在以下场景测试保活效果:

  • 应用切换到后台
  • 清理后台应用
  • 设备重启
  • 低电量模式
  • 不同厂商设备

兼容性

  • 最低 Android 版本:Android 5.0 (API 21)
  • 目标 Android 版本:Android 14 (API 34)
  • 鸿蒙:HarmonyOS NEXT 及以上(API 12)
  • uni-app 版本:3.6.0+
  • HBuilderX 版本:3.6.0+

常见问题

Q: 为什么服务还是被杀死了?

A: 国内厂商的系统优化非常激进,即使使用了保活策略,也可能被杀死。建议:

  • 确保用户已授予所有必要权限(自启动、电池优化豁免、通知权限)
  • 引导用户将应用加入白名单
  • 在应用设置中关闭"自动清理"

Q: 如何隐藏前台服务通知?

A: Android 8.0+ 强制要求前台服务必须显示通知,无法隐藏。但可以:

  • 设置通知优先级为 LOW,减少干扰
  • 自定义通知内容,让用户理解为什么需要显示通知

Q: 心跳间隔设置多少合适?

A: 建议 15 分钟(900000 毫秒)以上。间隔太短会:

  • 增加电池消耗
  • 可能被系统判定为滥用后台
  • 影响用户体验

Q: 支持 iOS 吗?

A: 目前仅支持 Android。iOS 有严格的后台限制,不支持类似的保活机制。

Q: 如何判断保活是否生效?

A: 可以通过以下方式测试:

  1. 调用 isKeepAliveRunning() 检查服务状态
  2. 查看通知栏是否显示前台服务通知
  3. 在系统设置中查看正在运行的服务
  4. 使用 adb 命令查看进程:adb shell ps | grep 包名

目录结构

uni_modules/up-android-live/
├── package.json                          # 插件配置文件
├── README.md                             # 使用文档
└── utssdk/
    ├── interface.uts                     # 接口定义(共 53 个导出)
    ├── app-android/                      # Android 实现
    │   ├── index.uts                     # Android 主入口(模块函数式 API)
    │   ├── config.json                   # Android 配置
    │   ├── AndroidManifest.xml           # Android 清单文件
    │   ├── KeepAliveConfig.kt            # 配置与状态单例(UTS/原生共享)
    │   ├── KeepAliveStore.kt             # 配置持久化(闹钟跨进程恢复)
    │   ├── KeepAliveService.kt           # 前台保活服务(通知/音乐/定时器1/事件)
    │   ├── AlarmScheduler.kt             # 定时器2 调度器(AlarmManager)
    │   ├── AlarmReceiver.kt              # 定时器2 闹钟接收器(单发+续排)
    │   ├── CrashRestartHelper.kt         # 崩溃自恢复(链式包装原崩溃处理器)
    │   ├── CrashRestartReceiver.kt       # 崩溃恢复接收器(拉起主界面)
    │   ├── NotificationClickActivity.kt  # 通知点击中转页
    │   ├── LiveEventHub.kt               # 回调桥(UTS/原生共享)
    │   ├── BootReceiver.kt               # 开机广播接收器
    │   ├── GuardService.kt               # 守护服务
    │   ├── KeepAliveWorker.kt            # WorkManager 任务
    │   ├── KeepAliveJobService.kt        # JobScheduler 任务
    │   ├── WorkerHelper.kt               # WorkManager 辅助类
    │   ├── JobHelper.kt                  # JobScheduler 辅助类
    │   └── res/
    │       ├── raw/
    │       │   └── keepalive_silence.wav # 内置静音循环音频
    │       └── values/
    │           └── strings.xml           # 字符串资源
    └── app-harmony/                      # 鸿蒙Next 实现(API 12)
        ├── index.uts                     # 53 个同名导出:长时任务保活/定时器/提醒代理/通知管理
        └── config.json

更新日志

v2.1.0 (2026-11-02)

  • ✅ 鸿蒙Next支持(utssdk/app-harmony,API 12):长时任务保活、稳定定时器(保活进程+setInterval)、提醒代理定时通知、通知基础管理
  • ✅ 平台不支持的能力(无声音乐/WakeLock/息屏回调等)返回明确失败说明;KeepAliveOptions 新增可选 harmonyBackgroundMode
  • ✅ README 新增鸿蒙章节(能力差异表 + 宿主权限配置片段)

v2.0.0 (2026-11-02)

  • ✅ 后台无声音乐保活:setMusicEnabled / setMusicVolume / setMusicResource,内置静音循环音频,防止息屏后 CPU 休眠
  • ✅ 息屏精准定时器1:startSystemTimer / cancelSystemTimer,服务内 Handler + WakeLock 联动,配合音乐息屏精准执行
  • ✅ 息屏精准定时器2:startAlarmTimer / cancelAlarmTimer / clearAllTimers,AlarmManager 单发+续排,适合 >60s 周期;进程死亡后仍会拉活服务(回调仅在进程存活期间送达)
  • ✅ 精确闹钟权限配套:isExactAlarmAllowed / requestExactAlarmPermission,权限缺失自动降级窗口闹钟并提示
  • ✅ 事件回调:onBackgroundStateChanged(前后台)/ onScreenStateChanged(息屏亮屏)/ onNotificationClick(通知点击,重复注册为替换)
  • ✅ 通知栏全套管理:15 个配置接口 + applyNotification 显式提交 + cancelNotification / cancelNotificationGroup,支持 id/渠道/重要性/锁屏可见性/振动/声音/分组/组摘要/附加数据/autoCancel
  • ✅ 细粒度 WakeLock:setWakeLockType / acquireWakeLock(支持超时)/ releaseWakeLock;WiFi 锁:acquireWifiLock / releaseWifiLock
  • ✅ 杂项:getKeepAliveTime / moveToBackground / setRecentTaskHidden / goAppDetailSettings / setCrashRestartEnabled(链式崩溃处理,不吞宿主上报)/ openAppByPackageName / restartService
  • ✅ 修复:stopKeepAlive 停止后不再被服务 onDestroy 无条件自拉重启(受控重启状态机)
  • ✅ checkPermissions 新增 exactAlarmAllowed 字段

v1.0.0 (2026-05-31)

  • ✅ 初始版本发布
  • ✅ 支持前台服务保活
  • ✅ 支持 WorkManager 和 JobScheduler
  • ✅ 支持双进程守护
  • ✅ 支持开机自启动
  • ✅ 适配国内主流厂商
  • ✅ 完整的权限管理功能

许可证

MIT License

技术支持

如有问题或建议,欢迎提交 Issue。

致谢

感谢 uni-app 团队提供的 UTS 插件开发能力。

隐私、权限声明

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

前台服务、通知、电池优化豁免、精确闹钟、WiFi锁

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

插件不采集任何数据

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

无

许可协议

MIT协议

暂无用户评论。