当前位置: 首页 > news >正文

第三百三十九回

文章目录

  • 1. 概念介绍
  • 2. 方法与信息
    • 2.1 获取方法
    • 2.2 详细信息
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"蓝牙综合示例"相关的内容,本章回中将介绍如何获取设备信息.闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

我们在本章回中获取的设备信息主要指手机的硬件和软件参数,比如手机屏幕的分辨率,手机上系统的版本号。如果是原生开发的话,使用官方提供的接口就可以实现,但
是在Flutter开发中没有类似的接口,怎么办呢?本章回中将给大家介绍如何去获取这些设备信息。

2. 方法与信息

2.1 获取方法

我们想要获取的设备信息可以通过device_info_plus这个三方包实现,该包提供了相关的接口来获取设备信息。详细的使用方法如下:

  • 添加包的信息到yaml配置文件中,然后通过get命令获取包;
  • 创建包中提供的DeviceInfoPlugin类型对象;
  • 从对象的属性中获取设备信息;
    上面的方法看着简单,不过还有一些内容需要注意:获取设备信息时需要使用异步操作,不然无法获取到设备信息。设备信息按照平台分类,因为Flutter支持跨平台的
    操作,所以设备信息可以分为Android,IOS和Web等不同平台。

2.2 详细信息

设备信息以类的成员属性存放在类的对象中,下面是Android设备的成员属性,请大家参考:

/// Android operating system version values derived from `android.os.Build.VERSION`.final AndroidBuildVersion version;/// The name of the underlying board, like "goldfish"./// https://developer.android.com/reference/android/os/Build#BOARDfinal String board;/// The system bootloader version number./// https://developer.android.com/reference/android/os/Build#BOOTLOADERfinal String bootloader;/// The consumer-visible brand with which the product/hardware will be associated, if any./// https://developer.android.com/reference/android/os/Build#BRANDfinal String brand;/// The name of the industrial design./// https://developer.android.com/reference/android/os/Build#DEVICEfinal String device;/// A build ID string meant for displaying to the user./// https://developer.android.com/reference/android/os/Build#DISPLAYfinal String display;/// A string that uniquely identifies this build./// https://developer.android.com/reference/android/os/Build#FINGERPRINTfinal String fingerprint;/// The name of the hardware (from the kernel command line or /proc)./// https://developer.android.com/reference/android/os/Build#HARDWAREfinal String hardware;/// Hostname./// https://developer.android.com/reference/android/os/Build#HOSTfinal String host;/// Either a changelist number, or a label like "M4-rc20"./// https://developer.android.com/reference/android/os/Build#IDfinal String id;/// The manufacturer of the product/hardware./// https://developer.android.com/reference/android/os/Build#MANUFACTURERfinal String manufacturer;/// `false` if the application is running in an emulator, `true` otherwise.final bool isPhysicalDevice;/// Information about the current android display.final AndroidDisplayMetrics displayMetrics;/// Hardware serial number of the device, if available////// There are special restrictions on this identifier, more info here:/// https://developer.android.com/reference/android/os/Build#getSerial()final String serialNumber;

上面的代码来自包中的源代码,代码中的注释就是成员属性的含义,从中可以看到,我们可以获取到Android设备的硬件版本号,Android系统版本号等信息。此外,这
里只列出了部分信息,大家可以从源代码中看到完成的设备信息。关于该包更多的用法可以参考API文档。

3. 示例代码

///获取手机上的软件和硬件信息
Future<String> getAndroidDeviceInfo() async {
String result = "";
DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
AndroidDeviceInfo androidDeviceInfo = await deviceInfoPlugin.androidInfo;
result = androidDeviceInfo.toString();debugPrint("device info: $result");///可以得到以下关键信息
/// widthPx: 1080.0, heightPx: 2460  sdkInt: 33return result;
}

上面是我们获取Android设备信息的示例代码,通过该代码可以获取当前手机的屏幕分辨率和手机上Android系统的版本号。大家可以自动动手来获取IOS手机上的设备
信息,就当作是我留给大家的作业吧。

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • Flutter没有提供获取设备信息的接口,可以通过三方包实现;
  • 获取的设备信息按照Andrid,IOS,Web等平台来分类。
  • 设备信息存放在类的成员属性中,可以通过类的对象获取到;
    看官们,与"如何获取设备信息"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2020年认证杯SPSSPRO杯数学建模B题(第一阶段)分布式无线广播全过程文档及程序
  • KVM虚拟机部署K8S重启后/etc/hosts内容丢失
  • 1分钟带你了解golang(go语言)
  • Linux 安装Jupyter notebook 并开启远程访问
  • WPF 基础入门(XAML理解二)
  • 【头歌实训】PySpark Streaming 入门
  • Linux 硬件配置
  • Android : 使用GestureOverlayView进行手势识别—简单应用
  • Python学习笔记(六)面向对象编程
  • PHP调用系统命令/其他应用程序 并获取应用返回值的方法
  • mac 生成 本地.ssh
  • oracle 9i10g编程艺术-读书笔记2
  • python/selenium/jenkins整合
  • 实战 | 使用OpenCV快速去除文档中的表格线条(步骤 + 源码)
  • C/C++面向对象(OOP)编程-回调函数详解(回调函数、C/C++异步回调、函数指针)
  • Apache Pulsar 2.1 重磅发布
  • extract-text-webpack-plugin用法
  • java2019面试题北京
  • javascript面向对象之创建对象
  • JS变量作用域
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Vue学习第二天
  • 电商搜索引擎的架构设计和性能优化
  • 高程读书笔记 第六章 面向对象程序设计
  • 将 Measurements 和 Units 应用到物理学
  • 浏览器缓存机制分析
  • 什么软件可以剪辑音乐?
  • 首页查询功能的一次实现过程
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #微信小程序:微信小程序常见的配置传旨
  • $jQuery 重写Alert样式方法
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (13)DroneCAN 适配器节点(一)
  • (2)nginx 安装、启停
  • (8)STL算法之替换
  • (LeetCode 49)Anagrams
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (七)Java对象在Hibernate持久化层的状态
  • (强烈推荐)移动端音视频从零到上手(上)
  • (十六)一篇文章学会Java的常用API
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @hook扩展分析
  • [《百万宝贝》观后]To be or not to be?
  • [BFS广搜]迷阵
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [C#]将opencvsharp的Mat对象转成onnxruntime的inputtensor的3种方法