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

5.2 KiB
Raw Permalink Blame History

PDA 打印机测试应用

一个用于测试内置 PDA 终端打印机的 Android 应用,基于 Jetpack Compose 构建。

版本 SDK 构建

📱 应用截图

应用提供完整的打印机测试界面,包含:

  • 实时连接状态显示
  • 完整的打印功能测试
  • 样式设置控制
  • 二维码/条形码打印
  • 走纸控制
  • 一键综合测试

功能特性

🔌 连接管理

  • 绑定/解绑打印服务
  • 初始化/关闭打印机
  • 实时状态监控

📄 打印功能

  • 文本打印 (printText / printText2)
  • 二维码生成与打印
  • 条形码生成与打印
  • 图片打印支持

🎨 样式控制

  • 字体大小调整
  • 粗体设置
  • 下划线设置
  • 打印浓度控制

📏 走纸控制

  • 打印空行
  • 走纸间距设置
  • 标签纸支持

🧪 测试工具

  • 快速打印测试
  • 单项功能测试
  • 完整综合测试

🚀 快速开始

环境要求

  • Android Studio Hedgehog 或更高版本
  • JDK 11
  • Android SDK 24+
  • 目标设备需预装 android.bld.PrintManager 系统服务

编译安装

方法一:使用自动构建脚本(推荐)

./build_release.sh

该脚本会自动:

  • 增加版本号
  • 清理并编译 Release APK
  • 复制 APK 到项目根目录

方法二:手动编译

./gradlew clean assembleRelease

生成的 APK 位于:

app/build/outputs/apk/release/PDA_Printer_Test_v{版本号}_release_{日期}.apk

安装到设备

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 主要方法

// 连接控制
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>

使用示例

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