首页 > 解决方案 > 为什么返回 Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID) 一个空字符串;

问题描述

我在用

Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);

但 return 的值为空。

任何想法?

谢谢

标签: androidrobolectric

解决方案


你在用模拟器吗?模拟器为此系统属性返回 null/空值。

此外,有趣的是,Android/Google 会在此处警告有关使用 ANDROID_ID 的一些事情

ANDROID_ID 似乎是唯一设备标识符的不错选择。有缺点:首先,它在 2.2 之前的 Android 版本(“Froyo”)上不是 100% 可靠的。此外,在主要制造商的流行手机中至少存在一个被广泛观察的错误,其中每个实例都具有相同的 ANDROID_ID。

此外,请注意此警告,如果您的应用针对 Android Oreo 或更高版本,可能与此相关

注意:对于在将设备更新到 Android 8.0(API 级别 26)或更高版本之前安装的应用程序,如果应用程序在 OTA 后卸载并重新安装,则 ANDROID_ID 的值会发生变化。为了在 OTA 到 Android 8.0 或更高版本后的卸载过程中保留值,开发人员可以使用键/值备份。


推荐阅读