PDF 竞品通知场景与规则全量摘录#
整理日期:2026-08-20
范围:只摘录竞品通知场景、触发条件、频率控制、通知 ID、渠道、模板选择、点击路由、多语言与动态证据。
本文不判断任何自有产品是否具备对应功能,也不做采用、删除或优先级建议。
目录#
- 阅读口径
- 通知能力全局总表
- QuickDoc v1.2.5:51 条普通通知与 1 条常驻通知
- PDF Reader v1.1.7:高优先级 FCM 随机通知
- Lumio v1.2.8:不活跃循环提醒
- Smart、Stackwise、All Document Reader、Ora
- 跨竞品通知规则对比
- 动态验证与未知项
- 来源索引
1. 阅读口径#
1.1 证据标记#
| 标记 | 含义 |
|---|---|
[S] |
APK、Manifest、资源或反编译代码可直接核验的静态事实 |
[D] |
真机、系统服务、Job、日志或通知栏实际观察到的动态事实 |
[I] |
基于静态与动态证据作出的有限推断 |
[U] |
当前样本未验证、服务端不可见或证据不足 |
1.2 三类内容必须分开#
- 可见普通通知:用户在通知栏看到的本地通知或 FCM 到达后由客户端生成的通知。
- 常驻前台服务通知:前台服务运行时必须显示的通知,可能包含快捷入口或任务进度。
- 后台触发基础设施:FCM、WorkManager、JobScheduler、Alarm、Boot Receiver 等。只有存在明确发布通知的调用链时,才计为通知场景;否则只记为线索。
1.3 数量口径#
- QuickDoc 的“51 条”是 51 个可达运行时模板 ID,不是 51 套完全不同文案。
- QuickDoc 由 25 套唯一 English 文案组合出 51 条运行时模板。
- PDF Reader v1.1.7 当前可达路径为 9 套模板;APK 里另有 4 组各 9 套备用资源,但当前可见路径未引用。
- Lumio 的标题和正文来自远端配置,APK 内没有可完整列出的默认营销模板。
- Smart PDF 的 9 组基础模板由 FCM 与定时路径共用;定时路径另加 1 组 AI 摘要模板。它们是 APK 内置文案,不代表真实文件或任务状态。
- Stackwise 的业务文案来自远端
contents[language_code].notifications;APK 默认关闭且内容为空,不能列举默认营销标题或正文。 - All Document Reader 的默认
scenario_ids=27–37可从 11 组内置工具文案中随机选取;另有 9 组风险型候选,但默认策略没有选择它们。
2. 通知能力全局总表#
| 竞品 | 已还原的可见通知 | 核心触发 | 频控 / 选择 | 点击路由 | 证据结论 |
|---|---|---|---|---|---|
| QuickDoc PDF Reader v1.2.5 | 51 条普通模板 + 1 条常驻 FGS 通知 | FCM、Home/最近任务、定时、解锁、退出、广告退出、安装/卸载、文件创建/删除、回收站 | 普通通知共用 ID 2002 并覆盖旧通知;集合内随机;存在全局门控和场景频控 |
常驻通知 4 个明确入口;普通通知最终落页未逐项动态验收 | [S][D] 最完整 |
| PDF Reader v1.1.7 | 9 条当前可达 FCM 模板 + FGS 常驻通知 | 高优先级 FCM | 客户端 5 分钟节流、07:00–22:59、9 选 1随机 | 最终落页未逐模板动态验收 | [S][D] FCM 到达与 FGS 已动态观察 |
| Lumio v1.2.8 | 远端配置的不活跃提醒,模板数量未知 | MainActivity.onPause() 后延迟 OneTimeWork |
默认总开关关闭、默认 24 小时、唯一任务 REPLACE、按展示次数顺序轮换 |
点击回 App launcher | [S] 代码链闭环;[D] 本机未实际出提醒 |
| Smart PDF Reader v1.2.5 | 9 组 FCM / 定时共用模板 + 1 组仅定时 AI 模板;真机见 ID 8194 |
高优先级 FCM、本地 Alarm、Boot/升级、Job、FGS | 首装300秒、默认1小时分支、可选时段/设备状态门控;随机;初次后约4秒静默连续更新 | OutOpenActivity → SplashActivity,最终功能页未还原 |
[S][D] 普通通知、FGS、划卡和强停均已复核 |
| Stackwise v1.2.1 | 远端不活跃提醒;APK 默认无营销文案 | BaseActivity.onPause → OneTimeWork → ReminderWorker |
默认关闭、24小时;同名 Work REPLACE;展示后续排 |
launcher,无业务 route | [S] 调用链闭环;[D] 本机未排入提醒,划卡/强停无自恢复 |
| All Document Reader v1.5.6 | 11 组默认工具文案;9 组风险候选默认未选 | Remote Config → setAndAllowWhileIdle(RTC_WAKEUP) → ReminderReceiver |
默认首延迟2天、20:30、每3天、7天最多2条;活跃/点击/忽略频控 | 显式 SplashActivity,仅携带实验/场景参数 |
[S][D] Alarm 已登记;权限拒绝,未见实际通知 |
| Ora | 无 APK 逆向报告 | 未知 | 未知 | 未知 | [U] |
3. QuickDoc v1.2.5:51 条普通通知与 1 条常驻通知#
3.1 通知 ID 与渠道#
| 类型 | ID / Channel | 规则 |
|---|---|---|
| 普通可见通知 | 通知 ID 2002 |
每次发布前先取消旧的同 ID 通知,因此同一时刻通常最多保留 1 条普通召回通知 [S] |
| 普通通知渠道 | ordinary_notification_channel |
importance 4,振动,红灯 [S] |
| 浮动普通通知渠道 | ordinary_notification_channel_FLOAT |
importance 4,无振动 [S] |
| 常驻 FGS 通知 | 通知 ID 2001;quickdoc_channel |
importance 3;1 个自定义布局,4 个快捷入口,并可切为 0%–100% 进度模式 [S][D] |
3.2 所有普通通知的共同门控#
普通通知在进入各场景分支后,仍需同时通过以下客户端检查:
- 已取得通知权限。
- App 不在前台。
- 设备不处于锁屏状态。
- 新用户安装后的前 5 分钟不展示。
- 通过该场景自己的时间戳、间隔或互斥检查。
- 部分间隔读取运行时配置;仅凭 APK 无法确认线上实际值。
3.3 各触发源的额外规则#
| 触发源 | 额外条件 | 模板选择 | 已知频率边界 |
|---|---|---|---|
| 高优先级 FCM | App 后台、屏幕状态满足、本地时间 07:00 <= hour < 23:00 |
fcm_01…09 中随机 1 条 |
本地最小间隔 5 分钟;服务端发送计划、总量和分群未知 |
| Home / 最近任务 | 用户触发 Home/最近任务相关路径 | home_01…09 中随机 1 条 |
受共同门控与运行时场景间隔控制;线上值未知 |
| 定时 | 定时分支被调度并通过资格检查 | timing_01…09 中随机 1 条 |
至少间隔 1 小时,并有 hourly 频控 |
| 屏幕解锁 | 收到屏幕解锁事件并通过资格检查 | unlock_01…10 中随机 1 条 |
受共同门控与场景时间戳控制;线上值未知 |
| 普通 App 退出 | App 退出且不是已识别的 Merge/Compress/Split 专用流程 | background_01/02 随机 1 条 |
退出场景间隔由运行时配置读取;本次测试值为 0,不代表线上全量用户 |
| Merge / Compress / Split 退出 | 退出时命中对应流程状态 | 分别固定 background_03/04/05 |
受共同门控与退出场景频控 |
| 广告页退出 | 命中广告返回事件 | 固定 ADreturn1 |
受共同门控与场景频控 |
| App 安装 / 卸载 | 检测到包安装或卸载事件 | 分别固定 installapp/uninstallapp |
具体运行时间隔未知 |
| 文件创建 | 新 PDF 大于 5 MiB,或检测到其他新文件 | 大 PDF 用 newPDF;其他新文件用 newfile |
受共同门控与场景频控 |
| 文件删除 | 删除普通文件、视频或图片 | 分别固定 deletefile/deletevideo/deleteimage |
受共同门控与场景频控 |
| 回收站 | 回收站条件成立,且本地小时 >= 12 |
固定 recyclebin |
受共同门控与回收站场景频控 |
3.4 51 条运行时场景完整清单#
“文案编号”对应 3.5 节的 25 套唯一文案。相同文案被不同触发源复用时,运行时 ID 仍分别计数。
| # | 类型 | 运行时 ID | 触发 / 选择规则 | 文案编号 |
|---|---|---|---|---|
| 1 | FCM | notifyDocPDF_fcm_01 |
高优先级 FCM;9 选 1随机 | 01 |
| 2 | Home | notifyDocPDF_home_01 |
Home/最近任务;9 选 1随机 | 01 |
| 3 | FCM | notifyDocPDF_fcm_02 |
高优先级 FCM;9 选 1随机 | 02 |
| 4 | Home | notifyDocPDF_home_02 |
Home/最近任务;9 选 1随机 | 02 |
| 5 | FCM | notifyDocPDF_fcm_03 |
高优先级 FCM;9 选 1随机 | 03 |
| 6 | Home | notifyDocPDF_home_03 |
Home/最近任务;9 选 1随机 | 03 |
| 7 | FCM | notifyDocPDF_fcm_04 |
高优先级 FCM;9 选 1随机 | 04 |
| 8 | Home | notifyDocPDF_home_04 |
Home/最近任务;9 选 1随机 | 04 |
| 9 | FCM | notifyDocPDF_fcm_05 |
高优先级 FCM;9 选 1随机 | 05 |
| 10 | Home | notifyDocPDF_home_05 |
Home/最近任务;9 选 1随机 | 05 |
| 11 | FCM | notifyDocPDF_fcm_06 |
高优先级 FCM;9 选 1随机 | 06 |
| 12 | Home | notifyDocPDF_home_06 |
Home/最近任务;9 选 1随机 | 06 |
| 13 | FCM | notifyDocPDF_fcm_07 |
高优先级 FCM;9 选 1随机 | 07 |
| 14 | Home | notifyDocPDF_home_07 |
Home/最近任务;9 选 1随机 | 07 |
| 15 | FCM | notifyDocPDF_fcm_08 |
高优先级 FCM;9 选 1随机 | 08 |
| 16 | Home | notifyDocPDF_home_08 |
Home/最近任务;9 选 1随机 | 08 |
| 17 | FCM | notifyDocPDF_fcm_09 |
高优先级 FCM;9 选 1随机 | 09 |
| 18 | Home | notifyDocPDF_home_09 |
Home/最近任务;9 选 1随机 | 09 |
| 19 | 定时 | notifyDocPDF_timing_01 |
至少 1 小时 + hourly 频控;9 选 1随机 | 01 |
| 20 | 定时 | notifyDocPDF_timing_02 |
同上 | 02 |
| 21 | 定时 | notifyDocPDF_timing_03 |
同上 | 03 |
| 22 | 定时 | notifyDocPDF_timing_04 |
同上 | 04 |
| 23 | 定时 | notifyDocPDF_timing_05 |
同上 | 05 |
| 24 | 定时 | notifyDocPDF_timing_06 |
同上 | 06 |
| 25 | 定时 | notifyDocPDF_timing_07 |
同上 | 07 |
| 26 | 定时 | notifyDocPDF_timing_08 |
同上 | 08 |
| 27 | 定时 | notifyDocPDF_timing_09 |
同上;定时专用大 PDF 压缩主题 | 10 |
| 28 | 解锁 | notifyDocPDF_unlock_01 |
屏幕解锁;10 选 1随机 | 01 |
| 29 | 解锁 | notifyDocPDF_unlock_02 |
同上 | 02 |
| 30 | 解锁 | notifyDocPDF_unlock_03 |
同上 | 03 |
| 31 | 解锁 | notifyDocPDF_unlock_04 |
同上 | 04 |
| 32 | 解锁 | notifyDocPDF_unlock_05 |
同上 | 05 |
| 33 | 解锁 | notifyDocPDF_unlock_06 |
同上 | 06 |
| 34 | 解锁 | notifyDocPDF_unlock_07 |
同上 | 07 |
| 35 | 解锁 | notifyDocPDF_unlock_08 |
同上 | 08 |
| 36 | 解锁 | notifyDocPDF_unlock_09 |
同上 | 09 |
| 37 | 解锁 | notifyDocPDF_unlock_10 |
同上;解锁专用回收站整理主题 | 11 |
| 38 | 普通退出 | notifyDocPDF_background_01 |
普通退出默认候选;2 选 1随机 | 12 |
| 39 | 普通退出 | notifyDocPDF_background_02 |
普通退出默认候选;2 选 1随机 | 13 |
| 40 | Merge 退出 | notifyDocPDF_background_03 |
Merge 流程退出;固定 | 14 |
| 41 | Compress 退出 | notifyDocPDF_background_04 |
Compress 流程退出;固定 | 15 |
| 42 | Split 退出 | notifyDocPDF_background_05 |
Split 流程退出;固定 | 16 |
| 43 | 广告退出 | notifyDocPDF_ADreturn1 |
广告页退出;固定 | 17 |
| 44 | App 安装 | notifyDocPDF_installapp |
检测到 App 安装;固定 | 18 |
| 45 | App 卸载 | notifyDocPDF_uninstallapp |
检测到 App 卸载;固定 | 19 |
| 46 | 新 PDF | notifyDocPDF_newPDF |
新 PDF 且大于 5 MiB;固定 | 20 |
| 47 | 新文件 | notifyDocPDF_newfile |
其他新文件;固定 | 21 |
| 48 | 删除文档 | notifyDocPDF_deletefile |
删除普通文件;固定 | 22 |
| 49 | 删除视频 | notifyDocPDF_deletevideo |
删除视频;固定 | 23 |
| 50 | 删除图片 | notifyDocPDF_deleteimage |
删除图片;固定 | 24 |
| 51 | 回收站 | notifyDocPDF_recyclebin |
回收站条件成立且本地小时 >= 12;固定 |
25 |
数量复核:9 + 9 + 9 + 10 + 6 + 2 + 2 + 3 + 1 = 51。
3.5 25 套唯一文案完整摘录#
| 编号 | 场景主题 | English title / body / CTA | 包内繁中 title / body / CTA |
|---|---|---|---|
| 01 | 扫描 | 📷 Ready to Scan Files! Scan, edit, and save as PDF with ease. 👉 Scan |
📷 準備掃描檔案! 輕鬆掃描、編輯並儲存為PDF。 👉 掃描 |
| 02 | 转换 | 📂 Convert Files Instantly! One tap to turn any file into PDFs. 👉 Convert |
📂 立即轉換檔案! 一鍵將任何檔案轉成PDF。 👉 轉換 |
| 03 | 编辑 | ✏️ PDF Editing Available! Quickly edit and update your PDFs. 👉 Edit |
✏️ 支援PDF編輯! 快速編輯並更新您的PDF。 👉 改 |
| 04 | 文件库刷新 | 📂 Library Just Refreshed Your file list has been updated. 👉 Check |
📂 資料庫已更新 您的檔案清單已更新。 👉 檢查 |
| 05 | 新文件 | 🧾 New File Detected Tap to explore your latest documents. 👉 View |
🧾 偵測到新檔案 點擊探索您最新的文件。 👉 檢視 |
| 06 | 文件同步 | 🔃 Sync Your File List Update to get the latest file view. 👉 Update |
🔃 同步檔案清單 更新以取得最新的檔案檢視。 👉 更新 |
| 07 | 重要文件 | 📌 Important File Waiting There’s a key document ready to open. 👉 Check |
📌 重要檔案待處理 有一份重要文件已準備好開啟。 👉 檢查 |
| 08 | 新工具 | 🧪 Try Our Latest Tools! New features just landed in your PDF app.👉 Try |
🧪 試試我們最新的工具! PDF應用程式剛加入新功能。👉 試試 |
| 09 | 版本更新 | ⚠️ Update Recommended Your current version is outdated.👉 Update |
⚠️ 建議更新 您目前的版本已過時。👉 更新 |
| 10 | 大 PDF 压缩 | ⚡ PDF file too large? Compress it now to save storage and share with friends much faster! Compress |
⚡ PDF 檔案太大? 立即壓縮以節省儲存空間,並更快與朋友分享! 壓縮 |
| 11 | 回收站整理 | 🗑️ Keep your storage organized Check your trash docs for better performance. Check |
🗑️ 保持儲存空間整潔 檢查回收筒中的文件以提升效能。 查看 |
| 12 | 普通退出 A | ⏲️ Time to Finish Up! Your PDF conversion is waiting to be completed.🔃 Continue |
⏲️ 該完成了! 您的PDF轉換正等待完成。🔃 續 |
| 13 | 普通退出 B | 🕘Don’t leave it halfway! You’re halfway through your PDF workflow—finish strong! 🚀 Continue |
🕘別半途而廢! 您的PDF流程已進行到一半—加油完成! 🚀 續 |
| 14 | Merge 退出 | ⏳ Almost done merging your PDFs.. Selected PDFs are ready to combine. Finish now! Continue |
⏳ 即將完成 PDF 合併.. 已選取的 PDF 已準備好合併,立即完成吧! 繼續 |
| 15 | Compress 退出 | 🚨 Compressing PDF... That last PDF is a bit large. Compress it for easier sharing. Compress |
🚨 正在壓縮 PDF... 最後一個 PDF 有點大,壓縮後更容易分享。 壓縮 |
| 16 | Split 退出 | 👍 Splitting your PDF... Almost done! One step left to split your PDF. Come back and finish it now! Resume |
👍 正在分割 PDF... 即將完成! 距離分割 PDF 只差一步,回來立即完成吧! 繼續 |
| 17 | 广告退出 | Oops! Tap an AD accidentally? No worries, tap below to get right back. Back |
哎呀!不小心點到廣告了嗎? 別擔心,點擊下方即可返回。 返回 |
| 18 | App 安装 | [%s] Installed! Deep Scan Complete 🔍 During setup, we detected 1 hidden photo that can be successfully recovered. View |
[%s] 已安裝!深度掃描完成 🔍 安裝過程中,我們偵測到 1 張可成功恢復的隱藏照片。 查看 |
| 19 | App 卸载 | Notice: 1 Leftover File Detected! ⚠️ Do not lose this recoverable photo during the uninstallation cleanup. View Now |
注意:偵測到 1 個殘留檔案!⚠️ 卸載清理時,請勿遺失這張可恢復的照片。 立即查看 |
| 20 | 新大 PDF | ⚡ New big file detected! Reduce size? The file is too large to share via email/social media. Compress it in 1-tap! Compress |
⚡ 偵測到新的大檔案!要縮小體積嗎? 檔案太大,無法透過電子郵件/社群媒體分享。一鍵壓縮! 壓縮 |
| 21 | 新文件到达 | 🧾 [%s] Just Arrived A new document has been added to your files. 📁 View |
🧾 [%s] 剛剛送達 一份新文件已新增到您的檔案中。 📁 檢視 |
| 22 | 删除文档 | 🗑️[%s] document(s) deleted Did you delete them by mistake? Tap to view or restore them now. Check |
🗑️[%s] 份文件已刪除 是否誤刪?點擊立即查看或恢復。 查看 |
| 23 | 删除视频 | 🎥 [%s] Recoverable Video(s) Detected! Protect your valuable video clips from being overwritten and lost forever. Restore Now |
🎥 偵測到 [%s] 個可恢復的影片! 保護您珍貴的影片片段,避免被覆寫而永久遺失。 立即恢復 |
| 24 | 删除图片 | 📸 [%s] Deleted Photo(s) Can Be Saved! Restoring these images now prevents them from being permanently overwritten. Recover |
📸 [%s] 張已刪除的照片可以救回! 立即恢復這些圖片,可避免被永久覆寫。 恢復 |
| 25 | 回收站提醒 | 🗑️ Just a quick reminder A few deleted items are still in your trash. Clear to refresh your storage. Clean |
🗑️ 溫馨提醒 部分已刪除的項目仍在回收筒中,清空以釋放儲存空間。 清理 |
3.6 常驻通知规则#
| 项目 | 规则 |
|---|---|
| 通知 ID | 2001 |
| 普通状态 | 自定义 RemoteViews,固定复用同一条常驻通知 |
| 快捷入口 | notice_view → View;notice_scan → Scan;notice_import → Import;notice_convert → Convert |
| 任务状态 | 扫描或处理时可切换为进度布局,显示 0%–100% |
| 动态证据 | 正常运行与划掉最近任务后均观察到 FGS 及 ID 2001 仍存在 |
3.7 多语言、路由和未验证边界#
- 51 条普通通知与常驻入口提供 default English、ja、de、vi、ko、fr、mr、es、ms、it、pt、zh-rTW,共 12 种资源配置。
- 未单独打包的语言回退 Android 默认资源,即 English;未发现 zh-rCN 独立资源。
%s等占位符由运行时填充 App 名、文件名或数量。- 普通通知的 CTA 文本和资源映射已还原,但最终点击落到哪个具体页面未逐条真机验证。
- 服务端 FCM 发送计划、分群、A/B 实验、每日上限、线上运行时间隔均不可从 APK 确认。
4. PDF Reader v1.1.7:高优先级 FCM 随机通知#
4.1 当前可达路径#
PzDotX.onMessageReceived() 收到消息后先调用统一恢复入口 q();只有高优先级消息继续进入本地可见通知分支。可见通知还需通过:
- 已取得通知权限。
- App 当前不在前台。
- 锁屏状态通过检查。
- 横竖屏状态通过检查。
- 距离上次本地可见通知至少 5 分钟。
- 本地时间处于
07:00–22:59。 - 通过后,从
notifyDocPDF_fcm_01…09中随机选择 1 条。
这里的 5 分钟只是客户端本地节流,不能代表服务端总频控、每日上限或真实发送频率。
4.2 当前可达 9 套模板#
| ID | English title / body / CTA | 包内繁中 title / body / CTA |
|---|---|---|
| 01 | 🔔🔔 Ready to scan? Instantly scan and manage your documents. 👉 Check |
🔔🔔 準備掃描? 立即掃描並管理您的文件。 👉 檢查 |
| 02 | 🚀🚀 Turn it into PDF! Convert images or files to PDFs instantly. 👉 Go |
🚀🚀 將它轉換成PDF! 立即將圖片或檔案轉換成PDF。 👉 前往 |
| 03 | 📂📂 New files just dropped! Check out what’s newly added to your folder. 👉 Edit |
📂📂 新增了新檔案! 檢查最近新增到您資料夾的內容。 👉 編輯 |
| 04 | 📂📂 New files just dropped! Check out what’s newly added to your folder. 👉 Open |
📂📂 新增了新檔案! 檢查最近新增到您資料夾的內容。 👉 開啟 |
| 05 | 🚨🚨 Urgent file needs review! You’ve got a document that needs action. 👉 Check |
🚨🚨 緊急檔案需要審核! 您有一個文件需要採取行動。 👉 檢查 |
| 06 | 😊😊 Time to sync! Make sure your files are all aligned. 👉 Sync |
😊😊 該同步了! 確保您的所有檔案都對齊。 👉 同步 |
| 07 | 🔔🔔 Check your document! A recent file could use your attention. 👉 Check |
🔔🔔 檢查您的文件! 最近的檔案可能需要您的注意。 👉 檢查 |
| 08 | 📢📢 Discover new tools! Try out the latest PDF features today. 👉 Try Now |
📢📢 探索新工具! 今天就試試最新的PDF功能。 👉 立即試用 |
| 09 | ⏰⏰ Tools just updated! Get the newest performance upgrades now. 👉 Check |
⏰⏰ 工具已更新! 立即取得最新的效能升級。 👉 檢查 |
4.3 APK 内备用通知资源#
| 资源组 | 数量 | 主题 | 当前状态 |
|---|---|---|---|
_112 |
9 | 扫描、转换、文件、紧急文件、同步、工具等 | 当前 FcmMessage.k() 未引用 |
_112_fcm |
9 | 同类 9 主题 | 当前 FcmMessage.k() 未引用 |
_112_home |
9 | 同类 9 主题 | 当前 FcmMessage.k() 未引用 |
_112_time |
9 | 同类 9 主题 | 当前 FcmMessage.k() 未引用 |
四组共 36 套资源,具备相同 12 个语言配置,但当前不能称为线上正在使用的 36 个通知场景。
4.4 常驻通知、多语言与路由#
- 常驻前台服务通知 ID 为
2001;正常运行和真机重启后均动态观察到。 - 撤销通知权限后,应用仍可有进程,但该 FGS 不运行;强制执行 Job 也未恢复 FGS。恢复权限后再次触发统一恢复入口,FGS 可恢复。
- 当前可达 9 套模板提供 default English、ja、de、vi、ko、fr、mr、es、ms、it、pt、zh-rTW,共 12 种配置;无 zh-rCN 独立资源时会使用 default。
- 普通可见通知的通知 ID、渠道和最终落页没有在当前报告中逐项闭环,不能由 CTA 文本推定具体页面。
- 一条真实 FCM 到达后,系统给予约 20 秒
PUSH_MESSAGING临时 allowlist;这证明消息到达与短时执行机会,不证明长期到达率或可见通知必定展示。
5. Lumio v1.2.8:不活跃循环提醒#
5.1 远端配置字段#
| 字段 | APK 默认值 | 用途 |
|---|---|---|
notification_configs.is_enable |
false |
MainActivity.onPause() 调度总开关 |
contents |
空列表 | 按语言存放通知文案组 |
time_since_last_open_in_hour |
24 |
OneTimeWork 初始延迟小时数 |
contents[].language_code |
无本地默认项 | 与保存的 App 语言匹配 |
contents[].notifications |
空列表 | 某语言可用通知集合 |
notifications[].title |
无本地默认项 | 通知标题 |
notifications[].description |
无本地默认项 | 通知正文 |
5.2 离开 App 后的排程规则#
当 MainActivity.onPause() 执行且 is_enable=true 时:
- 取消唯一工作名
inactivity_reminder_work。 - 创建
ReminderWorker的 OneTimeWorkRequest。 - 读取
time_since_last_open_in_hour;空值回退 24 小时。 - 使用
ExistingWorkPolicy.REPLACE重新排入同名唯一工作。 - 用户重新进入后再次离开,会替换旧任务并重新开始倒计时。
- 创建该 Worker 时未设置网络、充电、空闲或前台执行等业务约束。
- “延迟 24 小时”是调度请求值,不代表系统保证准点执行。
5.3 Worker 到点后的显示规则#
- 读取当前保存的
Language。 - 优先匹配相同
language_code的内容;匹配不到时回退 English。 - 当前语言和 English 均无内容,或通知列表为空时,本轮不展示。
- 使用
NotificationOpenTime % notifications.size选择一条文案。 - 使用远端
title和description创建本地通知,设置 auto-cancel。 - 只有已授予
POST_NOTIFICATIONS时才发布。 - 成功展示后
NotificationOpenTime + 1,下一轮按顺序取模轮换;它是展示轮换计数,不是点击次数。 - 无论本轮是否找到文案,方法尾部都会再次调用同一排程函数,形成循环提醒链。
5.4 渠道和点击路由#
| 项目 | 规则 |
|---|---|
| Channel ID | inactivity_channel |
| Channel 名称 | Inactivity reminders |
| Channel 描述 | Reminds you to come back to the app |
| importance | 4(HIGH) |
| 点击 Intent | getLaunchIntentForPackage() + PendingIntent.getActivity() |
| 最终行为 | 点击回 App launcher;不携带文件 URI、工具名、会员页或自定义 route |
5.5 当前证据边界#
- 静态代码已闭环:远端开关 → 离开调度 → Worker 选文案 → 权限检查 → 本地通知 → 再排下一轮。
- 本次真机未观察到
ReminderWorker实际排入或通知实际展示。 - 当前线上开关、延迟、语言列表、文案条数、人群分流和远端频控均未知。
- Lumio 划掉最近任务后 PID、任务和 Service 均消失;Force Stop 后 30 秒也未恢复。它的不活跃提醒不能等同于常驻保活。
6. Smart、Stackwise、All Document Reader、Ora#
6.1 Smart PDF Reader v1.2.5#
| 项目 | 已确认内容 | 不能据此确认的内容 |
|---|---|---|
| 权限请求 | 冷启动加载页即请求通知;复查机 POST_NOTIFICATIONS: granted=true [D] |
授权率与不同用户授权状态 |
| FCM | 自定义服务 com.cell.document.wHByvi 仅在高优先级消息时从 9 组内置模板随机选一条并发 ID 8194 [S] |
未收到真实 FCM,服务器频率/人群/TTL 未知 |
| 本地定时 | ELAPSED_REALTIME_WAKEUP → PibuBCOOqe → l82.d(...),9 组基础模板加 1 组 AI 模板 [S][D] |
当前线上目标时间和长期到点率未验证 |
| 前台服务 | specialUse FGS nKhGkwcc 真机运行,常驻通知 ID 1 / channel_id_resident [S][D] |
不能推成永久保活或强停可恢复 |
| 开机/升级 | Receiver 接收 BOOT_COMPLETED、MY_PACKAGE_REPLACED,并进入 FGS/通知相关逻辑 [S] |
未真实重启,恢复成功未知 |
| 重复通知 | 初次 ID 8194 后约 4 秒更新到 channel_id_remind_silence;点击或 NotifyRepeatReceiver 划除取消协程 [S][D] |
OEM/锁屏/权限关闭下的完整表现未知 |
| Work / Job | 真机有 persisted 高优先级 kHeUCCf(Job ID 889)与 WorkManager [S][D] |
长时重排、Doze 与 FGS 失败兜底未验证 |
结论:已还原通知 ID、渠道、10 组候选模板、基本间隔分支、两类触发和中转路由;真实 FCM、最终工具落页、Boot/Doze 仍是缺口。
Smart 的 10 组本地模板#
01–09 由 FCM 高优先级与定时路径共用,10 只由定时路径选取。以下是内置召回文案,不证明文件库、转换、更新或版本状态真实存在。
| ID | English title / body / CTA(中文释义) |
|---|---|
| 01 | 📷 Ready to Scan Files! / Scan, adjust, and save as PDF with ease. 👉 / Scan(准备扫描文件;轻松扫描、调整并保存为 PDF;扫描) |
| 02 | 📂 Convert Files Instantly! / One tap to turn any file into a PDF. 👉 / Convert(即刻转换文件;一键把任意文件转为 PDF;转换) |
| 03 | ✏️ PDF Editing Available! / Quickly edit and update your PDFs. 👉 / Edit(可编辑 PDF;快速编辑和更新 PDF;编辑) |
| 04 | 📂 Library Just Refreshed / Your file list has been updated. 👉 / Check(文件库刚刷新;文件列表已更新;查看) |
| 05 | 🧾 New File Detected / Tap to explore your latest documents. 👉 / View(检测到新文件;点击查看最新文档;查看) |
| 06 | 🔃 Sync Your File List / Update to get the latest file view. 👉 / Update(同步文件列表;更新以获取最新文件视图;更新) |
| 07 | 📌 Important File Waiting / There's a key document ready to open. 👉 / Check(重要文件正在等待;有一份关键文档已可打开;查看) |
| 08 | 🧪 Try Our Latest Tools! / New features just landed in your PDF app.👉 / Try(试试最新工具;PDF 应用刚加入新功能;试用) |
| 09 | ⚠️ Update Recommended / Your current version is outdated.👉 / Update(建议更新;当前版本已过时;更新) |
| 10(仅定时) | ✨Your 1-min briefing is ready / Skip the 10-min read. AI has summarized the core points for you. / Click(1 分钟摘要已准备好;跳过 10 分钟阅读,AI 已总结核心要点;点击) |
真机实际出现过:⏲️ 是時候完成了! / 您的 PDF 轉換正在等待完成。 🔃(是时候完成了;您的 PDF 转换正在等待完成)。未捕获调用栈,不能唯一归因于 FCM 或未来 Alarm。
6.2 Stackwise v1.2.1#
| 环节 | 已确认内容 | 边界 |
|---|---|---|
| 远端配置 | Firebase Remote Config 的 notification_configs 模型含 is_enable、time_since_last_open_in_hour、contents[language_code].notifications[title, description]。APK 默认 false / 24小时 / 空列表。 |
证明字段、客户端默认和解析路径;不证明线上开关、人群、实际延迟或内容。 |
| 调度 | BaseActivity.onPause() 在总开关为真时先取消 inactivity_reminder_work,再以 ExistingWorkPolicy.REPLACE 排唯一 ReminderWorker。 |
用户再次离开会重置倒计时,不会累计多条任务。 |
| 展示与轮换 | Worker 按保存语言选内容,缺失回退 English,以 NotificationOpenTime % size 轮换;有文案且已授权时创建 inactivity_channel(HIGH)后发布,并再排下一轮。 |
NotificationOpenTime 在发布成功后递增,是展示轮换计数,不能写成点击次数。 |
| 文案与 ID | APK 默认内容为空,未提取到默认营销标题/正文;固定的只有渠道名 Inactivity reminders 和描述 Reminds you to come back to the app。业务通知 ID 未还原。 |
不能把渠道元数据当用户营销文案。 |
| 点击 | getLaunchIntentForPackage() 回 launcher;无文件 URI、工具名或业务 route。 |
只能证明点击回 App,不证明进入文件、编辑器或会员页。 |
| 真机 | 通知权限为拒绝;只见 Firebase / WebView 与 DataTransport Job,未见业务 Work、业务通知或自定义 FGS;划卡与强停后均无自恢复。 | 当前窗口不能否定线上远端开启后的路径。 |
6.3 All Document Reader v1.5.6(Exomobi)#
| 环节 | 已确认内容 | 边界 |
|---|---|---|
| 完整链路 | Remote Config 默认策略 → AlarmManager.setAndAllowWhileIdle(RTC_WAKEUP) → ReminderReceiver → notify(33333) → SplashActivity。 |
是本地定时召回,不是 FCM 正文推送、FGS 或进程常驻。 |
| 默认节奏 | 首延迟2天,20:30投递,间隔3天,7天最多2条;近48小时活跃抑制、点击后72小时冷却、忽略3次后7天退避、忽略6次停发。 | 这些来自 APK 内置 Remote Config 默认值,线上可覆盖;并非无条件每3天必发。 |
| 选择、ID与渠道 | 默认 scenario_ids=27–37 随机选取并避开上一次;固定通知 ID 33333,渠道 feature_tips_channel_id_v1(Notifications,importance 3)。 |
同 ID 后发覆盖旧通知是 Android 平台语义;不代表已实际投递。 |
| 点击/划除 | 点击显式进入 SplashActivity,并携带实验、变体、场景、忽略次数;划除 Receiver 记录 dismiss_daily_notification。 |
不能确定 Splash 之后的最终工具页,也不能确认埋点已成功上报或服务端立即改变频控。 |
| 真机 | 已登记目标为2026-08-22 20:30的 ReminderReceiver 闹钟;通知权限拒绝,渠道存在但系统 App 通知重要级为 NONE。 |
未看到真实通知、标题、点击或划除;不得把“未出现”反推为没有通知链。 |
All Document Reader 默认会选中的 11 组工具文案#
| 场景 | English title / body(中文释义) |
|---|---|
| 27 | 📎 Merge PDFs in Seconds / Combine multiple documents into one organized PDF that’s easy to share.(几秒合并 PDF;把多份文档合成一份易于整理和分享的 PDF) |
| 28 | ✂️ Keep Only the Pages You Need / Split a large PDF into smaller, more manageable files in seconds.(只保留需要的页面;几秒把大 PDF 拆成更易管理的小文件) |
| 29 | 🖼️ Turn Images into a PDF / Combine photos, receipts, or notes into one convenient PDF file.(把图片转成 PDF;把照片、收据或笔记合并成一份 PDF) |
| 30 | 📸 Convert PDFs to Images / Export PDF pages as high-quality images for easy saving and sharing.(将 PDF 转为图片;导出高清图片,便于保存和分享) |
| 31 | 📄 Convert Word to PDF / Turn Word documents into polished, shareable PDFs in just a few taps.(Word 转 PDF;轻点几下即可生成适合分享的 PDF) |
| 32 | 🔐 Protect Important Documents / Add a password to your PDF and keep sensitive information secure.(保护重要文档;给 PDF 加密码以保护敏感信息) |
| 33 | 🔓 Unlock Your PDF / Remove a password from your PDF for easier viewing and editing.(解锁 PDF;移除密码以便查看和编辑) |
| 34 | 📷 A Scanner in Your Pocket / Scan paper documents with your camera and save them as clear PDFs.(口袋里的扫描仪;用相机扫描纸质文档并存成清晰 PDF) |
| 35 | ✏️ Need to Update a PDF? / Add content, notes, and changes to your documents directly on your phone.(要更新 PDF 吗;直接在手机上添加内容、批注和修改) |
| 36 | 🔍 Extract Text Instantly / Recognize and copy text from images or scanned documents in seconds.(即刻提取文字;几秒识别并复制图片或扫描件中的文字) |
| 37 | 🔄 Organize Your PDF Pages / Drag and drop pages into the perfect order for your document.(整理 PDF 页面;拖放页面排出合适顺序) |
另有9组风险型候选,默认集合未选择。已摘录的代表文案包括 Important Files May be Corrupted!、PDF File Expiring Soon!、Your Important PDFs Are At Risk!。这些没有对应真实文件状态的静态证据,不能理解为“应用检测到文件损坏、过期或丢失”。
6.4 Ora#
当前没有对应 APK 逆向报告,通知场景与规则全部未知。
7. 跨竞品通知规则对比#
7.1 可见通知来源#
| 触发来源 | QuickDoc | PDF Reader v1.1.7 | Lumio | Smart | Stackwise | All Document Reader | Ora |
|---|---|---|---|---|---|---|---|
| 高优先级 FCM | 9 选 1可见通知 | 9 选 1可见通知 | SDK/服务端策略未知 | 静态 9 选 1本地模板;服务端未实测 | Firebase Messaging SDK,未见自定义消息服务/通知闭环 | Firebase 依赖,未闭环业务 FCM 通知 | 未知 |
| Home / 最近任务 | 9 选 1 | 未发现当前可达路径 | 无 | 未知 | 离开 Activity 后重排延迟 Work,非即时通知 | 未证实 | 未知 |
| 定时 / 不活跃 | 至少 1 小时,9 选 1 | 只有未引用 _112_time 资源 |
离开后默认 24 小时 OneTimeWork 循环 | Alarm 本地定时 10 选 1;初次后约 4 秒静默连续更新 | 离开后默认24小时 OneTimeWork 循环 | 默认首延迟2天、20:30、每3天的 RTC_WAKEUP Alarm,11选1;非通知的 RecyclerBinWorker 另计 | 未知 |
| 屏幕解锁 | 10 选 1 | 未发现当前可见路径 | 无 | 未知 | 未知 | 未知 | 未知 |
| App / 功能退出 | 通用 2 选 1;Merge/Compress/Split 固定;广告退出固定 | 未发现 | 无 | 未知 | onPause 后排延迟提醒 |
未证实 | 未知 |
| App 安装 / 卸载 | 各 1 条 | 未发现 | 无 | Boot/升级后进入 FGS/通知逻辑,实际重启未测 | 无自定义 Boot receiver | BootReceiver 有重排意图但缺 RECEIVE_BOOT_COMPLETED 声明,未实测 |
未知 |
| 文件创建 / 删除 | 新 PDF、新文件、文档/视频/图片删除,共 5 条 | 未发现 | 无 | 未知 | 未知 | 未知 | 未知 |
| 回收站 | 1 条,且小时 >= 12 |
未发现 | 无 | 未知 | 未知 | Worker 会清理满30天回收站文件;不是通知 | 未知 |
7.2 频控、选择和覆盖#
| 控制项 | QuickDoc | PDF Reader v1.1.7 | Lumio |
|---|---|---|---|
| 全局资格 | 权限、非前台、非锁屏、新用户前 5 分钟抑制、场景时间戳/互斥 | 权限、前后台、锁屏、横竖屏 | 远端总开关、存在可用文案、通知权限 |
| 时间窗 | FCM 为 07:00–22:59;回收站本地小时 >=12 | FCM 为 07:00–22:59 | 无固定日内时间窗证据 |
| 最小间隔 | FCM 本地 5 分钟;定时至少 1 小时;其他部分由运行时配置 | FCM 本地 5 分钟 | 默认离开 24 小时后;系统可延迟 |
| 模板选择 | FCM/Home/定时/解锁各自在集合内随机;退出按状态切换 | 9 选 1随机 | 按 NotificationOpenTime 顺序取模 |
| 去重 / 覆盖 | 普通通知共用 ID 2002,发布前取消旧通知 | 当前报告未还原普通通知 ID | 唯一 Work 使用 REPLACE;通知本身 ID 未还原 |
| 循环 | 多事件、多调度来源重复参与 | 由服务端 FCM 决定后续消息 | Worker 尾部再次排同一 OneTimeWork |
| 服务端未知 | 发送计划、分群、A/B、线上间隔、每日上限 | 发送计划、分群、总频控、每日上限 | 开关、延迟、语言内容、人群、模板数 |
Stackwise、Smart 与 All Document Reader 的专项规则#
| 产品 | 资格 / 时间 | 选择、去重与循环 | 未知边界 |
|---|---|---|---|
| Stackwise | 远端总开关、非空语言内容、通知权限;默认关闭、24小时 | 唯一 Work 使用 REPLACE;按 NotificationOpenTime % size 顺序轮换;Worker 尾部续排 |
线上开关、时长、语言、通知 ID、真实展示、服务端策略 |
| Smart | 首装不足300秒拦截;默认 is_nation=true 时最小1小时,另一分支50秒;可受07:00–22:59、锁屏、横屏、前台门控 |
9/10条本地列表随机;ID 8194 更新;非 Samsung 最多3次、每4秒的进程内连续静默更新 |
实际配置分支、线上闹钟时间、真实 FCM、Doze/OEM 表现 |
| All Document Reader | 默认首延迟2天、20:30、间隔3天、7天最多2条;近48小时活跃抑制、点击72小时冷却、忽略退避/停发 | 默认11个场景随机、避开上一场景;ID 33333 覆盖旧通知;发后重排 |
上述为内置 Remote Config 默认值;线上覆盖、真实投递、点击/划除及回传未知 |
7.3 通知 ID、渠道和路由#
| 产品 | 普通通知 ID | 常驻通知 ID | 渠道 | 点击路由 |
|---|---|---|---|---|
| QuickDoc | 2002,覆盖旧同 ID |
2001 |
普通 ordinary_notification_channel / _FLOAT;常驻 quickdoc_channel |
常驻 4 个明确入口;普通通知最终落页未逐项动态验收 |
| PDF Reader v1.1.7 | 未在报告中闭环 | 2001 |
普通渠道未在报告中闭环 | 9 套模板最终落页未逐项动态验收 |
| Lumio | 未还原 | 无自定义常驻通知证据 | inactivity_channel,HIGH |
点击回 launcher,无业务对象与自定义 route |
| Smart | 8194,同 ID 更新 |
1 |
channel_id_remind / _silence;channel_id_resident |
OutOpenActivity → Splash;最终业务页未知 |
| Stackwise | 未还原 | 无自定义常驻通知证据 | inactivity_channel,HIGH |
launcher,无业务对象与自定义 route |
| All Document Reader | 33333,后发覆盖旧同 ID |
无自定义常驻通知证据 | feature_tips_channel_id_v1,importance 3 |
显式 SplashActivity,携带实验/场景/忽略参数;最终业务页未知 |
| Ora | 未知 | 未知 | 未知 | 未知 |
7.4 多语言#
| 产品 / 路径 | 已发现语言 | 选择与回退 |
|---|---|---|
| QuickDoc 51 条普通通知 | default English、ja、de、vi、ko、fr、mr、es、ms、it、pt、zh-rTW | Android 资源选择;缺失配置回退 default English |
| PDF Reader 当前可达 9 套 FCM | 同上 12 种 | Android 资源选择;无 zh-rCN 时使用 default |
| PDF Reader 4 组备用资源 | 同上 12 种 | 当前可见路径未引用 |
| Lumio | 远端 contents[].language_code,实际语言列表未知 |
当前保存语言优先,找不到回退 English;仍无内容则不展示 |
| Stackwise | 远端 contents[].language_code,实际语言列表未知 |
当前保存语言优先,缺失回退 English;默认内容为空 |
| Smart | 9+1 静态模板为 English;真机见繁中普通提醒 | 资源选择、繁中来源和缺失回退未完整还原 |
| All Document Reader | 11组默认 English 工具文案;其他语言未还原 | 默认场景27–37随机;9组风险候选默认未选 |
| Ora | 未逆向 | 未知 |
8. 动态验证与未知项#
8.1 已动态观察到#
| 产品 | 动态结果 | 能证明什么 |
|---|---|---|
| QuickDoc | 划掉最近任务后触发 App 退出事件,通知栏出现普通通知 ID 2002 |
至少一条退出通知在本机当时配置下真实展示 |
| QuickDoc | FGS 通知 ID 2001 正常运行;划卡后仍在 |
常驻通知在该生命周期内真实存在 |
| QuickDoc | 一条真实 FCM 到达并获得约 20 秒临时 allowlist | 消息到达和短时执行机会真实发生;不等于可见通知一定展示 |
| PDF Reader v1.1.7 | 一条真实 FCM 到达并获得约 20 秒临时 allowlist | 同上 |
| PDF Reader v1.1.7 | 正常运行和重启后均观察到 FGS 通知 ID 2001 |
常驻通知与开机恢复在本机样本中真实发生 |
| Lumio | 本机未观察到 ReminderWorker 排入或提醒展示 | 只能确认当前观察窗未触发,不能否定远端开启后的路径 |
| Smart | ID 8194 普通提醒、ID 1 FGS 常驻通知真实展示;划卡后 FGS 仍在,Force Stop 后 0/5/20 秒均 stopped |
已证明 FGS 与通知真实运行及强停终止边界;真实 FCM/Boot/Doze 未证明 |
| Stackwise | 通知权限拒绝;未见业务 Work、业务通知或自定义 FGS;划卡后任务/PID/Service消失,强停后30秒无回生 | 当前窗口未触发远端开启后的不活跃提醒;不能否定静态链路 |
| All Document Reader | 已登记2026-08-22 20:30的 ReminderReceiver Alarm 与 RecyclerBinWorker;通知权限拒绝;强停后 Alarm/Job/进程均消失 | 本机已实际安排本地召回与清理任务;没有可见通知不否定代码链,强停是终止边界 |
8.2 仍然未知#
- 所有竞品的服务端 FCM 发送计划、真实人群分流、每日上限、实验配置和长期到达率。
- QuickDoc 除 FCM 5 分钟与定时至少 1 小时外,其余运行时场景间隔的线上值。
- QuickDoc 51 条普通通知逐条点击后的最终页面。
- PDF Reader v1.1.7 的普通通知 ID、渠道、逐模板点击路由,以及 36 套备用资源是否存在其他运行入口。
- Lumio 当前线上
is_enable、延迟、语言列表、文案条数、人群配置与实际首次出通知时间。 - Smart 的真实 FCM、线上计划时间、最终工具路由、Boot/Doze/OEM;Stackwise 的线上开关/时长/语言/真实提醒/ID;All Document Reader 的通知授权后实际投递、点击/划除、线上实验与频控。
- Ora 的全部通知行为。
9. 来源索引#
| 竞品 | 原始报告 |
|---|---|
| QuickDoc PDF Reader v1.2.5 | QuickDoc PDF Reader v1.2.5 保活、拉活与通知文案逆向报告 |
| PDF Reader v1.1.7 | PDF Reader v1.1.7 保活拉活与通知文案逆向报告 |
| Lumio v1.2.8 | PDF Reader Lumio v1.2.8 保活、拉活与通知逆向报告 |
| Smart PDF Reader v1.2.5 | Smart PDF Reader v1.2.5 保活、拉活与通知逆向报告 |
| Stackwise v1.2.1 | PDF Reader Stackwise v1.2.1 保活拉活与通知逆向报告 |
| All Document Reader v1.5.6 | All Document Reader Exomobi v1.5.6 保活拉活与通知逆向报告 |
| Ora | 当前无 APK 逆向报告 |
本文为通知专项摘录。所有精确代码锚点、完整 12 语言逐条原文、哈希和真机时间线仍以对应原始报告为准。