返回顶部
首页 > 资讯 > 移动开发 >详解如何在Flutter中获取设备标识符
  • 298
分享到

详解如何在Flutter中获取设备标识符

2024-04-02 19:04:59 298人浏览 八月长安
摘要

目录使用 platfORM_device_id应用预览代码使用 device_info_plus应用预览代码结论本文将引导您完成 2 个示例,演示如何在 Flutter 中获取设备标

本文将引导您完成 2 个示例,演示如何在 Flutter 中获取设备标识符

使用 platform_device_id

如果您只需要运行应用程序的设备的 id,最简单快捷的解决方案是使用platform_device_id包。它适用于 Android (AndroidId)、iOS (IdentifierForVendor)、windows (BioS UUID)、MacOS (IOPlatformUUID) 和 linux (BIOS UUID)。在 Flutter WEB 应用程序中,您将获得 UserAgent(此信息不是唯一的)。

应用预览

我们要构建的示例应用程序包含一个浮动按钮。按下此按钮时,设备的 ID 将显示在屏幕上。以下是它在 iOS 和 Android 上的工作方式:

代码

1.通过运行安装插件

flutter pub add platform_device_id

然后执行这个命令:

flutter pub get

不需要特殊权限或配置。

2.完整代码:

// main.dart
import 'package:flutter/material.dart';
import 'package:platform_device_id/platform_device_id.dart';
​
void main() {
  runApp(const MyApp());
}
​
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        // Remove the debug banner
        debugShowCheckedModeBanner: false,
        title: '大前端之旅',
        theme: ThemeData(
          primarySwatch: Colors.indiGo,
        ),
        home: const HomePage());
  }
}
​
class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);
​
  @override
  _HomePageState createState() => _HomePageState();
}
​
class _HomePageState extends State<HomePage> {
  String? _id;
​
  // This function will be called when the floating button is pressed
  void _getInfo() async {
    // Get device id
    String? result = await PlatformDeviceId.getDeviceId;
​
    // Update the UI
    setState(() {
      _id = result;
    });
  }
​
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('大前端之旅')),
      body: Padding(
        padding: const EdgeInsets.all(20),
        child: Center(
            child: Text(
          _id ?? 'Press the button',
          style: TextStyle(fontSize: 20, color: Colors.red.shade900),
        )),
      ),
      floatingActionButton: FloatingActionButton(
          onPressed: _getInfo, child: const Icon(Icons.play_arrow)),
    );
  }
}

使用 device_info_plus

包device_info_plus为您提供作为 platform_device_id 的设备 ID,并提供有关设备的其他详细信息(品牌、型号等)以及 Flutter 应用运行的 Android 或 iOS 版本。

应用预览

我们将制作的应用程序与上一个示例中的应用程序非常相似。但是,这一次我们将在屏幕上显示大量文本。返回的结果因平台而异。如您所见,Android 上返回的信息量远远超过 iOS。

代码

1. 通过执行以下操作安装插件:

flutter pub add device_info_plus

然后运行:

flutter pub get

2. main.dart中的完整源代码:

// main.dart
import 'package:flutter/material.dart';
import 'package:device_info_plus/device_info_plus.dart';
​
void main() {
  runApp(const MyApp());
}
​
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        // Remove the debug banner
        debugShowCheckedModeBanner: false,
        title: '大前端之旅',
        theme: ThemeData(
          primarySwatch: Colors.amber,
        ),
        home: const HomePage());
  }
}
​
class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);
​
  @override
  _HomePageState createState() => _HomePageState();
}
​
class _HomePageState extends State<HomePage> {
  Map? _info;
​
  // This function is triggered when the floating button gets pressed
  void _getInfo() async {
    // Instantiating the plugin
    final deviceInfoPlugin = DeviceInfoPlugin();
​
    final result = await deviceInfoPlugin.deviceInfo;
    setState(() {
      _info = result.toMap();
    });
  }
​
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('大前端之旅')),
      body: _info != null
          ? Padding(
              padding: const EdgeInsets.all(20),
              child: ListView(
                children: _info!.entries
                    .map((e) => Wrap(
                          children: [
                            Text(
                              "${e.key} :",
                              style: const TextStyle(
                                  fontSize: 18, color: Colors.red),
                            ),
                            const SizedBox(
                              width: 15,
                            ),
                            Text(
                              e.value.toString(),
                              style: const TextStyle(
                                fontSize: 18,
                              ),
                            )
                          ],
                        ))
                    .toList(),
              ),
            )
          : const Center(
              child: Text('Press the button'),
            ),
      floatingActionButton: FloatingActionButton(
        onPressed: _getInfo,
        child: const Icon(Icons.info),
      ),
    );
  }
}

结论

我们已经介绍了几种读取设备信息的技术。选择一个适合您在项目中实施的需求。

以上就是详解如何在Flutter中获取设备标识符的详细内容,更多关于Flutter获取设备标识符的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解如何在Flutter中获取设备标识符

