# scan-code **Repository Path**: sky365/scan-code ## Basic Information - **Project Name**: scan-code - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 扫码王 - Scan Code App ## 项目简介 扫码王是一款功能丰富的 Android 扫码应用程序,提供二维码/条形码扫描、扫码登录、广告展示、APK 下载更新以及网页浏览等核心功能。本项目采用 Kotlin/Java 语言开发,遵循现代 Android 开发最佳实践。 ## 功能特性 ### 1. 扫码功能 - **自定义扫码界面** (`CustomScanActivity`): 支持二维码、条形码等多种格式识别 - **扫码登录** (`QRLoginActivity`): 实现基于二维码的用户认证流程 ### 2. 广告系统 - **开屏广告** (`SplashAdActivity`): 支持广告倒计时、跳过功能 - **广告配置管理**: 从服务器动态获取广告配置 - **广告下载进度**: 显示 APK 下载进度百分比 ### 3. 下载服务 - **APK 下载** (`DownloadService`): 支持后台下载应用更新 - **通知栏进度**: 实时显示下载进度 - **安装权限处理**: 自动处理未知来源安装权限 ### 4. 网页浏览 - **内嵌 WebView** (`WebViewActivity`): 支持在应用内打开网页 - **错误处理**: 网络异常友好提示 - **进度显示**: 网页加载进度条 ### 5. 工具类 - **配置管理** (`AppConfigUtil`): SharedPreferences 本地存储 - **网页跳转** (`WebUtil`): 外部浏览器打开链接 ## 项目结构 ``` app/src/main/java/com/example/scancode2/ ├── AppConfigUtil.java # 应用配置管理工具 ├── CustomScanActivity.java # 自定义扫码界面 ├── DownloadBroadcastReceiver.java # 下载完成广播接收 ├── DownloadService.java # APK下载服务 ├── MainActivity.java # 主界面 ├── QRLoginActivity.java # 扫码登录 ├── SplashAdActivity.java # 开屏广告 ├── WebUtil.java # 网页工具类 ├── WebViewActivity.java # 网页浏览界面 └── constant/ └── AppConstant.java # 应用常量定义 ``` ## 技术栈 - **网络请求**: OkHttp - **扫码引擎**: ZXing (基于 DecoratedBarcodeView) - **UI 框架**: AndroidX AppCompat - **弹窗组件**: XPopup (进度弹窗) - **构建工具**: Gradle ## 快速开始 ### 环境要求 - Android Studio Hedgehog 或更高版本 - JDK 17+ - Android SDK 24+ ### 构建步骤 1. 克隆项目到本地: ```bash git clone https://gitee.com/sky365/scan-code.git ``` 2. 使用 Android Studio 打开项目 3. 等待 Gradle 同步完成 4. 连接真机或启动模拟器 5. 点击运行按钮 (Shift + F10) ### 编译命令 ```bash # Debug 版本 ./gradlew assembleDebug # Release 版本 ./gradlew assembleRelease ``` ## 配置说明 ### 应用常量 在 `AppConstant.java` 中定义: ```java public static final String BASE_URL = "https://your-server.com/"; public static final String API_APP_CONFIG = "/api/app/config"; public static final String API_SCAN = "/api/scan"; // ...更多接口 ``` ### 广告配置 开屏广告支持以下配置: - 广告倒计时时间 - 跳过按钮显示时机 - 强制更新检测 - 下载进度弹窗 ## 模块详解 ### 扫码模块 支持定制扫码界面参数,可通过 `CustomScanActivity` 进行扩展: ```java // 启动扫码 Intent intent = new Intent(this, CustomScanActivity.class); startActivity(intent); ``` ### 登录模块 获取扫码登录凭证: ```java // 在 QRLoginActivity 中获取 ticket String ticket = getIntent().getStringExtra("ticket"); ``` ### 下载模块 启动 APK 下载: ```java Intent serviceIntent = new Intent(this, DownloadService.class); serviceIntent.putExtra(DownloadService.KEY_APK_URL, apkUrl); startService(serviceIntent); ``` ## 权限说明 本应用需要以下权限: - `INTERNET`: 网络访问 - `ACCESS_NETWORK_STATE`: 网络状态检查 - `REQUEST_INSTALL_PACKAGES`: APK 安装 - `POST_NOTIFICATIONS`: 下载通知 (Android 13+) ## 测试 单元测试: ```bash ./gradlew test ``` 仪器测试: ```bash ./gradlew connectedAndroidTest ``` ## 贡献指南 1. Fork 本项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 发起 Pull Request ## 版本历史 - **v1.0.0**: 初始版本发布 - 基础扫码功能 - 开屏广告 - APK 下载更新 - 扫码登录 ## 许可证 本项目采用 MIT 许可证。 ## 联系方式 - 项目地址: https://gitee.com/sky365/scan-code - 问题反馈: 请在 Gitee Issues 中提交 ## 致谢 感谢以下开源项目: - [ZXing](https://github.com/zxing/zxing) - 条码扫描库 - [OkHttp](https://square.github.io/okhttp/) - HTTP 客户端 - [XPopup](https://github.com/li-xiaojun/XPopup) - 弹窗组件