第二百七十三回

文章目录

  • 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等平台来分类。
  • 设备信息存放在类的成员属性中,可以通过类的对象获取到;
    看官们,与"如何获取设备信息"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413407.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交互设计:降低用户负荷

之前给大家介绍了交互设计的底层模型——最新版福格行为模型。 模型告诉我们想让用户进行某个行为有3个步骤&#xff0c;第一个步骤是检查有没有(合理的)行为提示&#xff0c;我把它翻译成能否吸引用户注意&#xff0c;感兴趣的同学可以查看《交互设计之吸引用户注意》。第二个…

极简云源码已经开源

源码介绍 极简云已经开源 解绑卡密 查询卡密 总体来说还是很完善的 对接例子网盘里有 用户注册需要配置邮箱 上网页QQ邮箱标准版开启SMTP 然后生成授权码 后台发信邮箱里填就对了 实在不会配置邮箱的 可以下载网盘里的reg.php 把reg.php上传源码里的user目录 之后注册就不需要…

大模型基础2

大模型基础2 第二章&#xff1a;大模型的能力 语言模型的适应性&#xff1a;从语言模型到任务模型的转化 语言模型转化为任务模型的过程称为"适应"&#xff1a; 任务的自然语言描述一组训练实例&#xff08;输入-输出对&#xff09; 进行适应的两个种方法&#xf…

中国联通助力吴江元荡生态岸线打造5G+自动驾驶生态长廊

吴江&#xff0c;素有“鱼米之乡”“丝绸之府”的美誉&#xff0c;其地理位置优越&#xff0c;地处太湖之滨。近年来&#xff0c;随着长三角生态绿色一体化发展示范区&#xff08;以下简称“示范区”&#xff09;的建立&#xff0c;元荡更是声名大噪&#xff0c;成为众多游客心…

鸿蒙OS4.0兼容性测试

背景 OpenHarmony兼容性测评主要是验证合作伙伴的设备和业务应用满足OpenHarmony开源兼容性定义的技术要求&#xff0c;确保运行在OpenHarmony上的设备和业务应用能稳定、正常运行&#xff0c;同时使用OpenHarmony的设备和业务应用有一致性的接口和业务体验。 OpenHarmony兼容…

Vulnhub靶机:driftingblues 2

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;driftingblues2&#xff08;10.0.2.18&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entr…

JavaScript工具1:获取页面某个元素上所有后代元素

需求&#xff1a;获取页面某个元素上所有后代元素&#xff0c;以便于给某些元素绑定事件或者修改样式等操作。 结果如图&#xff1a; 页面代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><…

【CSS】保持元素宽高比

保持元素的宽高比&#xff0c;在视频或图片展示类页面是一个重要功能。 本文介绍其常规的实现方法。 实现效果 当浏览器视口发生变化时&#xff0c;元素的尺寸随之变化&#xff0c;且宽高比不变。 代码实现 我们用最简单的元素结构来演示&#xff0c;实现宽高比为4&#xf…

【复现】网康科技-防火墙存在RCE漏洞_17

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 网康下一代防火墙(NGFW)是一款可以全面应对应用层威胁的高性能防火墙。通过深入洞察网络流量中的用户、应用和内容&#xff0c;并…

【JS逆向学习】36kr登陆逆向案例(webpack)

在开始讲解实际案例之前&#xff0c;大家先了解下webpack的相关知识 WebPack打包 webpack是一个基于模块化的打包&#xff08;构建&#xff09;工具, 它把一切都视作模块 webpack数组形式&#xff0c;通过下标取值 !function(e) {var t {};// 加载器 所有的模块都是从这个…

【GaussDB数据库】序

参考链接1&#xff1a;国产数据库华为高斯数据库&#xff08;GaussDB&#xff09;功能与特点总结 参考链接2&#xff1a;GaussDB(DWS)介绍 GaussDB简介 官方网站&#xff1a;云数据库GaussDB GaussDB是华为自主创新研发的分布式关系型数据库。该产品支持分布式事务&#xff0c;…

宿舍维修管理系统:从数据库到前端的全面解析

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…