本文链接: https://lsjlt.com/news/145538.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解如何在Flutter中获取设备标识符
    目录使用 platform_device_id应用预览代码使用 device_info_plus应用预览代码结论本文将引导您完成 2 个示例,演示如何在 Flutter 中获取设备标...
    99+
    2024-04-02
  • 怎么在Flutter中获取设备标识符
    这篇文章主要介绍了怎么在Flutter中获取设备标识符的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在Flutter中获取设备标识符文章都会有所收获,下面我们一起来看看吧。使用 platform_devic...
    99+
    2023-06-29
  • 【Flutter】如何在 Flutter 中获取设备 ID
    文章目录 一、 前言二、 设备 ID 的重要性1. 什么是设备 ID2. 设备 ID 的作用 三、 在 Flutter 中获取设备 ID1. 需要的工具和库2. 简单代码示例3. 完整可以运行的代码 四、 注意事项1. ...
    99+
    2023-08-17
    flutter android ios 原力计划
  • Android 如何获取设备唯一标识
    目录一. 先简单总结一下比较常见的几个解决方案的弊端:1. IMEI2. Android ID3. MAC地址二. uuid + 本地文件,实现一个通用解决方案1. 思路2. 解决手...
    99+
    2024-04-02
  • android如何获取设备唯一标识
    这篇文章主要介绍了android如何获取设备唯一标识,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下: public static Str...
    99+
    2023-05-30
    android
  • 【Flutter】在 Flutter 中如何获取本地的 json 文件并解码
    文章目录 一、 前言二、 如何在 Flutter 中获取本地 JSON 文件1. 创建本地 JSON 文件2. 在 Flutter 中读取本地 JSON 文件 三、 如何在 Flutte...
    99+
    2023-09-07
    flutter json android ios 原力计划
  • flutter中如何获取app信息及设备信息,看这就够了
    flutter中如何获取app信息及设备信息 app开发中不可避免要动态获取当前版本号、包名以及设备信息等,安卓原生可以使用如下方法 1 获取app VersionName: public static String getAppV...
    99+
    2023-08-18
    编辑器 android flutter
  • 如何在vbs中获取字符串
    这篇文章给大家介绍如何在vbs中获取字符串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。实例代码x="编程网是什么样的网站" y = right(x,&nbs...
    99+
    2023-06-08
  • 详解在Flutter中如何使用dio
    目录初始化 Dio定义 GET 请求定义 POST 请求定义 PUT 请求定义 DELETE 请求选择和定义您的请求头上传文件拦截器结论初始化 Dio 您可以创建一个单独的类...
    99+
    2024-04-02
  • 在 Golang 中解码时如何获取 XML 标签的字符数据和属性值
    欢迎各位小伙伴来到编程网,相聚于此都是缘哈哈哈!今天我给大家带来《在 Golang 中解码时如何获取 XML 标签的字符数据和属性值》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感...
    99+
    2024-04-05
  • python 如何获取元素在array中的下标
    用numpy创建一个array列表 使用numpy的where方法寻找该数组下的某个值 返回数据是对应的下标 该下标被包裹在一个tuple和一个list中。我们可以用a[0][0]轻松取出来: 补充:...
    99+
    2022-06-02
    python 获取元素下标 array的下标
  • C++中null找不到标识符如何解决
    在C++中,`null`不是一个标识符。相反,C++使用`nullptr`来表示空指针。要解决“null找不到标识符”的问题,您可以...
    99+
    2023-09-26
    C++
  • 详解Python Selenium如何获取鼠标指向的元素
    有一个同学在Gne的群里面咨询如何通过Selenium获取当前鼠标指向的元素,在我讲了方法以后,他过了两天又来问: 那么,我今天就来写一篇文章,具体说说应该怎么操作。 这个方法的核...
    99+
    2024-04-02
  • go test -run:如何在测试标识符中指定包
    php小编新一为你详细介绍如何在测试标识符中指定包。在Go语言中,我们可以使用"go test -run"命令来运行指定的测试用例。默认情况下,该命令会运行当前目录下所有的测试用例。但...
    99+
    2024-02-09
    go语言
  • 如何在极坐标上获取 str.contains() 中的字符串匹配起始位置?
    问题内容 我知道我可以使用 str.contains() 来检查列中是否包含字符串,例如: import polars as pl df = pl.dataframe({"a": ["...
    99+
    2024-02-10
  • 小程序中如何获取蓝牙设备所有service
    本文将为大家详细介绍“小程序中如何获取蓝牙设备所有service”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“小程序中如何获取蓝牙设备所有service”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,...
    99+
    2023-06-26
  • ubuntu中无法识别android设备如何解决
    ubuntu中无法识别android设备如何解决,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。获取usb设备信息通过usb连接上我们的手机,然后打开终端,输入lsusb,出...
    99+
    2023-06-13
  • 如何在 PHP 中从一个 URL 字符串中获取参数
    本文将介绍在 PHP 中从 URL 字符串中获取参数的方法。 使用 parse_url() 函数 使用 parse_str() 函数。 使用 $_GET 变量 在 PHP...
    99+
    2024-02-27
  • python利用标准库如何获取本地IP示例详解
    标准库 Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML...
    99+
    2022-06-04
    示例 详解 标准
  • java如何在字符串中获取不同的字符及其数量
    小编给大家分享一下java如何在字符串中获取不同的字符及其数量,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如何在字符串中获取不同的字符及其数量这道题可以拆解为两个步骤,第一步,找出不同的字符,第二步,统计出它们的数量。好...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作