{"id":49797178,"url":"https://github.com/zhao5271/parking-alert-android","last_synced_at":"2026-05-18T18:01:19.779Z","repository":{"id":357313723,"uuid":"1236376256","full_name":"zhao5271/parking-alert-android","owner":"zhao5271","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-12T17:12:46.000Z","size":203,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T17:55:52.433Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhao5271.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-12T07:35:28.000Z","updated_at":"2026-05-12T17:16:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zhao5271/parking-alert-android","commit_stats":null,"previous_names":["zhao5271/parking-alert-android"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/zhao5271/parking-alert-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhao5271%2Fparking-alert-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhao5271%2Fparking-alert-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhao5271%2Fparking-alert-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhao5271%2Fparking-alert-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhao5271","download_url":"https://codeload.github.com/zhao5271/parking-alert-android/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhao5271%2Fparking-alert-android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33186230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"ssl_error","status_checked_at":"2026-05-18T09:27:28.300Z","response_time":71,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-12T12:01:30.221Z","updated_at":"2026-05-18T18:01:19.737Z","avatar_url":"https://github.com/zhao5271.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 挪车提醒\n\n一个用于 Android 的短信告警应用。\n\n当收到疑似违停挪车短信时，应用会立即触发强提醒：前台告警通知、循环闹铃、震动、亮屏、全屏闪烁，以及闪光灯爆闪。\n\n## 功能\n\n- 监听短信广播并匹配告警关键词\n- 命中后启动前台告警服务\n- 循环播放系统闹铃\n- 震动提醒\n- 亮屏并弹出全屏告警页\n- 屏幕快速闪烁\n- 闪光灯循环爆闪\n- 支持手动测试和手动停止告警\n\n## 当前匹配规则\n\n短信正文会按下面顺序判断：\n\n1. 先排除黑名单词：如 `验证码`、`快递`、`支付`、`优惠`、`直播`、`招聘` 等明显无关内容\n2. 再匹配核心三组特征：\n   - 执法机构特征：如 `交警`、`公安局交通管理`、`交通管理支队`、`交通技术监控设备`\n   - 违停特征：如 `违停`、`停放`、`临时停车`、`违法行为`\n   - 处置/处罚特征：如 `请立即驶离`、`拒绝立即驶离`、`未及时驶离`、`已被记录`、`予以处罚`、`接受处理`\n3. 若正文缺少一部分强特征，则要求再带白名单辅助词，如 `交管12123`、`学法减分`、`驶离`、`处罚`\n\n核心逻辑位置：\n\n- [SmsAlertReceiver.kt](app/src/main/java/com/example/parkingalert/SmsAlertReceiver.kt)\n\n## 权限说明\n\n应用会根据系统版本请求这些权限：\n\n- `RECEIVE_SMS`：接收短信广播\n- `POST_NOTIFICATIONS`：显示前台告警通知\n- `CAMERA`：控制闪光灯爆闪\n- `WAKE_LOCK`：亮屏和保持告警界面\n- `VIBRATE`：震动提醒\n\n## 运行要求\n\n- Android `8.0+` (`minSdk 26`)\n- `compileSdk 34`\n- Java `17`\n- Android Studio / Gradle `8.7` 可正常构建\n\n## 本地构建\n\n```bash\n./gradlew assembleDebug\n```\n\n构建输出：\n\n- `app/build/outputs/apk/debug/app-debug.apk`\n\n## 在 Android Studio 中使用\n\n1. 用 Android Studio 打开项目。\n2. 等待 Gradle Sync 完成。\n3. 连接 Android 真机并安装应用。\n4. 首次打开后申请短信、通知和相机权限。\n5. 在系统设置中关闭省电限制，并允许自启动。\n6. 点“测试响铃”验证整套告警链路。\n\n## 项目结构\n\n- `app/src/main/java/com/example/parkingalert/SmsAlertReceiver.kt`\n  负责接收短信广播并做文本匹配。\n- `app/src/main/java/com/example/parkingalert/AlertService.kt`\n  负责前台告警、闹铃、震动和闪光灯爆闪。\n- `app/src/main/java/com/example/parkingalert/AlertActivity.kt`\n  负责亮屏、全屏展示和屏幕闪烁。\n- `app/src/main/java/com/example/parkingalert/MainActivity.kt`\n  负责权限申请、手动测试和停止告警。\n\n## 注意事项\n\n- 部分国产 Android 系统会限制短信广播、自启动和后台前台服务，需手动放开。\n- 闪光灯爆闪依赖相机权限，且部分机型可能被系统限制。\n- 强闪和高频提醒可能刺激眼睛，不建议长时间测试。\n\n## 许可证\n\n本项目使用 [MIT License](LICENSE)。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhao5271%2Fparking-alert-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhao5271%2Fparking-alert-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhao5271%2Fparking-alert-android/lists"}