通过android usb连续读取int

时间:2014-12-30 03:08:05

标签: android arduino bytearray serial-communication usb-otg

我正在开发一个Android应用程序,我想通过手机的端口读取串行数据(我使用OGT电缆)。为此我一直在使用以下libray

https://github.com/mik3y/usb-serial-for-android

库将读取串行数据作为字节数组,我想将其读取为0-255之间的整数值。这样做的原因是,我一直在“java.io.InputStream”中使用Inputstream的“read()”方法。 这里read方法会返回一个int evenn,虽然它将它们作为字节读取。

现在我正在尝试将此代码移植到Android应用程序,但我找不到从串行输入读取整数的方法。

我尝试使用以下代码将字节转换为int

ByteBuffer wrapped = ByteBuffer.wrap(arr); // big-endian by default
short num = wrapped.getShort(); // 1

其中“arr”是从串行输入读取的字节数组。但这导致应用程序崩溃,数字不在0-255之间。

我无法改变我对“0-255之间的整数值”的要求,因为在使用Java的pc中有一个基于此逻辑的整个项目。

有什么建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

使用Byte(arr[0]).intValue()(仅使用索引0)。