如果做一个有关BLE的应用的话,就有可能涉及到将一段字符串(短信内容、联系人名字、号码串)或者一张图片发送到BLE设备上面。
1、传输字符串
字符串也是需要转成byte数组,然后再进行传输
String textContent = "你好,Android BLE";
textContent.getBytes("UTF-8");//这里设置编码格式,可以根据需求进行设置
通过上面的代码,我们就可以把任意字符串转化成byte数组,再转成16进制字符串,在进行拼接等操作。
2、传输图片
由于BLE传输需要使用byte类型传输,所以我们也需要将图片数据转成byte数组的形式:
// 将Bitmap转化成byte数组,ratio表示压缩率
public static byte[] getBitmapByte(Bitmap bitmap, int ratio) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100 / ratio, out);
try {
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return out.toByteArray();
}
//从byte数组中解析出来Bitmap
public static Bitmap getBitmapFromByte(byte[] temp) {
Bitmap bitmap = null;
if (temp != null) {
try {
bitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length);
} catch (Exception e) {
LogUtils.e(TAG, "getBitmapFromByte exception :" + e.toString());
}
}
return bitmap;
}
//还有其他的一些方法,比如从存储空间中解析一张图片为Bitmap对象。