# PDA 打印机测试应用 一个用于测试内置 PDA 终端打印机的 Android 应用,基于 Jetpack Compose 构建。 ![版本](https://img.shields.io/badge/版本-1.1-blue) ![SDK](https://img.shields.io/badge/MinSDK-24-green) ![构建](https://img.shields.io/badge/构建-成功-brightgreen) ## 📱 应用截图 应用提供完整的打印机测试界面,包含: - 实时连接状态显示 - 完整的打印功能测试 - 样式设置控制 - 二维码/条形码打印 - 走纸控制 - 一键综合测试 ## ✨ 功能特性 ### 🔌 连接管理 - 绑定/解绑打印服务 - 初始化/关闭打印机 - 实时状态监控 ### 📄 打印功能 - 文本打印 (printText / printText2) - 二维码生成与打印 - 条形码生成与打印 - 图片打印支持 ### 🎨 样式控制 - 字体大小调整 - 粗体设置 - 下划线设置 - 打印浓度控制 ### 📏 走纸控制 - 打印空行 - 走纸间距设置 - 标签纸支持 ### 🧪 测试工具 - 快速打印测试 - 单项功能测试 - 完整综合测试 ## 🚀 快速开始 ### 环境要求 - Android Studio Hedgehog 或更高版本 - JDK 11 - Android SDK 24+ - 目标设备需预装 `android.bld.PrintManager` 系统服务 ### 编译安装 #### 方法一:使用自动构建脚本(推荐) ```bash ./build_release.sh ``` 该脚本会自动: - 增加版本号 - 清理并编译 Release APK - 复制 APK 到项目根目录 #### 方法二:手动编译 ```bash ./gradlew clean assembleRelease ``` 生成的 APK 位于: ``` app/build/outputs/apk/release/PDA_Printer_Test_v{版本号}_release_{日期}.apk ``` ### 安装到设备 ```bash adb install -r app/build/outputs/apk/release/PDA_Printer_Test_v1.1_2_release_20260624.apk ``` ## 📖 使用说明 ### 基本流程 1. **启动应用** → 打开 PDA 打印机测试应用 2. **绑定服务** → 点击"绑定服务"按钮连接打印服务 3. **初始化** → 点击"初始化"按钮初始化打印机 4. **测试打印** → 使用各项测试按钮或运行完整测试 5. **关闭释放** → 完成后点击"关闭打印机"和"解绑服务" ### 快速测试 点击 **"快速打印测试"** 按钮可一键完成: ``` 初始化 → 打印测试文本 → 提交打印 → 关闭打印机 ``` ### 综合测试 点击 **"运行完整测试"** 按钮将打印包含以下内容的测试单: - 标题(大字体、粗体) - 普通文本示例 - 粗体文本示例 - 下划线文本示例 - 二维码(https://example.com) - 条形码(123456789012) - 分隔线 ## 🏗️ 项目结构 ``` ops_android/ ├── app/ │ └── src/ │ └── main/ │ ├── aidl/android/bld/ │ │ └── IPrintManager.aidl # 打印服务接口定义 │ ├── java/com/example/ops_android/ │ │ ├── MainActivity.kt # 主界面 │ │ └── printer/ │ │ └── PrinterManager.kt # 打印机管理器 │ └── AndroidManifest.xml ├── build_release.sh # 自动构建脚本 ├── BUILD_INFO.md # 构建信息 └── README_PRINTER_TEST.md # 详细文档 ``` ## 🔧 API 参考 ### PrinterManager 主要方法 ```kotlin // 连接控制 fun bindService(): Boolean fun unbindService() fun initPrinter(): Result fun closePrinter(): Result // 打印内容 fun printText(text: String): Result fun printText2(text: String): Result fun printQR(content: String, size: Int = 6): Result fun printBarcode(content: String, type: Int = 0, width: Int = 2, height: Int = 60): Result fun printLine(lineCount: Int = 1): Result fun start(): Result // ⚠️ 必须调用才会实际打印 // 样式设置 fun setFontSize(size: Int): Result fun setTextBold(bold: Boolean): Result fun setUnderLine(underline: Boolean): Result fun setConcentration(level: Int): Result ``` ### 使用示例 ```kotlin val printerManager = PrinterManager(context) // 打印文本 printerManager.bindService() printerManager.initPrinter() printerManager.printText2("Hello World\n") printerManager.start() // ⚠️ 重要:提交打印 printerManager.closePrinter() printerManager.unbindService() // 打印二维码 printerManager.initPrinter() printerManager.printQR("https://example.com", 6) printerManager.start() printerManager.closePrinter() ``` ## ⚠️ 注意事项 1. **必须调用 start()**: 所有打印内容添加后,必须调用 `start()` 方法才会实际出纸 2. **服务依赖**: 应用依赖设备预装的 `android.bld.PrintManager` 系统服务 3. **资源管理**: 使用完毕后应及时释放打印机资源 4. **错误处理**: 所有方法返回 `Result`,需要正确处理成功/失败情况 ## 📝 版本历史 ### v1.1 (Build 2) - 2026-06-24 - ✨ 完整的打印机测试界面 - ✨ 所有打印功能支持 - ✨ 实时状态显示 - ✨ 综合测试功能 - 📦 AIDL 接口集成 - 👤 作者信息显示 ### v1.0 (Build 1) - 🎉 初始版本 ## 👤 作者 **无闻风** ## 📄 许可证 本项目仅供内部测试使用 ## 🤝 技术支持 如有问题或建议,请联系开发团队。 --- **最后更新**: 2026-06-24