如何获取设备的android_id?

22

可能是重复问题:
是否存在唯一的Android设备ID?

在许可证文档中,Android开发人员提到了一种更或多或少安全地识别Android设备的简便方法。他们使用android.Settings.Secure.ANDROID_ID。

他们说他们查询系统设置来获取此ID。但是他们没有进一步解释。

我如何获取android_id并且需要特殊权限吗?

2个回答

17
adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "SELECT value FROM secure WHERE name='android_id'"

如果您的手机已经获取了root权限,那么您可以更改Android ID... 以下是插入Android ID的方法:

adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "UPDATE secure SET value='IDHERE' WHERE name='android_id'"

8
最近的安卓系统貌似不能使用此方法。以下方法对我有效:adb shell settings get secure android_id - kralyk
答案忽略了需要通过 su 获取 root 权限这一事实。 - Robert
这不再起作用了!settings.db自Android 7起已经消失了。 - rustyx

8

这个问题编辑前30分钟你已经链接到相关的Javadoc了,所有答案都在那里! :)
有没有唯一的Android设备ID?

"Secure"表示应用程序只能读取它,不能写入。我记得这个设备ID并不总是存在的;可能是由市场根据需要填充的。


谢谢,我尝试了问题中的代码,但它没有起作用,现在我意识到这是我的错误,并使其工作。 - Janusz
我想证实关于ID不总是存在的那部分。当我在模拟器上测试时,我们遇到了这个问题。我不记得ID是否从未出现过或只是偶尔缺失,但我记得在模拟器上它并不总是存在。 - Hamy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接