1.在操作蓝牙模块时候,Android 根据协议写数据,写入的是16进制数据 ,蓝牙返回来的数据也是16进制 。在这里  我们就要对数据转化。

2.下面是工作中常用的方法 ,写成了一个工具类  ,可以直接拿去用 。都是经过测试 有效

public class CommonUtil {    /*     * 将时间转换为时间戳     */    public static String dateToStamp(String s) throws ParseException {        String res;        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");        Date date = simpleDateFormat.parse(s);        long ts = date.getTime();        res = String.valueOf(ts);        return res;    }    /**     * 合并byte数组     */    public static byte[] unitByteArray(byte[] byte1,byte[] byte2){        byte[] unitByte = new byte[byte1.length + byte2.length];        System.arraycopy(byte1, 0, unitByte, 0, byte1.length);        System.arraycopy(byte2, 0, unitByte, byte1.length, byte2.length);        return unitByte;    }    /*      * 16进制字符串转字节数组      */    public static byte[] hexString2Bytes(String hex) {        if ((hex == null) || (hex.equals(""))){            return null;        }        else if (hex.length()%2 != 0){            return null;        }        else{            hex = hex.toUpperCase();            int len = hex.length()/2;            byte[] b = new byte[len];            char[] hc = hex.toCharArray();            for (int i=0; i     *     * @param dt     * @return 当前日期是星期几     */    public static String getWeekOfDate(Date dt) {        String[] weekDays = {"07", "01", "02", "03", "04", "05", "06"};        Calendar cal = Calendar.getInstance();        cal.setTime(dt);        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;        if (w < 0)            w = 0;        return weekDays[w];    }    /**     * 字符串转换成十六进制值     * @param bin String 我们看到的要转换成十六进制的字符串     * @return     */    public static String bin2hex(String bin) {        char[] digital = "0123456789ABCDEF".toCharArray();        StringBuffer sb = new StringBuffer("");        byte[] bs = bin.getBytes();        int bit;        for (int i = 0; i < bs.length; i++) {            bit = (bs[i] & 0x0f0) >> 4;            sb.append(digital[bit]);            bit = bs[i] & 0x0f;            sb.append(digital[bit]);        }        return sb.toString();    }    /**     * 把16进制字符串转化为byte数组     * @param hexString     * @return     */    public static byte[] toByteArray(String hexString) {        if (TextUtils.isEmpty(hexString))            throw new IllegalArgumentException("this hexString must not be empty");           hexString = hexString.toLowerCase();        final byte[] byteArray = new byte[hexString.length() / 2];        int k = 0;        for (int i = 0; i < byteArray.length; i++) {//因为是16进制,最多只会占用4位,转换成字节需要两个16进制的字符,高位在先            byte high = (byte) (Character.digit(hexString.charAt(k), 16) & 0xff);            byte low = (byte) (Character.digit(hexString.charAt(k + 1), 16) & 0xff);            byteArray[i] = (byte) (high << 4 | low);            k += 2;        }        return byteArray;    }    /**     * 将byte数组转为16进制字符串 此方法主要目的为方便Log的显示     */    public String bytesToHexString(byte[] src) {        StringBuilder stringBuilder = new StringBuilder("");        if (src == null || src.length <= 0) {            return null;        }        for (byte aSrc : src) {            int v = aSrc & 0xFF;            String hv = Integer.toHexString(v);            if (hv.length() < 2) {                stringBuilder.append(0);            }            stringBuilder.append(hv.toUpperCase()).append(" ");        }        return stringBuilder.toString();    }}

3.以上就是基本常用的方法,直接调用就好了  

更多相关文章

  1. Android蓝牙理论
  2. Article 2017- Q1
  3. Android(安卓)中 Base64 转换成 图片
  4. 【Android开发学习35】GL_TRIANGLE_STRIP之纹理贴图
  5. Android(安卓)RadialGradient 放射渲染
  6. [Android]【安卓】Json数据的快速拼装和解析
  7. Android(安卓)相关知识
  8. Android中实现震动的方法
  9. Android绘画之扭曲图像

随机推荐

  1. android 完美退出所有Activity的demo
  2. android 中的getCacheDir()、getFilesDir
  3. Android(安卓)USB gadget
  4. 系出名门Android(4) - 活动(Activity),
  5. 原生Android也能做Web开发了
  6. android 焦点问题
  7. Annroid交互式视觉设计控件一
  8. APP开发实战95-动态Vector基础
  9. 关于android的Menu理解
  10. Android(安卓)实现首次开机启动wizardset