我需要帮助从外部设备读取数据。在规范中,每个获取的值都是一个24位有符号整数,但我不能正确地从Dart读取数据(尽管我可以在Java上读取数据)。
从Java开始(因为它工作正常),我以字节数组的形式获取数据,然后读取一个字节,给出正确的值:
byte[] data = call.argument("mydata");
Log.d("CONVERT_DATA_datai", String.valueOf(data[4]));
在这种情况下,输出是-1
,并且它是正确的。
在Dart中,我看到没有字节数组类型,但是我应该使用List<int>
,所以我的代码是:
List<int> data = value as List<int>;
print(data[4].toString());
在这种情况下,我得到的值255
是不正确的,我认为,因为我必须把它转换成有符号的24位整数。
其他样本如下:
-6
在java中,250
在dart中(不正确)
3
在java中,3
在dart中(正确)
我该如何解决这个问题?
提前谢谢。
发布于 2022-11-09 08:59:56
在Int8List
中有dart:typed_data
类型。
通过访问Int8List::buffer
,您可以读取任意数字。
https://stackoverflow.com/questions/74372147
复制相似问题