如何在 Android 和 IOS 中获取设备 ID

Posted

技术标签:

【中文标题】如何在 Android 和 IOS 中获取设备 ID【英文标题】:How to get Device Id in flutter of both Android and IOS 【发布时间】:2019-01-25 12:24:56 【问题描述】:

有没有办法为 androidios 获取 device id,因为当我使用 device_info 插件为 android 执行此操作时,它会说:

MissingPluginException(没有找到方法的实现 getAndroidDeviceInfo on channel plugins.flutter.io/device_info)

【问题讨论】:

你在测试哪个设备/模拟器? 我正在 Nexus 5 和 Iphone X 上进行测试 它们都不适合你? 你试过这个插件了吗? pub.dartlang.org/packages/device_id github.com/flutter/plugins/tree/master/packages/device_info 的示例工作正常,只要确保您没有在 Android 上调用 iosInfo 【参考方案1】:

事实证明,您实际上并不需要一个包来获取设备信息的所有功能都在一个名为 flutter.io 的颤振类中。

您可以简单地使用这行代码作为导入来访问它:

import 'dart:io' show Platform;

然后执行平台特定的代码,你可以使用:

     if (Platform.iOS)
 //your code 
else if (Platform.Android)
//your other code

【讨论】:

【参考方案2】:

device_id 插件现在也可以在 iPhone 上正常使用。

他们修复的错误,也更新到了 swift 4.1.x

要检索 id,只需导入 (import 'package:device_id/device_id.dart';) 并调用

String device_id = await DeviceId.getID;

您可以查看更改日志here

【讨论】:

【参考方案3】:

让我通过 device_info 插件来解释一下。

第一步添加依赖

dependencies:
  flutter:
    sdk: flutter
  device_info: ^0.4.0+1

第 2 步在开始时导入您的文件

  import 'package:device_info/device_info.dart';

第 3 步创建一个异步函数以返回设备 ID。

deviceInfo() async
  DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
  AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
  return androidInfo.id;

第 4 步创建一个 FutureBuilder() 以显示设备 ID 或执行任何操作。

FutureBuilder(
  future: deviceInfo(),
  builder: (BuildContext context, AsyncSnapshot snap)
    // do nothing...
    if (snap.hasData)
      //your logic goes here.
    else 
      return new CircularProgressIndicator();
    
  ,
)

希望对你有帮助。

【讨论】:

已知有时为空,它被记录为“可以在恢复出厂设置时更改”。使用风险自负,并且可以在有根手机上轻松更改。【参考方案4】:

    在 pubspec.yaml 中添加版本,如下所示,然后单击获取依赖项。 device_id: ^0.2.0

    添加导入语句import 'package:device_id/device_id.dart';

    并致电String device_id = await DeviceId.getID;

【讨论】:

以上是关于如何在 Android 和 IOS 中获取设备 ID的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS/Android 上获取当前设备语言?

如何以编程方式获取完整的 ios 设备详细信息

如何在本机反应中获取设备令牌

如何从命令行获取设备的 iOS 版本?

Javascript判断客户端是Android还是IOS,判断浏览器类型

离子+电容|在 iOS 设备中获取设备 UUID