首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在android中获取设备id

在android中获取设备id
EN

Stack Overflow用户
提问于 2018-02-13 15:28:17
回答 2查看 6.7K关注 0票数 2

我已经在android中找到了两种获得设备id的方法,但我不知道哪一种更好,它们之间有什么区别?

方法1

代码语言:javascript
运行
复制
public static String getDeviceId2(Context context) {


        String androidId = Settings.Secure.getString(
                context.getContentResolver(), Settings.Secure.ANDROID_ID);

        return androidId;
    }

方法2

代码语言:javascript
运行
复制
public static String getDeviceId(Context context) {

        if (PermissionManager.getInstance().hasSelfPermission(context, Manifest.permission.READ_PHONE_STATE) == true) {

            return ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
        } else {
            return "";
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2018-02-13 15:37:22

ANDROID_ID

可以改变。在8.0中,它在重新安装应用程序时发生变化。

在Android8.0 (API级别26)和更高版本的平台上,64位数字(表示为十六进制字符串)是每个应用程序签名密钥、用户和设备组合所特有的。ANDROID_ID的值是通过签名键和用户来限定范围的。如果在设备上执行工厂重置,或者如果APK签名密钥发生更改,则该值可能会更改。有关平台如何在Android8.0 (API级别26)及更高版本中处理ANDROID_ID的更多信息,请参见Android8.0行为更改。 注意:对于在将设备升级到Android8.0 (API 26)或更高版本之前安装的应用程序,如果应用程序被卸载,然后在安装后重新安装,ANDROID_ID的值就会发生变化。为了在OTA到Android8.0或更高版本后在卸载过程中保留值,开发人员可以使用键/值备份。

getDeviceId()

在8.0中被弃用

票数 2
EN

Stack Overflow用户

发布于 2018-02-13 15:35:12

第一种方法是正确的。第二,没有sim卡的设备无法工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48770202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档