Android 蓝牙如何读取unsigned byte类型的数据
我读取的代码:byte[]buff=newbyte[1024];InputStreaminputStream=bluetoothSocket.getInputStream...
我读取的代码:
byte[] buff = new byte[1024];
InputStream inputStream = bluetoothSocket.getInputStream();
inputStream.read(buff);
问题是,java的byte是有符号的,只能表示-128~127范围内的数据。
现在如果我给蓝牙发送128~255范围的数据,蓝牙就读取不到。
有什么办法让蓝牙读取0~255范围的数据?
我已经尝试了两种方法,但都失败了。
第一种:
byte[] buff = new byte[1024];
int [] intBuff = new int[1024];
InputStream inputStream = bluetoothSocket.getInputStream();
inputStream.read(buff);
for(int i = 0;i<buff.length;i++){
intBuff[i] = buff[i] & 0xFF;
}
结果代码阻塞在inputStream.read(buff); 不会进入for循环
第二种:
int buff;
DataInputStream inputStream = (DataInputStream) bluetoothSocket.getInputStream();
buff = inputStream.readUnsignedByte();
结果运行时在buff = inputStream.readUnsignedByte();报错 展开
byte[] buff = new byte[1024];
InputStream inputStream = bluetoothSocket.getInputStream();
inputStream.read(buff);
问题是,java的byte是有符号的,只能表示-128~127范围内的数据。
现在如果我给蓝牙发送128~255范围的数据,蓝牙就读取不到。
有什么办法让蓝牙读取0~255范围的数据?
我已经尝试了两种方法,但都失败了。
第一种:
byte[] buff = new byte[1024];
int [] intBuff = new int[1024];
InputStream inputStream = bluetoothSocket.getInputStream();
inputStream.read(buff);
for(int i = 0;i<buff.length;i++){
intBuff[i] = buff[i] & 0xFF;
}
结果代码阻塞在inputStream.read(buff); 不会进入for循环
第二种:
int buff;
DataInputStream inputStream = (DataInputStream) bluetoothSocket.getInputStream();
buff = inputStream.readUnsignedByte();
结果运行时在buff = inputStream.readUnsignedByte();报错 展开
1个回答
2017-12-14 · 让每个孩子都能正常讲话,是我们最大的心愿
阳光语言矫正学校
1992年开始语音病理学研究,北京、上海 、长春设有校区,功能性构音障碍、腭裂语音障碍、听力言语障碍、语言发育迟缓、口吃等多个语音矫正和训练项目,对大舌头 口吃等各种语言障碍有数万例矫正经验
向TA提问
关注
展开全部
一,扫描BLE设备活动
检查该设备是否支持BLE设备,谷歌在Android4.3才开始支持BLE设备(晕死,很长一段时间都没有一台4.3的设备,看着程序修改了也不能测试!)。
if(!getPackageManager()。hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)){
Toast.makeText(this,R.string.ble_not_supported,Toast.LENGTH_SHORT).show();
完();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询