UME: 设备信息获取及StringBuffer
功能查看
今天功能比较简单,当我们点击device Info时会弹出当前设备信息
源码查看
今天的代码在flutter_ume_kit_device包中,其中有个文件夹device_info,代码在device_info_panel.dart中,其中使用到官方的dart类package:device_info/device_info.dart
,改类中包含iOS和安卓的设备信息,区分平台拿到设备信息,重新组装了一下deviceinfo信息,并将所有信息拼接成了stringbuffer
void _getDeviceInfo() async {
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
Map dataMap = Map();
if (widget.platform.isAndroid) {
AndroidDeviceInfo androidDeviceInfo = await deviceInfo.androidInfo;
dataMap = _readAndroidBuildData(androidDeviceInfo);
} else if (widget.platform.isIOS) {
IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo;
dataMap = _readIosDeviceInfo(iosDeviceInfo);
}
StringBuffer buffer = StringBuffer();
dataMap.forEach((k, v) {
buffer.write('$k: $v\n');
});
_content = buffer.toString();
setState(() {});
}
今天的主要代码就这么多, 其他的关于UI布局方面的代码就不做过多的解释了
StringBuffer
在对info处理时使用了StringBuffer
,相信对Java、Android开发来说并不陌生,但对iOS开发者来说就很陌生
在Java中的字符串处理分为三种String、StringBuffer、StringBuilder,关于StringBuilder在dart中并没有对应的方法所以就不多解释了,主要看一下String、StringBuffer
String相信大家都知道用法,那StringBuffer又有什么不同呢,其实StringBuffer就是一个可变的字符串,任何对String的改变都会产生一个新的对象,而StringBuffer是个可变字符串,当对它进行操作时,不会产生新的对象,所以在上述方法中对字符串进行操作是选用的是StringBuffer
StringBuffer buffer = StringBuffer(); dataMap.forEach((k, v) { buffer.write('$k: $v\n'); }); _content = buffer.toString();
结语
好了今天的源码查看就到这了, 今天将是我们UME系列的最后一期的,如果还有什么想看的源码请在下方评论,我们一起看源码,共同学习
作为Flutter届的一个小学生,希望大家多多指教,有问题的地方一起讨论
转载自:https://juejin.cn/post/7029274732935512094