up
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user