安徽大学校园网自动登录Android客户端,支持网络状态变化时自动重连,可推送登录结果消息。
作为安徽大学的学生,每次切换网络、重启设备或网络中断后,都需要重新登录校园网,这个过程十分繁琐。为了解决这个问题,我最初开发了windows版本的AutoNet4AHU工具。
随着使用场景的扩展,我意识到移动设备也需要类似的自动化解决方案,因此将其移植并扩展到了Android平台,开发了这个更加完善的AutoNet4AHU-Android客户端。
本应用实现了校园网认证的全自动化处理,当网络状态发生变化时(如WiFi切换、IP变更),会自动检测并执行登录,还可以将登录结果通过企业微信webhook推送到您的消息群组,让您随时了解登录状态。
- 全自动登录:监测网络变化,自动完成校园网认证
- 开机自启动:设备启动后自动在后台运行
- 多种通知方式:
- 悬浮窗通知:直观显示登录结果
- 企业微信推送:远程接收登录状态消息
- 完整日志系统:记录所有操作,便于排查问题
- 低能耗设计:采用事件驱动机制,最小化资源占用
- 安全可靠:本地存储账号信息,不连接任何第三方服务器
从Releases页面下载最新版本的APK文件,安装到您的Android设备上。
- 克隆仓库到本地
git clone https://github.com/Biubush/AutoNet4AHU-Android.git
- 使用Android Studio打开项目
- 构建并安装到您的设备上
- 首次打开应用时,需要授予必要的权限(网络访问、开机自启动、通知权限等)
- 在主界面输入您的校园网账号(学号)和密码
- 如需接收企业微信通知,请填入webhook URL
- 选择是否启用"自动登录"和"登录成功时通知"功能
- 点击"保存配置"按钮
- 保存配置:保存您的账号信息和设置
- 立即登录:手动触发一次登录操作
- 查看日志:打开日志页面,查看应用运行记录
- 关于:查看应用版本和相关信息
应用将在以下情况自动尝试登录校园网:
- 设备开机启动后
- WiFi网络连接或断开时
- 网络状态发生变化时
- IP地址变更时
应用采用了三重网络监控机制,确保能可靠地捕获所有网络变化事件:
- NetworkCallback监听:使用Android系统的NetworkCallback API监听网络能力和状态变化
- BroadcastReceiver接收:注册广播接收器,接收系统网络变化广播
- 定时检查:定期检查网络状态,作为兜底方案
- 检测网络连接状态
- 获取本机IP地址
- 构建登录请求参数
- 发送HTTP请求到校园网认证服务器
- 解析响应结果
- 根据设置发送通知
- 悬浮窗通知:使用WindowManager创建系统级悬浮窗口,显示登录结果
- 企业微信通知:通过webhook API向企业微信群组推送消息
应用使用前台服务机制保持后台运行,通过适配Android各版本的后台限制策略,确保服务的持续可用性。
com.biubush.autonet4ahu
├── MainActivity.java # 主界面
├── LogActivity.java # 日志界面
├── core # 核心功能模块
│ ├── EPortal.java # 校园网登录实现
│ ├── NetworkDetector.java # 网络状态检测
│ ├── NetworkMonitor.java # 网络监控服务
│ ├── Notifier.java # 通知系统
│ └── FloatingNotification.java # 悬浮窗通知
├── model # 数据模型
│ ├── Config.java # 配置信息模型
│ └── LoginResult.java # 登录结果模型
├── service # 服务组件
│ └── LoginService.java # 登录后台服务
├── receiver # 广播接收器
│ ├── NetworkChangeReceiver.java # 网络变化接收器
│ └── BootCompleteReceiver.java # 开机启动接收器
└── util # 工具类
├── ConfigManager.java # 配置管理工具
├── Logger.java # 日志工具
└── PermissionUtil.java # 权限管理工具
- Android系统要求:Android 8.0 (API 26) 及以上版本
- 适用校区:已在安徽大学磬苑校区和金寨路校区测试通过
- 账号类型:目前已确认研究生网络账号有效可行,其他类型账号请自行测试
- 设备兼容性:已在红米K40机器上运行测试通过
注意:由于各品牌设备对后台应用的限制策略不同,可能需要在系统设置中为本应用添加自启动权限和后台运行权限。
可能的原因及解决方案:
- 检查是否已开启"自动登录"开关
- 确认账号密码是否正确
- 检查系统设置中是否允许应用自启动和后台运行
- 查看应用日志,了解具体错误原因
可能的原因及解决方案:
- 确认webhook URL是否正确
- 检查网络连接是否正常
- 确认"登录成功时通知"开关已开启
- 查看应用日志,了解推送失败原因
可能的原因及解决方案:
- 确认已授予"开机自启动"权限
- 在系统设置中允许应用自启动
- 部分设备需要在系统安全中心/电池管理中设置应用为"受保护应用"
非常欢迎您为AutoNet4AHU-Android项目贡献代码或提出建议!
如果您发现了bug或有新功能建议,请在GitHub上创建Issue,并尽可能详细地描述问题或建议。
- Fork本仓库
- 创建您的特性分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 创建Pull Request
- 遵循Java/Android代码规范
- 添加必要的注释
- 编写单元测试(如果适用)
- 确保代码可在Android 8.0及以上版本正常运行
请查看Releases页面获取完整的版本历史。
本项目采用MIT许可证 - 详见LICENSE文件
- 感谢AutoNet4AHU项目提供的基础实现
- 感谢所有为此项目提供反馈和建议的用户
- 感谢Android开源社区提供的宝贵资源
免责声明:本项目仅供学习和研究使用,请遵守学校网络使用规定。开发者不对因使用本应用造成的任何问题负责。
如有任何问题或建议,欢迎在GitHub上提交Issue或直接联系我。
© 2025 biubush