我们在进行各个系统的原生开发时,都有对应的方法获取设备信息,那么在使用Flutter时如何获取设备相关的相关信息呢?

我们本文就来介绍一个Flutter插件:
Flutter Device Info

下面我们来逐步介绍如何获取设备信息。

首先在工程的pubspec.yaml中添加依赖

dependencies:device_info: ^0.4.0+1
复制代码

下载安装这个依赖包

在工程主目录下执行:

flutter packages get
复制代码

在代码中使用

首先我们引入device_info.dart:

import 'package:device_info/device_info.dart';复制代码

iOS安装cocoapods

如果需要运行在iOS上运行,如果电脑上没有安装cocoapods,此时会报出异常:

Warning: CocoaPods not installed. Skipping pod install.CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.For more info, see https://flutter.io/platform-plugins
To install:brew install cocoapodspod setup
复制代码

此时我们则需要安装并配置cocoapods(确保机器上已经安装好了brew):

brew install cocoapods
pod setup
复制代码

获取Android与iOS设备信息

void getDeviceInfo() async {DeviceInfoPlugin deviceInfo = new DeviceInfoPlugin();if(Platform.isAndroid) {AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;    print(_readAndroidBuildData(androidInfo).toString());} else if (Platform.isIOS) {IosDeviceInfo iosInfo = await deviceInfo.iosInfo;print(_readIosDeviceInfo(iosInfo).toString());}
}
复制代码

构造设备信息的Map
为了更方便的打印和使用信息,我们将AndroidDeviceInfo和IosDeviceInfo构造成Map:

Android:

Map<String, dynamic> _readAndroidBuildData(AndroidDeviceInfo build) {return <String, dynamic>{'version.securityPatch': build.version.securityPatch,'version.sdkInt': build.version.sdkInt,'version.release': build.version.release,'version.previewSdkInt': build.version.previewSdkInt,'version.incremental': build.version.incremental,'version.codename': build.version.codename,'version.baseOS': build.version.baseOS,'board': build.board,'bootloader': build.bootloader,'brand': build.brand,'device': build.device,'display': build.display,'fingerprint': build.fingerprint,'hardware': build.hardware,'host': build.host,'id': build.id,'manufacturer': build.manufacturer,'model': build.model,'product': build.product,'supported32BitAbis': build.supported32BitAbis,'supported64BitAbis': build.supported64BitAbis,'supportedAbis': build.supportedAbis,'tags': build.tags,'type': build.type,'isPhysicalDevice': build.isPhysicalDevice,'androidId': build.androidId};
}复制代码

iOS:

Map<String, dynamic> _readIosDeviceInfo(IosDeviceInfo data) {return <String, dynamic>{'name': data.name,'systemName': data.systemName,'systemVersion': data.systemVersion,'model': data.model,'localizedModel': data.localizedModel,'identifierForVendor': data.identifierForVendor,'isPhysicalDevice': data.isPhysicalDevice,'utsname.sysname:': data.utsname.sysname,'utsname.nodename:': data.utsname.nodename,'utsname.release:': data.utsname.release,'utsname.version:': data.utsname.version,'utsname.machine:': data.utsname.machine,};
}
复制代码

设备信息示例(基于模拟器):

Android:

{version.securityPatch: 2018-09-05, version.sdkInt: 28, version.release: 9, version.previewSdkInt: 0, version.incremental: 5124027, version.codename: REL, version.baseOS: , board: goldfish_x86_64, bootloader: unknown, brand: google, device: generic_x86_64, display: PSR1.180720.075, fingerprint: google/sdk_gphone_x86_64/generic_x86_64:9/PSR1.180720.075/5124027:user/release-keys, hardware: ranchu, host: abfarm730, id: PSR1.180720.075, manufacturer: Google, model: Android SDK built for x86_64, product: sdk_gphone_x86_64, supported32BitAbis: [x86], supported64BitAbis: [x86_64], supportedAbis: [x86_64, x86], tags: release-keys, type: user, isPhysicalDevice: false,androidId: 998921b52c7a7b79
}
复制代码

iOS:

{name: iPhone XR, systemName: iOS, systemVersion: 12.1, model: iPhone, localizedModel: iPhone, identifierForVendor: 367F5936-39E1-4DFA-8DD2-9542424256BE, isPhysicalDevice: false, utsname.sysname:: Darwin, utsname.nodename:: bogon, utsname.release:: 18.2.0, utsname.version:: Darwin Kernel Version 18.2.0: Thu Dec 20 20:46:53 PST 2018; root:xnu-4903.241.1~1/RELEASE_X86_64, utsname.machine:: x86_64
}
复制代码

