Files
2026-06-24 18:50:26 +08:00

215 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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<Unit>
fun closePrinter(): Result<Unit>
// 打印内容
fun printText(text: String): Result<Unit>
fun printText2(text: String): Result<Unit>
fun printQR(content: String, size: Int = 6): Result<Unit>
fun printBarcode(content: String, type: Int = 0, width: Int = 2, height: Int = 60): Result<Unit>
fun printLine(lineCount: Int = 1): Result<Unit>
fun start(): Result<Unit> // ⚠️ 必须调用才会实际打印
// 样式设置
fun setFontSize(size: Int): Result<Unit>
fun setTextBold(bold: Boolean): Result<Unit>
fun setUnderLine(underline: Boolean): Result<Unit>
fun setConcentration(level: Int): Result<Unit>
```
### 使用示例
```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<Unit>`,需要正确处理成功/失败情况
## 📝 版本历史
### v1.1 (Build 2) - 2026-06-24
- ✨ 完整的打印机测试界面
- ✨ 所有打印功能支持
- ✨ 实时状态显示
- ✨ 综合测试功能
- 📦 AIDL 接口集成
- 👤 作者信息显示
### v1.0 (Build 1)
- 🎉 初始版本
## 👤 作者
**无闻风**
## 📄 许可证
本项目仅供内部测试使用
## 🤝 技术支持
如有问题或建议,请联系开发团队。
---
**最后更新**: 2026-06-24