{"id":28963745,"url":"https://github.com/biubush/autonet4ahu-android","last_synced_at":"2026-04-27T18:04:13.509Z","repository":{"id":298462802,"uuid":"1000046231","full_name":"Biubush/AutoNet4AHU-Android","owner":"Biubush","description":"安徽大学校园网自动登录Android客户端，支持网络状态变化时自动重连，可推送登录结果消息","archived":false,"fork":false,"pushed_at":"2025-06-11T08:19:24.000Z","size":249,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-24T04:12:30.409Z","etag":null,"topics":["ahu","android-application","anhui-university","automation","eportal","network","students"],"latest_commit_sha":null,"homepage":"https://github.com/Biubush/AutoNet4AHU-Android/releases","language":"Java","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/Biubush.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}},"created_at":"2025-06-11T07:25:52.000Z","updated_at":"2025-06-12T05:44:07.000Z","dependencies_parsed_at":"2025-06-11T08:41:44.946Z","dependency_job_id":"2d061b82-0d3a-41e4-b198-be2354964e4a","html_url":"https://github.com/Biubush/AutoNet4AHU-Android","commit_stats":null,"previous_names":["biubush/autonet4ahu-android"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Biubush/AutoNet4AHU-Android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Biubush%2FAutoNet4AHU-Android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Biubush%2FAutoNet4AHU-Android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Biubush%2FAutoNet4AHU-Android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Biubush%2FAutoNet4AHU-Android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Biubush","download_url":"https://codeload.github.com/Biubush/AutoNet4AHU-Android/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Biubush%2FAutoNet4AHU-Android/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261601533,"owners_count":23183099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ahu","android-application","anhui-university","automation","eportal","network","students"],"created_at":"2025-06-24T04:12:29.783Z","updated_at":"2026-04-27T18:04:08.487Z","avatar_url":"https://github.com/Biubush.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AutoNet4AHU-Android\n\n![GitHub license](https://img.shields.io/github/license/Biubush/AutoNet4AHU-Android)\n![Android Version](https://img.shields.io/badge/Android-8.0%2B-green)\n\n安徽大学校园网自动登录Android客户端，支持网络状态变化时自动重连，可推送登录结果消息。\n\n## 目录\n\n- [背景介绍](#背景介绍)\n- [功能特点](#功能特点)\n- [下载安装](#下载安装)\n- [使用说明](#使用说明)\n- [实现原理](#实现原理)\n- [项目结构](#项目结构)\n- [兼容性与适用范围](#兼容性与适用范围)\n- [常见问题](#常见问题)\n- [贡献指南](#贡献指南)\n- [版本历史](#版本历史)\n- [许可证](#许可证)\n- [鸣谢](#鸣谢)\n\n## 背景介绍\n\n作为安徽大学的学生，每次切换网络、重启设备或网络中断后，都需要重新登录校园网，这个过程十分繁琐。为了解决这个问题，我最初开发了windows版本的[AutoNet4AHU](https://github.com/Biubush/AutoNet4AHU)工具。\n\n随着使用场景的扩展，我意识到移动设备也需要类似的自动化解决方案，因此将其移植并扩展到了Android平台，开发了这个更加完善的AutoNet4AHU-Android客户端。\n\n本应用实现了校园网认证的全自动化处理，当网络状态发生变化时（如WiFi切换、IP变更），会自动检测并执行登录，还可以将登录结果通过企业微信webhook推送到您的消息群组，让您随时了解登录状态。\n\n## 功能特点\n\n- **全自动登录**：监测网络变化，自动完成校园网认证\n- **开机自启动**：设备启动后自动在后台运行\n- **多种通知方式**：\n  - 悬浮窗通知：直观显示登录结果\n  - 企业微信推送：远程接收登录状态消息\n- **完整日志系统**：记录所有操作，便于排查问题\n- **低能耗设计**：采用事件驱动机制，最小化资源占用\n- **安全可靠**：本地存储账号信息，不连接任何第三方服务器\n\n## 下载安装\n\n### 方式一：直接下载APK\n\n从[Releases](https://github.com/Biubush/AutoNet4AHU-Android/releases)页面下载最新版本的APK文件，安装到您的Android设备上。\n\n### 方式二：从源码构建\n\n1. 克隆仓库到本地\n```bash\ngit clone https://github.com/Biubush/AutoNet4AHU-Android.git\n```\n\n2. 使用Android Studio打开项目\n3. 构建并安装到您的设备上\n\n## 使用说明\n\n### 初始设置\n\n1. 首次打开应用时，需要授予必要的权限（网络访问、开机自启动、通知权限等）\n2. 在主界面输入您的校园网账号（学号）和密码\n3. 如需接收企业微信通知，请填入webhook URL\n4. 选择是否启用\"自动登录\"和\"登录成功时通知\"功能\n5. 点击\"保存配置\"按钮\n\n### 功能说明\n\n- **保存配置**：保存您的账号信息和设置\n- **立即登录**：手动触发一次登录操作\n- **查看日志**：打开日志页面，查看应用运行记录\n- **关于**：查看应用版本和相关信息\n\n### 自动登录机制\n\n应用将在以下情况自动尝试登录校园网：\n- 设备开机启动后\n- WiFi网络连接或断开时\n- 网络状态发生变化时\n- IP地址变更时\n\n## 实现原理\n\n### 网络监控机制\n\n应用采用了三重网络监控机制，确保能可靠地捕获所有网络变化事件：\n\n1. **NetworkCallback监听**：使用Android系统的NetworkCallback API监听网络能力和状态变化\n2. **BroadcastReceiver接收**：注册广播接收器，接收系统网络变化广播\n3. **定时检查**：定期检查网络状态，作为兜底方案\n\n### 登录流程\n\n1. 检测网络连接状态\n2. 获取本机IP地址\n3. 构建登录请求参数\n4. 发送HTTP请求到校园网认证服务器\n5. 解析响应结果\n6. 根据设置发送通知\n\n### 通知系统\n\n- **悬浮窗通知**：使用WindowManager创建系统级悬浮窗口，显示登录结果\n- **企业微信通知**：通过webhook API向企业微信群组推送消息\n\n### 服务保活\n\n应用使用前台服务机制保持后台运行，通过适配Android各版本的后台限制策略，确保服务的持续可用性。\n\n## 项目结构\n\n```\ncom.biubush.autonet4ahu\n├── MainActivity.java            # 主界面\n├── LogActivity.java             # 日志界面\n├── core                         # 核心功能模块\n│   ├── EPortal.java             # 校园网登录实现\n│   ├── NetworkDetector.java     # 网络状态检测\n│   ├── NetworkMonitor.java      # 网络监控服务\n│   ├── Notifier.java            # 通知系统\n│   └── FloatingNotification.java # 悬浮窗通知\n├── model                        # 数据模型\n│   ├── Config.java              # 配置信息模型\n│   └── LoginResult.java         # 登录结果模型\n├── service                      # 服务组件\n│   └── LoginService.java        # 登录后台服务\n├── receiver                     # 广播接收器\n│   ├── NetworkChangeReceiver.java # 网络变化接收器\n│   └── BootCompleteReceiver.java # 开机启动接收器\n└── util                         # 工具类\n    ├── ConfigManager.java       # 配置管理工具\n    ├── Logger.java              # 日志工具\n    └── PermissionUtil.java      # 权限管理工具\n```\n\n## 兼容性与适用范围\n\n- **Android系统要求**：Android 8.0 (API 26) 及以上版本\n- **适用校区**：已在安徽大学磬苑校区和金寨路校区测试通过\n- **账号类型**：目前已确认研究生网络账号有效可行，其他类型账号请自行测试\n- **设备兼容性**：已在红米K40机器上运行测试通过\n\n\u003e **注意**：由于各品牌设备对后台应用的限制策略不同，可能需要在系统设置中为本应用添加自启动权限和后台运行权限。\n\n## 常见问题\n\n### Q: 应用无法自动登录\n\n可能的原因及解决方案：\n1. 检查是否已开启\"自动登录\"开关\n2. 确认账号密码是否正确\n3. 检查系统设置中是否允许应用自启动和后台运行\n4. 查看应用日志，了解具体错误原因\n\n### Q: 无法收到企业微信通知\n\n可能的原因及解决方案：\n1. 确认webhook URL是否正确\n2. 检查网络连接是否正常\n3. 确认\"登录成功时通知\"开关已开启\n4. 查看应用日志，了解推送失败原因\n\n### Q: 设备重启后应用没有自动启动\n\n可能的原因及解决方案：\n1. 确认已授予\"开机自启动\"权限\n2. 在系统设置中允许应用自启动\n3. 部分设备需要在系统安全中心/电池管理中设置应用为\"受保护应用\"\n\n## 贡献指南\n\n非常欢迎您为AutoNet4AHU-Android项目贡献代码或提出建议！\n\n### 提交问题或建议\n\n如果您发现了bug或有新功能建议，请在GitHub上[创建Issue](https://github.com/Biubush/AutoNet4AHU-Android/issues/new)，并尽可能详细地描述问题或建议。\n\n### 提交代码\n\n1. Fork本仓库\n2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`)\n3. 提交您的更改 (`git commit -m 'Add some amazing feature'`)\n4. 推送到分支 (`git push origin feature/amazing-feature`)\n5. 创建Pull Request\n\n### 代码规范\n\n- 遵循Java/Android代码规范\n- 添加必要的注释\n- 编写单元测试（如果适用）\n- 确保代码可在Android 8.0及以上版本正常运行\n\n## 版本历史\n\n请查看[Releases页面](https://github.com/Biubush/AutoNet4AHU-Android/releases)获取完整的版本历史。\n\n## 许可证\n\n本项目采用MIT许可证 - 详见[LICENSE](LICENSE)文件\n\n## 鸣谢\n\n- 感谢[AutoNet4AHU](https://github.com/Biubush/AutoNet4AHU)项目提供的基础实现\n- 感谢所有为此项目提供反馈和建议的用户\n- 感谢Android开源社区提供的宝贵资源\n\n---\n\n**免责声明**：本项目仅供学习和研究使用，请遵守学校网络使用规定。开发者不对因使用本应用造成的任何问题负责。\n\n如有任何问题或建议，欢迎在GitHub上提交Issue或直接联系我。\n\n© 2025 [biubush](https://github.com/Biubush) ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiubush%2Fautonet4ahu-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbiubush%2Fautonet4ahu-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiubush%2Fautonet4ahu-android/lists"}