使用唯一标识符来识别设备 flutter / android

问题描述 投票:0回答:3

我的用例是我想唯一地标识我的用户设备,因为我想为他们提供订阅,并且不想使用任何类型的登录,而是使用一个唯一标识符,我可以将其保存在我的后端,这样即使用户卸载或重新安装我的设备应用程序,仍然能够访问内容。我也曾尝试使用 androidId (SSAID),但它可以在应用程序登录更改或设备重置时更改。 我使用 firebase 作为后端并在前端使用 flutter。

android firebase flutter dart device
3个回答
2
投票

您可以使用下面的库来查找设备的唯一 ID:

设备ID库

这也是一个重复的问题,所以请下次在提问之前先搜索一下答案。 :)

最后,我不完全确定您的项目范围,但如果您在 Firebase 上保存敏感或不敏感的用户数据,使用设备 UID 登录人员可能会出现问题,例如在用户丢失手机的情况下,他们会无法恢复丢失的数据。就像我说的,我不确定你的项目的范围,但只是需要考虑一下。

如果您需要任何进一步的帮助,请告诉我!


0
投票

这是获取设备唯一标识符的方法:

对于 Android 使用 unique_identifier 库获取 IMEI:

// Add this dependency to pubspec.yaml
dev_dependencies:
  unique_identifier: ^0.0.3

// code snippet to get the IMEI 
String  identifier = await UniqueIdentifier.serial;

对于 IOS,Apple 不再允许您检索 IMEI,但您可以生成类似于 IMEI 的 UDID:

import 'package:device_info/device_info.dart';

final DeviceInfoPlugin deviceInfoPlugin = new DeviceInfoPlugin();
   var data = await deviceInfoPlugin.iosInfo;
   identifier = data.identifierForVendor;

0
投票

2023年的答案

对于 Android 应用程序(尤其是已经使用 Firebase 的应用程序),Android 认为 Firebase 安装 ID (FID) 是获取设备唯一标识符的最佳实践。大多数第三方应用程序不属于可以获得硬件标识符的应用程序类别。

有一个例外:

如果需要运营商相关功能,则可以使用硬件标识符。

换句话说,如果您的应用程序使用设备的短信功能,是默认拨号器,或者是系统应用程序,您也许能够获取像 IMEI 这样的硬件标识符。但是,这需要用户许可才能工作,并且与简单地在权限消息上点击“允许”(例如应用程序想要发送通知时)相比,这是一个更具侵入性的过程。 AFAIK,他们将不得不用你的替换他们的拨号器或短信应用程序。如果您的应用程序无法以与其他拨号器或短信应用程序竞争的方式提供短信功能,您可能需要考虑使用替代的用户识别方法,例如应用程序内购买Google帐户链接.

© www.soinside.com 2019 - 2024. All rights reserved.