Back to project page BluetoothLeToAndroid.
The source code is released under:
MIT License
If you think the Android project BluetoothLeToAndroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.example.arduino; /* w w w . j a v a 2s .c o m*/ import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import org.apache.http.util.ByteArrayBuffer; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.regex.Pattern; public class HexAsciiHelper { public static int PRINTABLE_ASCII_MIN = 0x20; // ' ' public static int PRINTABLE_ASCII_MAX = 0x7E; // '~' public static boolean isPrintableAscii(int c) { return c >= PRINTABLE_ASCII_MIN && c <= PRINTABLE_ASCII_MAX; } public static String bytesToHex(byte[] data) { return bytesToHex(data, 0, data.length); } public static String bytesToHex(byte[] data, int offset, int length) { if (length <= 0) { return ""; } StringBuilder hex = new StringBuilder(); for (int i = offset; i < offset + length; i++) { hex.append(String.format(" %02X", data[i] % 0xFF)); } hex.deleteCharAt(0); return hex.toString(); } public static String bytesToAsciiMaybe(byte[] data) { return bytesToAsciiMaybe(data, 0, data.length); } public static String bytearray2float(byte[] b) { float f = ByteBuffer.wrap(b).order(ByteOrder.LITTLE_ENDIAN).getFloat(); return Float.toString(f); } public static String bytesToAsciiMaybe(byte[] data, int offset, int length) { StringBuilder ascii = new StringBuilder(); boolean zeros = false; for (int i = offset; i < offset + length; i++) { int c = data[i] & 0xFF; if (isPrintableAscii(c)) { if (zeros) { return null; } ascii.append((char) c); } else if (c == 0) { zeros = true; } else { return null; } } return ascii.toString(); } public static byte[] hexToBytes(String hex) { ByteArrayBuffer bytes = new ByteArrayBuffer(hex.length() / 2); for (int i = 0; i < hex.length(); i++) { if (hex.charAt(i) == ' ') { continue; } String hexByte; if (i + 1 < hex.length()) { hexByte = hex.substring(i, i + 2).trim(); i++; } else { hexByte = hex.substring(i, i + 1); } bytes.append(Integer.parseInt(hexByte, 16)); } return bytes.buffer(); } }