一、前言
最近做一个项目,里面要求用到Bluetooth Printer (蓝牙打印机)对账单信息进行打印,做项目的过程跳了很多的坑,本文在此做个小结,以起到抛砖引玉的作用。
Bluetooth Printer 和手机连接用到了蓝牙,其中主要用到下面几个类:BluetoothDevice 、BluetoothAdapter、Bluetooth Socket
1.BluetoothDevice
这是远程蓝牙设备的bean类,继承了Parcelable接口,远程蓝牙设备的属性都在这个类中,包括名称、地址、类和连接状态等信息;最主要的方法有
(1)public String getAddress
(2)public String getName () 获取远程设备的蓝牙昵称;
(3)public int getBondState ()获取远程设备的连接状态;
详情查看:BluetoothDevice
2.BluetoothAdapter
调用getDefaultAdapter()这一静态方法获取的,它有几个常用的常量:
(1)String ACTION_DISCOVERY_FINISHED 广播事件:本地蓝牙适配器已经完成设备的搜寻过程。
(2) String ACTION_DISCOVERY_STARTED 广播事件:本地蓝牙适配器已经开始对远程设备的搜寻过程
(3)String ACTION_LOCAL_NAME_CHANGED 广播活动:本地蓝牙适配器已经更改了它的蓝牙名称
(4)String ACTION_REQUEST_DISCOVERABLE
Activity活动:显示一个请求被搜寻模式的系统活动。如果蓝牙模块当前未打开,该活动也将请求用户打开蓝牙模块;
(5)String ACTION_REQUEST_ENABLE Activity活动:显示一个允许用户打开蓝牙模块的系统活动
常见的方法:
(1)public boolean isEnabled
如果蓝牙正处于打开状态并可用,则返回真值
(2)public boolean startDiscovery ()
开始对远程设备进行查找的进程,它通常牵涉到一个大概需时12秒的查询扫描过程,紧跟着是一个对每个获取到自身蓝牙名称的新设备的页面扫描。这是一个异步调用方法:该方法将马上获得返回值,