第三百三十九回

文章目录

  • 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.mzph.cn/news/589836.shtml

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

相关文章

十八、任务通知

1、前言 (1)所谓“任务通知”&#xff0c;可以反过来读"通知任务"。我们使用队列、信号量、事件组等等方法时&#xff0c;并不知道对方是谁。使用任务通知时&#xff0c;可以明确指定&#xff1a;通知哪个任务。 (2)使用队列、信号量、事件组时&#xff0c;我们都需…

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项样题卷②

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第2套&#xff09; 目录 2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第2套&#xff09; 模块…

Topics(动态路由)

Topic类型的Exchange与Direct相比&#xff0c;都是可以根据RoutingKey把消息路由到不同的队列中。只不过Topic类型Exchange可以让队列在绑定路由时可以使用通配符。 *&#xff1a;匹配不多不少刚好一个单词。 #&#xff1a;匹配一个或多个词。 举例&#xff1a; audit.#可以匹配…

2023吉利汽车大模型算法工程师面试经验

来源&#xff1a;投稿 作者&#xff1a;LSC 编辑&#xff1a;学姐 问了很多问题&#xff0c;包括实习的项目经验、各种计算机、人工智能的基础&#xff0c;时长1h30min 1.coding 给你一个整数数组 prices 和一个整数 k &#xff0c;其中 prices[i] 是某支给定的股票在第 i 天的…

解密C++中的forward<int>(a)和forward<int >(a):你真的了解它们之间的区别吗?

一文看尽C中的forward完美转发 一、前言二、深入理解forward和完美转发三、对forward<int>(a)的解析四、对forward<int &&>(a)的解析五、forward<int>(a)和forward<int &&>(a)的区别总结 一、前言 完美转发在C中具有重要性&#xff0…

Java开发一个接口提供给第三方调用

1. 环境 基于SpringBoot编写一个接口&#xff0c;提供给第三方调用。类似于我们使用阿里的语音识别功能&#xff0c;我们可以调用阿里封装好的api&#xff0c;也就是通过发送HTTP请求的方式来做语音识别。本篇文章主要记录在SpringBoot中我们是如何开发接口并让别人可以安全调…

一文掌握Java注解之@SpringBootApplication知识文集(1)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

Spring Cloud Gateway + Nacos 实现动态路由

1、maven 依赖 主要依赖 <!-- 网关 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>案件差不多完整主要依赖 <!--Spring boot 依赖(微服务基…

51单片机的串口驱动的代码逻辑

什么是串口通信&#xff1f; 51单片机中&#xff0c;串口通信指的是单片机和其他的机器传递数据的时候是通过一个bit一个bit的形式传输的&#xff0c;值得一提的话&#xff0c;串口通信是硬件串口。什么意思呢&#xff1f;也就是在传递比特的时候&#xff0c;不用软件来模拟比…

fanout(扇出模型)

在广播的流程下&#xff0c;消息发送的流程如下&#xff1a; 可以有多个消费者。 每个消费者有自己的queue(队列)。 每个队列都要绑定到Exchange(交换机)。 生产者发送的消息&#xff0c;只能发送到交换机&#xff0c;交换机来决定要发给哪个队列&#xff0c;生产者也无法决…

oracle物化视图

物化视图定义 视图是一个虚拟表&#xff08;也可以认为是一条语句&#xff09;&#xff0c;基于它创建时指定的查询语句返回的结果集&#xff0c;每次访问它都会导致这个查询语句被执行一次&#xff0c;为了避免每次访问都执行这个查询&#xff0c;可以将这个查询结果集存储到…

【算法题】矩阵顺时针旋转90° (js)

力扣链接&#xff1a;https://leetcode.cn/problems/rotate-matrix-lcci/description/ 本人题解&#xff1a; /*** param {number[][]} matrix* return {void} Do not return anything, modify matrix in-place instead.*/ var rotate function (matrix) {const x matrix.le…

Spring高手之路-Spring事务的传播机制(行为、特性)

目录 含义 七种事务传播机制 1.REQUIRED&#xff08;默认&#xff09; 2.REQUIRES_NEW 3.SUPPORTS 4.NOT_SUPPORTED 5.MANDATORY 6.NEVER 7.NESTED 含义 Spring事务的传播机制是指在多个事务方法相互调用时&#xff0c;如何处理这些事务的传播行为。对应七种事务传播行为…

【Git】git基础

Git 命令 git config --globle user.name ""git config --globle user.email ""git config -lgit config --globle --unset []git add []git commit -m ""]git log//当行且美观 git log --prettyoneline//以图形化和简短的方式 git log --grap…

Halcon闭运算closing

Halcon闭运算 文章目录 Halcon闭运算 闭运算的计算步骤&#xff0c;为先膨胀&#xff0c;后腐蚀。这两步操作能将看起来很接近的元素&#xff0c;如区域内部的空洞或外部孤立的点连接成一体&#xff0c;区域的外观和面积也不会有明显的改变。通俗地说&#xff0c;就是类似于“填…

Linux 权限掌控术:深入探索和用户管理

文章目录 前言1.外壳程序是什么&#xff1f;外壳程为什么存在&#xff1f;工作原理外壳程序怎么个事&#xff1f; 2. Linux权限的概念2.1 什么是权限2.2权限的本质2.3 Linux中的用户 3. 普通用户变成rootlinux中有三种人 4.Linux中文件的权限4.1文件的属性权限4.2 掌握修改权限…

TCP发送和接受数据

发送数据 public class sendmessage {public static void main (String[] args) throws IOException {//创建socket对象//在创建的同时会连接服务器,若连接不上,代码会报错Socket socketnew Socket("127.0.0.1",10086);//从连接通道中获取输出流OutputStream ossock…

2024.1.1每日一题

LeetCode每日一题 新的一年开始了&#xff0c;祝大家新年快乐&#xff0c;坚持做每日一题。 1599.经营摩天轮的最大利润 1599. 经营摩天轮的最大利润 - 力扣&#xff08;LeetCode&#xff09; 题目描述 你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0…

DevOps系列之 JNI实现Java调用C的实现案例

JNI&#xff08;Java Native Interface&#xff09;允许Java代码与其他语言编写的代码进行交互。以下是一个简单的JNI示例&#xff0c;演示如何使用JNI在Java中调用C/C函数。 最终的目录结构如下&#xff1a; JNI&#xff08;Java Native Interface&#xff09;允许Java代码与其…

服务器硬件及RAID配置实战

目录 1、RAID的概念 2、RAID的实现方式 3、标准的RAID 3.1 RAID 0 3.2 RAID 1 3.3 RAID 5 3.4 RAID 10 4、建立硬件 RAID的过程步骤 1、进入RAID 1.1 重启服务器 1.2 进入RAID界面 1.3 在RAID界面切换目录 2、创建RAID 2.1 移动到RAID卡 2.2 按F2&#xff0c;选择…