Android蓝牙开发(二)
2017-06-06 17:27
281 查看
前言
在之前的两篇博客中简单介绍了蓝牙协议中的一些Api和利用蓝牙洗衣来实现一个简单聊天功能,不清楚的可以看看这两篇文章,文章一:蓝牙API,文章二:利用蓝牙实现简单的聊天功能,在有了之前的基础的情况下,来了解一下怎么样利用蓝牙实现连接打印机并且实现打印小票这个功能。
第一步:权限
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
第二步:检测是否打开蓝牙
获取蓝牙适配器来判断是否打开蓝牙,这里我就不贴代码了,上一篇文章中有详细的介绍怎么样利用适配器BluetoothAdapter来检测是否打开蓝牙的步骤
第三步:连接
连接的时候需要注意要先搜索附近的蓝牙设备才能连接,具体操作上一篇文章中也有介绍
第四步:
指定文字打印格式:先贴出代码
public class TextFormatUtil {
}
第四步:指定图片格式
指定图片格式这一步骤在前面一篇文章中有介绍相对应得格式,不了解的可以看看这篇文章http://blog.csdn.net/qq_34942689/article/details/72820226
第五步:打印
最后在你需要打印的地方调用sendMessage方法就可以实现打印功能。
以上就是整个利用蓝牙实现连接打印机实现打印小票的功能,有不清楚的地方或者有什么更好的建议欢迎留言,谢谢!
在之前的两篇博客中简单介绍了蓝牙协议中的一些Api和利用蓝牙洗衣来实现一个简单聊天功能,不清楚的可以看看这两篇文章,文章一:蓝牙API,文章二:利用蓝牙实现简单的聊天功能,在有了之前的基础的情况下,来了解一下怎么样利用蓝牙实现连接打印机并且实现打印小票这个功能。
第一步:权限
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
第二步:检测是否打开蓝牙
获取蓝牙适配器来判断是否打开蓝牙,这里我就不贴代码了,上一篇文章中有详细的介绍怎么样利用适配器BluetoothAdapter来检测是否打开蓝牙的步骤
第三步:连接
连接的时候需要注意要先搜索附近的蓝牙设备才能连接,具体操作上一篇文章中也有介绍
第四步:
指定文字打印格式:先贴出代码
public class TextFormatUtil {
/** * 打印纸一行最大的字节 */ private static final int DEFAULT_LINE_BYTE_SIZE = 35; private int lineByteSize = DEFAULT_LINE_BYTE_SIZE; /** * 分隔符 */ private static final String SEPARATOR = "$"; private static StringBuffer sb = new StringBuffer(); /** * 行元素集合 */ private final List<TextWeightBean> lineElements = new ArrayList<TextWeightBean>(); /** * 排版居中标题 * * @param title * @return */ public String getLineTitle(String title) { sb.delete(0, sb.length()); for (int i = 0; i < (lineByteSize - getBytesLength(title)) / 2; i++) { sb.append(" "); } sb.append(title); sb.append("\n"); return sb.toString(); } /** * 根据比重打印文字,全部文字居左对齐 * * @return */ public String getLineTextAccordingWeight(List<TextWeightBean> list) { sb.delete(0, sb.length()); float totalWeight = 0; for (int i = 0; i < list.size(); i++) { totalWeight += list.get(i).getWeight(); } for (int i = 0; i < list.size(); i++) { TextWeightBean textWeightBean = list.get(i); String showText = textWeightBean.getText(); int holdSize = (int) (textWeightBean.getWeight() / totalWeight * lineByteSize); showText = formatText(showText, holdSize); sb.append(showText); } sb.append("\n"); return sb.toString(); } /** * 显示的文字格式化 * @param showText * @param holdSize * @return */ private String formatText(String showText, int holdSize) { int textSize = getBytesLength(showText); if (textSize > holdSize) { showText = subText(showText, holdSize); } else { for (int j = 0; j < holdSize - textSize; j++) { showText += " "; } } return showText; } private String subText(String showText, int holdSize) { int size = 0; int index = 0; int symbolLength = "..".getBytes(Charset.forName("GB2312")).length; for (int j = 0; j < showText.length(); j++) { String c = showText.substring(j, j + 1); size += c.getBytes(Charset.forName("GB2312")).length; index = j; if (size > holdSize - symbolLength) { break; } } showText = showText.substring(0, index) + ".."; return formatText(showText, holdSize); } /** * 获取数据长度 * @param msg * @return */ @SuppressLint("NewApi") private static int getBytesLength(String msg) { if (msg == null) { return "null".getBytes(Charset.forName("GB2312")).length; } return msg.getBytes(Charset.forName("GB2312")).length; } /** * 获取最大长度 * @param msgs * @return */ private static int getMaxLength(Object[] msgs) { int max = 0; int tmp; for (Object oo : msgs) { tmp = getBytesLength(oo.toString()); if (tmp > max) { max = tmp; } } return max; }
}
第四步:指定图片格式
指定图片格式这一步骤在前面一篇文章中有介绍相对应得格式,不了解的可以看看这篇文章http://blog.csdn.net/qq_34942689/article/details/72820226
第五步:打印
private void sendMessage(String message) { if (message.length() > 0) { // Get the message bytes and tell the BluetoothService to write byte[] send; try { send = message.getBytes("GBK"); } catch (UnsupportedEncodingException e) { send = message.getBytes(); } bluetoos.getService(this).write(send); }
最后在你需要打印的地方调用sendMessage方法就可以实现打印功能。
以上就是整个利用蓝牙实现连接打印机实现打印小票的功能,有不清楚的地方或者有什么更好的建议欢迎留言,谢谢!
相关文章推荐
- Android 蓝牙开发之一设置蓝牙
- 初涉Android蓝牙开发(转) 收藏以备后用
- Android 蓝牙开发详述
- [转]Android蓝牙开发浅谈
- 初涉Android蓝牙开发
- Android蓝牙开发(一)
- 初涉Android蓝牙开发
- android 蓝牙开发常见问题总结
- android 蓝牙开发 蓝牙 bluetoothsocket connect 经常出错 解决方法
- 初涉Android蓝牙开发
- Android开发之--WIFI,蓝牙,电池,背光,SD卡,摄像头,按键,MIC,重力感应等各种操作
- Android中的蓝牙Bluetooth应用开发基础
- Android蓝牙应用开发
- android 蓝牙开发常见问题总结
- Android 蓝牙开发研究
- android开发之蓝牙初步 扫描已配对蓝牙、更改蓝牙可见性、搜索外部蓝牙设备
- Android平台开发-Bluez function porting-蓝牙功能移植
- Android蓝牙通信功能开发
- 初涉Android蓝牙开发
- android蓝牙开发