我正在开发一个安卓应用程序,我想通过手机端口读取串行数据(我使用 OGT 电缆)。为此,我一直在使用以下库
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 中有一个基于此逻辑构建的整个项目。
有什么建议可以解决这个问题吗?
Byte(arr[0]).intValue()
(仅使用索引 0 作为示例)。