怎么在Flutter中获取设备标识符

怎么在Flutter中获取设备标识符

这篇文章主要介绍了怎么在Flutter中获取设备标识符的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在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.通过运行安装插件:

flutterpubaddplatform_device_id

然后执行这个命令:

flutterpubget

不需要特殊权限或配置。

2.完整代码:

//main.dartimport'package:flutter/material.dart';import'package:platform_device_id/platform_device_id.dart';voidmain(){runApp(constMyApp());}classMyAppextendsStatelessWidget{constMyApp({Key?key}):super(key:key);@overrideWidgetbuild(BuildContextcontext){returnMaterialApp(//RemovethedebugbannerdebugShowCheckedModeBanner:false,title:'大前端之旅',theme:ThemeData(primarySwatch:Colors.indigo,),home:constHomePage());}}classHomePageextendsStatefulWidget{constHomePage({Key?key}):super(key:key);@override_HomePageStatecreateState()=>_HomePageState();}class_HomePageStateextendsState<HomePage>{String?_id;//Thisfunctionwillbecalledwhenthefloatingbuttonispressedvoid_getInfo()async{//GetdeviceidString?result=awaitPlatformDeviceId.getDeviceId;//UpdatetheUIsetState((){_id=result;});}@overrideWidgetbuild(BuildContextcontext){returnScaffold(appBar:AppBar(title:constText('大前端之旅')),body:Padding(padding:constEdgeInsets.all(20),child:Center(child:Text(_id??'Pressthebutton',style:TextStyle(fontSize:20,color:Colors.red.shade900),)),),floatingActionButton:FloatingActionButton(onPressed:_getInfo,child:constIcon(Icons.play_arrow)),);}}

使用 device_info_plus

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

应用预览

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

代码

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

flutterpubadddevice_info_plus

然后运行:

flutterpubget

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

//main.dartimport'package:flutter/material.dart';import'package:device_info_plus/device_info_plus.dart';voidmain(){runApp(constMyApp());}classMyAppextendsStatelessWidget{constMyApp({Key?key}):super(key:key);@overrideWidgetbuild(BuildContextcontext){returnMaterialApp(//RemovethedebugbannerdebugShowCheckedModeBanner:false,title:'大前端之旅',theme:ThemeData(primarySwatch:Colors.amber,),home:constHomePage());}}classHomePageextendsStatefulWidget{constHomePage({Key?key}):super(key:key);@override_HomePageStatecreateState()=>_HomePageState();}class_HomePageStateextendsState<HomePage>{Map?_info;//Thisfunctionistriggeredwhenthefloatingbuttongetspressedvoid_getInfo()async{//InstantiatingthepluginfinaldeviceInfoPlugin=DeviceInfoPlugin();finalresult=awaitdeviceInfoPlugin.deviceInfo;setState((){_info=result.toMap();});}@overrideWidgetbuild(BuildContextcontext){returnScaffold(appBar:AppBar(title:constText('大前端之旅')),body:_info!=null?Padding(padding:constEdgeInsets.all(20),child:ListView(children:_info!.entries.map((e)=>Wrap(children:[Text("${e.key}:",style:constTextStyle(fontSize:18,color:Colors.red),),constSizedBox(width:15,),Text(e.value.toString(),style:constTextStyle(fontSize:18,),)],)).toList(),),):constCenter(child:Text('Pressthebutton'),),floatingActionButton:FloatingActionButton(onPressed:_getInfo,child:constIcon(Icons.info),),);}}

关于“怎么在Flutter中获取设备标识符”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么在Flutter中获取设备标识符”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。

发布于 2022-04-11 21:20:33
收藏
分享
海报
0 条评论
37
上一篇:electron开发构建工具怎么用 下一篇:Java中线程状态+线程安全问题+synchronized的用法是什么
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码