没有合适的资源?快使用搜索试试~ 我知道了~
首页Android 蓝牙连接 ESC/POS 热敏打印机打印实例(蓝牙连接篇)
公司的一个手机端的 CRM 项目最近要增加小票打印的功能,就是我们点外卖的时候经常会见到的那种小票。这里主要涉及到两大块的知识: 蓝牙连接及数据传输 ESC/POS 打印指令 蓝牙连接不用说了,太常见了,这篇主要介绍这部分的内容。但ESC/POS 打印指令是个什么鬼?简单说,我们常见的热敏小票打印机都支持这样一种指令,只要按照指令的格式向打印机发送指令,哪怕是不同型号品牌的打印机也会执行相同的动作。比如打印一行文本,换行,加粗等都有对应的指令,这部分内容放在下一篇介绍。 本篇主要基于官方文档,相比官方文档,省去了大段的说明,更加便于快速上手。 1. 蓝牙权限 想要使用蓝牙功能,首先要
资源详情
资源评论
资源推荐

Android 蓝牙连接蓝牙连接 ESC/POS 热敏打印机打印实例(蓝牙连接热敏打印机打印实例(蓝牙连接
篇)篇)
公司的一个手机端的 CRM 项目最近要增加小票打印的功能,就是我们点外卖的时候经常会见到的那种小票。这里主要涉及到
两大块的知识:
蓝牙连接及数据传输
ESC/POS 打印指令
蓝牙连接不用说了,太常见了,这篇主要介绍这部分的内容。但ESC/POS 打印指令是个什么鬼?简单说,我们常见的热敏小
票打印机都支持这样一种指令,只要按照指令的格式向打印机发送指令,哪怕是不同型号品牌的打印机也会执行相同的动作。
比如打印一行文本,换行,加粗等都有对应的指令,这部分内容放在下一篇介绍。
本篇主要基于官方文档,相比官方文档,省去了大段的说明,更加便于快速上手。
1. 蓝牙权限蓝牙权限
想要使用蓝牙功能,首先要在 AndroidManifest 配置文件中声明蓝牙权限:
<manifest>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
...
</manifest>
BLUETOOTH 权限只允许建立蓝牙连接以及传输数据,但是如果要进行蓝牙设备发现等操作的话,还需要申请
BLUETOOTH_ADMIN 权限。
2. 初始配置初始配置
这里主要用到一个类BluetoothAdapter。用法很简单,直接看代码:
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
// Device does not support Bluetooth
}
单例模式,全局只有一个实例,只要为 null,就代表设备不支持蓝牙,那么需要有相应的处理。
如果设备支持蓝牙,那么接着检查蓝牙是否打开:
if (!mBluetoothAdapter.isEnabled()) {
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, REQUEST_ENABLE_BT);
}
如果蓝牙未打开,那么执行 startActivityForResult() 后,会弹出一个对话框询问是否要打开蓝牙,点击`是`之后就会自动打开蓝
牙。成功打开蓝牙后就会回调到 onActivityResult()。
除了主动的打开蓝牙,还可以监听 BluetoothAdapter.ACTION_STATE_CHANGED
广播,包含EXTRA_STATE和EXTRA_PREVIOUS_STATE两个 extra 字段,可能的取值包括 STATE_TURNING_ON, STATE_ON,
STATE_TURNING_OFF, and STATE_OFF。含义很清楚了,不解释。
3. 发现设备发现设备
初始化完成之后,蓝牙打开了,接下来就是扫描附近的设备,只需要一句话:
mBluetoothAdapter.startDiscovery();
不过这样只是开始执行设备发现,这肯定是一个异步的过程,我们需要注册一个广播,监听发现设备的广播,直接上代码:
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// 当有设备被发现的时候会收到 action == BluetoothDevice.ACTION_FOUND 的广播
if (BluetoothDevice.ACTION_FOUND.equals(action)) {













安全验证
文档复制为VIP权益,开通VIP直接复制

评论0