获取屏幕宽高密度等信息
关于如何获取屏幕宽度高度和分辨率等信息,
有需要的同学可以私信或者留言,我会发一篇

Flutter获取Android/iOS设备信息相关推荐

  1. 获取Android 手机设备信息:包括机型、操作系统版本号、手机分辨率、运营商、当前联网方式、IMEI、MEID、MAC地址

    获取Android 手机设备信息:操作系统版本号.手机分辨率.运营商.当前联网方式.IMEI.MEID.MAC地址 包括双卡机型上的两个IMEI信息 /*** Created by Administr ...

  2. Flutter 适配android/iOS设备的单位换算

    参考 : flutter 屏幕适配方案自定义单位 前几天获取了Flutter 屏幕的宽高, 基于这个, 我们再搞一下适配的问题, 依旧是基于主流设计的机型 iPhone6s 的尺寸 pt:375 / ...

  3. Android 手机设备信息获取使用详解

    Android 手机是我们常用的工具之一,买手机之前,手机厂商会提供一些手机参数给我们,那么问题来了,我们该如何获取手机上的参数信息呢? 通过本文你讲了解到获取手机常用信息的基本方法. 获取手机基本信 ...

  4. Mac如何获取iOS设备信息?

    Mac如何获取iOS设备信息? 1.通过shell命令 brew install libimobiledevice idevice_id -l 2.通过Xcode 打开Xcode>连接iOS设备 ...

  5. android蓝牙通信_Flutter通过BasicMessageChannel实现Flutter 与Android iOS 的双向通信

    题记: --不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼博过,尽力过,一切问心无愧. 通过 Flutter 来进行移动应用开发,打包 Android .iOS 双平台应用程序,在调用如相机 ...

  6. Flutter通过BasicMessageChannel实现Flutter 与Android iOS 的双向通信

    更多文章请查看 flutter从入门 到精通 本文章中的完整代码在这里 题记: -- 不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼博过,尽力过,一切问心无愧. Flutter 与 Andr ...

  7. Flutter通过MethodChannel实现Flutter 与Android iOS 的双向通信

    更多文章请查看 flutter从入门 到精通 本文章中的完整代码在这里 题记:不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼博过,尽力过,一切问心无愧. Flutter 与 Android ...

  8. protal服务器获取不到设备信息,Poral网页认证提示portal服务器获取不到设备信息或者设备没有回应req_info报文的解决办法...

    portal网页认证时提示获取不到设备信息或者没有回应req_info报文 文档名称 文档密级 问题描述: Portal网页认证场景,用户在浏览器输入账号名.密码点击登录时,系统提示portal se ...

  9. windows获取iOS设备信息

    依赖环境: 1.python3.6以上版本, 2.配置python的系统环境变量. 3.python已经安装pip. 安装tidevice: 1.打开cmd,输入命令pip3 install -U & ...

最新文章

  1. 如何理解物体的6D位姿估计任务?
  2. ubuntu QT Creater 安装
  3. 《挖掘管理价值:企业软件项目管理实战》一2.4 软件设计过程
  4. mstsc.exe的小插件,隐藏客户端计算机名
  5. Leetcode题解(十九)
  6. Oracle 11G R2(11.0.2.4.0) RAC打PSU(11.2.0.4.11.2.0.4.171017)
  7. 计算机文件夹中看不到桌面图标,电脑文件夹内不显示图标
  8. word文档正文页码从1开始
  9. 【NAT网络地址转换(私网公网地址、静态NAT、动态NAT、NAPT、Easy IP、NAT Server)】-20211215、20211216
  10. 2022年第十三届蓝桥杯大赛软件类国赛 C/C++ 大学B组
  11. 计算机英语常见计算符号,常见计算机英语词汇解释
  12. css选择器,什么是css选择器
  13. html 网页地图集制作ECHARTS,在页面使用echarts的地图(解决地图不完整)
  14. Python实现PDF转文字.
  15. 观小林coding图解网络总结
  16. 费马小定理 几道例题
  17. 最直白的求婚:老子就想和你上床能咋地?
  18. abs() 数字取绝对值
  19. 导出excel时,数字过长怎么解决
  20. SQL存储过程【笔记】一个较简单的库存月结

热门文章

  1. 小白学习Basemap气象画地图的第五天(读取micaps站点数据,省级能见度分布)
  2. 计算机网络技术期末复习考点
  3. ORACLE SQL 查询练手
  4. 判定平方数(Python)
  5. 射极跟随器负载过重引起的失真问题(摘抄)
  6. [NepCTF]WEB
  7. 【笔记】PS制作身份证复印件
  8. PCB设计中常用class与subclass
  9. 英语,程序员永远的痛???//“不要倒在起跑线上”课程介绍
  10. 卷积神经网络和图像分类识别