Keep Alive 预警短信发不出去排查
触发预警了但对方没收到短信?按这个顺序查
短信发不出去是 Keep Alive 最常见的"看起来像坏了"的情况——但几乎都能按下面三步定位。
第一步:SMS 权限真的授了吗
部分安全软件或国产系统会二次禁用已经授予的权限:
- 系统设置 → 应用 → Keep Alive → 权限 → 短信
- 确保显示"已允许"
- 额外检查:安全中心 / 手机管家 → 权限管理 → 看 Keep Alive 的短信权限有没有被二次拦截
- 如果权限被"永久拒绝",1.5.2-alpha 版本会主动警告并提供"打开系统设置"的快捷入口
如果这步没问题但短信还是发不出去,继续第二步。
第二步:SIM 卡能正常发短信吗
Keep Alive 的短信走的是运营商标准通道,和你手动发短信完全一样。测试方法:
- 打开手机自带的短信应用
- 手动给 Keep Alive 的联系人号码发一条短信
- 看能不能正常发出去、对方能不能收到
如果手动也发不出去 → 问题在 SIM 卡或运营商,不是 Keep Alive。检查:
- SIM 卡是否欠费
- 是否开启了飞行模式
- 信号是否正常(至少一格信号才能发短信)
- 短信中心号码是否正确(极少数情况会乱)
如果手动能发出去但 Keep Alive 发不出去 → 继续第三步。
第三步:联系人号码格式对吗
Keep Alive 会把你填的号码原样塞进短信里发出去,格式不对就会发失败。
| 号码格式 | Keep Alive 能处理 | 建议 |
|---|---|---|
| 13800000000(11 位纯数字) | ✅ 可以 | 推荐这种最简格式 |
| +86 138 0000 0000 | ✅ 可以带国家区号和空格 | 也行 |
| 008613800000000 | ✅ 可以 | 也行 |
| 138-0000-0000 | ✅ 可以带短横线 | 也行 |
| 带中文或括号 | ❌ 不行 | 手动清理掉格式 |
| 带了表情或特殊字符 | ❌ 不行 | 清理掉 |
| 国际号码没加区号 | ⚠️ 可能失败 | 国际号码必须加国家区号 |
测试预警功能
1.3.3+ 版本支持发送测试预警短信——在主设置里点测试按钮,Keep Alive 会给所有联系人发一条测试短信(内容会标注"TEST")。这比等真触发方便得多。
Android 版本差异
| Android 版本 | SMS 行为 | 可能的问题 |
|---|---|---|
| 12 及以下 | 1.2.3 之前有 SMS 发送 bug | 建议升级到 1.2.3+ |
| 13+ | 正常运行 | 权限管理更严格,检查通知权限 |
SMS 权限的完整权限说明,见 权限清单。