安卓开发 蓝牙或者tcp用byte数组传输数据时的处理
2018-01-01 00:21
519 查看
用蓝牙或者WiFi(TCP)连接各种传感器开发时经常需要处理操作各种数据,byte的数值空间为-128到+127;
所以如果传感器、开发板那边定义的是无符号int型之类数据,Java端收到的数据用bytes传输的话,要将byte转换为正确的int等数值类型,就得判断byte值的正负,value=X>0?X:256+X,或者用下面这个方法;
public static int byte_to_int(byte b) {
int value;
value =(b & 0x000000FF);
return value;
}
最后需要的话再转16进制;
比如传给java 的是 ee ,转换成十进制是238,大于127,所以收到的byte值是238-256 = -18;要处理正确值就先用上面的方法转换回238,再操作或者显示。
所以如果传感器、开发板那边定义的是无符号int型之类数据,Java端收到的数据用bytes传输的话,要将byte转换为正确的int等数值类型,就得判断byte值的正负,value=X>0?X:256+X,或者用下面这个方法;
public static int byte_to_int(byte b) {
int value;
value =(b & 0x000000FF);
return value;
}
最后需要的话再转16进制;
比如传给java 的是 ee ,转换成十进制是238,大于127,所以收到的byte值是238-256 = -18;要处理正确值就先用上面的方法转换回238,再操作或者显示。
相关文章推荐
- mina自定义编解码器接收处理byte数组(同时解决数据传输中的粘包、缺包问题)
- mina自定义编解码器接收处理byte数组(同时解决数据传输中的粘包、缺包问题)
- mina自定义编解码器接收处理byte数组(同时解决数据传输中的粘包、缺包问题)
- socket 中使用byte数组或者是字符流传输数据
- JS数据处理[对json数据的一些简单处理转为数组或者键值对]
- 最全面的Java字节byte操作,处理Java基本数据的转换及进制转换操作工具,流媒体及java底层开发项目常用工具类
- Android 蓝牙设备通讯的开发(配对/连接/传输数据)
- java 16进制数据格式化处理工具类,16进制byte数组转String
- Android Bluetooth蓝牙开发:Bluetooth蓝牙设备之间数据传输(4)
- netty开发tcp数据传输编解码框架使用
- 网络TCp数据的传输设计(黏包处理)
- 数据转换成json数组或者对象传输
- 基于流模式的字节byte缓存区 bytebuffer.cs 用于tcp/udp的网络数据高效处理
- 数组和字典的writeToFile方法——在项目开发中处理网络数据的时候,可以把请求获得的网络数据保存为plist文件,这样更方便开发
- Android蓝牙通信——安卓蓝牙obtainMessage数据传输部分数据丢失乱序问题
- socket中传输byte数组数据
- 客户端与服务器进行数据传输时的TCP窗口与拥塞处理
- 安卓电话和网络开发全解:电话硬件检测、电话服务信息、sim信息、网络服务信息、数据连接和数据传输信息、电话状态监听
- android通过数组,流播放声音的方法,音频实时传输(安卓软件开发)
- 安卓开发中,在低版本SDK使用高版本的API会报错。一般处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案;后者可以用如下技巧来实现。