当前位置: 首页 > 知识库问答 >
问题:

如何在颤振中获得唯一的设备id?

汪晟睿
2023-03-14

在Android中,我们有,<代码>设置。保护ANDROID\u ID。我不知道iOS的等效版本。在flutter中是否有一个flutter插件或一种方法可以为Android和IOS获取唯一的设备id?

共有3个答案

华烈
2023-03-14

我刚刚发布了一个插件来为您的问题提供解决方案。它使用设置。保护ANDROID的ANDROID\u ID,并依赖供应商的identifierForVendor和iOS的钥匙链,使行为与ANDROID相当。以下是链接。

何峰
2023-03-14

有一个叫device_info的插件。你可以在这里得到它。

检查此处的官方示例

 static Future<List<String>> getDeviceDetails() async {
    String deviceName;
    String deviceVersion;
    String identifier;
    final DeviceInfoPlugin deviceInfoPlugin = new DeviceInfoPlugin();
    try {
      if (Platform.isAndroid) {
        var build = await deviceInfoPlugin.androidInfo;
        deviceName = build.model;
        deviceVersion = build.version.toString();
        identifier = build.androidId;  //UUID for Android
      } else if (Platform.isIOS) {
        var data = await deviceInfoPlugin.iosInfo;
        deviceName = data.name;
        deviceVersion = data.systemVersion;
        identifier = data.identifierForVendor;  //UUID for iOS
      }
    } on PlatformException {
      print('Failed to get platform version');
    }

//if (!mounted) return;
return [deviceName, deviceVersion, identifier];
}

您可以将此UUID存储在钥匙链中。这样,您可以为设备设置唯一的ID。

黄高爽
2023-03-14

使用由Flatter社区开发的device\u info\u plus插件。这就是如何在两个平台上获取ID的方法。

在您的pubspec中。yaml文件添加以下内容:

dependencies:
  device_info_plus: ^3.2.3

创建方法:

Future<String?> _getId() async {
  var deviceInfo = DeviceInfoPlugin();
  if (Platform.isIOS) { // import 'dart:io'
    var iosDeviceInfo = await deviceInfo.iosInfo;
    return iosDeviceInfo.identifierForVendor; // unique ID on iOS
  } else if(Platform.isAndroid) {
    var androidDeviceInfo = await deviceInfo.androidInfo;
    return androidDeviceInfo.androidId; // unique ID on Android
  }
}

用法:

String? deviceId = await _getId();
 类似资料:
  • 问题内容: 如何在Swift中获取设备的唯一ID? 我需要一个ID才能在数据库中使用,并作为我的社交应用程序中Web服务的API密钥。可以跟踪该设备日常使用并将其查询限制在数据库中的东西。 谢谢! 问题答案: 您可以使用此(快速3): 对于旧版本: 或者如果您想要一个字符串: 用户卸载应用后,不再有一种唯一标识设备的方法。该文档说: 当该应用程序(或同一供应商的另一个应用程序)安装在iOS设备上时

  • 我正在为android应用程序开发一个Flutter模块,该模块使用Geolocatore获取设备的当前位置。但当flutter模块初始化时,我得到了以下错误: location_permissions:无法检测当前activity 我已经将这两行添加到AndroidManifest文件中(用于Android应用程序和flutter模块2) 我使用这个函数来获取当前位置

  • 我想在我的应用程序中获得唯一的设备id。但据谷歌文件称,Android10增加了对不可重置标识符的限制。 我不想要随机的id。我想得到唯一的id,这样我就可以识别我的应用编程接口被击中的设备。通过它,我可以管理我的会话。除了Secure.android之外还有另一个唯一的id_id这对Android来说是唯一的吗?或者有什么方法可以访问Android10中的Secure.android_id。

  • 现在与android 10更新的权限和安全性,我们不能访问用户的设备ID和IMEI号码,但我想要一些设备的唯一ID,以便我们可以跟踪用户。 要求是我们想要/限制一部手机的一次登录

  • 我正在尝试在android Studio中安装flutter sdk……每次我在android Studio中安装flutter sdk时,它都会再次向我显示相同的错误“Flutter sdk未在指定位置找到”这就是我每次得到的