此工程将“短信网关 API”能力重构为可安装的 Android APK,核心逻辑如下:
- 提供
POST /sms接口 apikey鉴权- 单号发送频率控制(
rateLimitSec) - 单号日发送上限(
rateLimitDaily) - 全局日发送上限(
globalDailyLimit) - 可选 SIM 卡槽配置(
slot) - Android 运行时权限管理(发送短信 / 电话状态)
- 请求日志持久化 + 请求统计 + 清空/复制日志
- IP 白名单(支持 CIDR/通配符)
- 请求日志和运行日志导出到本地文件
- 锁屏保活提示与前后台恢复逻辑(返回前台时自动恢复服务)
- 开机自启开关:支持开机后自动尝试恢复服务(需权限与 API Key)
- 后台常驻增强:前台服务 + 唤醒锁,降低锁屏/后台被系统杀掉概率
- 安装 Flutter 与 Android 工具链
- 安装依赖
flutter pub get - 生成 apk
flutter build apk --release - 通过 USB 安装 apk 到测试机并授予短信/电话权限
- 在应用内设置
apikey、端口和限流参数,启动服务 - 日志区可清空与复制到剪贴板,便于排障
- 日志导出(按按钮导出运行日志/请求日志到本地可读文件)
- 方法:
POST - 路径:
/sms - Content-Type:
application/x-www-form-urlencoded或application/json - 参数:
apikey(必填)mobile(必填)text(必填)
- 成功:
{"code":200,"message":"SMS sent successfully"} - 参数缺失:
{"code":400,"message":"Missing required field: apikey / mobile / text"} - API Key 错误:
{"code":403,"message":"Invalid API Key"} - 频率限制:
{"code":429,"message":"触发频率限制..."} - 发送失败:
{"code":500,"message":"发送失败: ..."}
lib/main.dart:Flutter 页面、服务控制、持久化配置、日志与统计、频控逻辑android/app/src/main/kotlin/com/hu60/smsgateway/MainActivity.kt:MethodChannel + Android 短信发送与权限实现android/:Gradle 与 Android 工程文件
- Android 13+ 对短信、后台运行与电池优化有额外策略限制,实际机型可能需要手动放行
- 该程序面向自建自用场景,请遵守相关短信发送合规要求