215 lines
5.2 KiB
Markdown
215 lines
5.2 KiB
Markdown
# PDA 打印机测试应用
|
||
|
||
一个用于测试内置 PDA 终端打印机的 Android 应用,基于 Jetpack Compose 构建。
|
||
|
||

|
||

|
||

|
||
|
||
## 📱 应用截图
|
||
|
||
应用提供完整的打印机测试界面,包含:
|
||
- 实时连接状态显示
|
||
- 完整的打印功能测试
|
||
- 样式设置控制
|
||
- 二维码/条形码打印
|
||
- 走纸控制
|
||
- 一键综合测试
|
||
|
||
## ✨ 功能特性
|
||
|
||
### 🔌 连接管理
|
||
- 绑定/解绑打印服务
|
||
- 初始化/关闭打印机
|
||
- 实时状态监控
|
||
|
||
### 📄 打印功能
|
||
- 文本打印 (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
|