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

如何在android 10中获得唯一的设备id?

董飞航
2023-03-14

我想在我的应用程序中获得唯一的设备id。但据谷歌文件称,Android10增加了对不可重置标识符的限制。

我不想要随机的id。我想得到唯一的id,这样我就可以识别我的应用编程接口被击中的设备。通过它,我可以管理我的会话。除了Secure.android之外还有另一个唯一的id_id这对Android来说是唯一的吗?或者有什么方法可以访问Android10中的Secure.android_id。

共有3个答案

吕成业
2023-03-14

根据我的想法,你应该使用下面的代码来获得唯一的身份证-

String uniqueID = UUID.randomUUID().toString();

以上代码不需要用户的任何运行时权限来访问设备id,并始终生成唯一id。您可以将此唯一id与用户数据映射,或根据需要进行操作。

谢谢

国高杰
2023-03-14

你可以通过使用这个来获得设备的Android唯一Id,为此你需要获得Android。准许读_PHONE _STATE

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                        Secure.ANDROID_ID); 
郏经纬
2023-03-14

您将通过使用以下代码获得wifi mac地址(对于小米等某些设备,这将返回wifi direct mac地址),无论您在尝试连接wifi时是否使用随机地址,也无论wifi是否打开。

我使用了下面链接中的一种方法,并添加了一个小的修改,以获得准确的地址,而不是随机的地址:

在Android 6.0中获取MAC地址

public static String getMacAddr() {
    StringBuilder res1 = new StringBuilder();
    try {
        List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
        for (NetworkInterface nif : all) {
            if (!nif.getName().equalsIgnoreCase("p2p0")) continue;

            byte[] macBytes = nif.getHardwareAddress();
            if (macBytes == null) {
                continue;
            }

            res1 = new StringBuilder();
            for (byte b : macBytes) {
                res1.append(String.format("%02X:",b));
            }

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

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

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

  • 问题内容: 我已经做了很多关于溢出和谷歌的环顾工作,但是对于我的具体情况,结果都不起作用。 我有一个名为$ holder的占位符数组,值如下: 我正在尝试从此多维数组中提取不同/唯一的值。我想要的最终结果是一个包含(13,121)的变量,或者是(最好是)一个如下数组:Array([0] => 13 [1] => 121) 再次,我尝试了序列化等,但是当在每个数组中使用单个键进行操作时,我不太了解它

  • 问题内容: 我正在尝试使用数组来过滤并在列表中显示信息。为此,我使用了inbuild 方法。 但是我遇到了错误。 这是我的尝试(我通过过滤) 现场演示 问题答案: AngularJS 默认不包含过滤器。您可以使用angular- filter中的 那个。只包含JavaScript 并在您的应用中添加依赖项: 您的代码应立即生效!我编辑了您的Plunker,使其正常工作。

  • 当建立蓝牙连接(BLE)时,外围设备是否有办法获得中央设备的名称?我不确定Bleno是否有必要的工具来得到这个。