我需要帮助从外部设备读取数据。在规范中,每个获取的值都是一个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
复制相似问题