No IMEI for Android Developers in Android 10

非 Y 不嫁゛ 提交于 2019-12-08 04:44:55

问题


As Android is serious about security and trying to make new android versions more secure, its becoming tough for developers to keep up-to date with new security features and find old methods alternatives to make their app compatible with old features.

This question is about IMEI in New Android 10! The old method was super easy to get IMEI number by using below code

  String deviceId = "";

    if (Build.VERSION.SDK_INT >= 26) {
        if (telMgr.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA) {
            deviceId = telMgr.getMeid();
        } else if (telMgr.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
            deviceId = telMgr.getImei();
        } else {
            deviceId = ""; // default!!!
        }
    } else {
        deviceId = telMgr.getDeviceId();
    }

In New Android 10 it is now restricted to get IMEI number. According to android documentation

apps must have the READ_PRIVILEGED_PHONE_STATE privileged permission in order to access the device's non-resettable identifiers, which include both IMEI and serial number.

The problem is that when we try to ask run time permissions with

  android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE

My compiler does not recognize this permissions and i got error on this line but when i ask this permission in manifest file it does recognize this line but through warning that this permission is only for system apps.

I want to make my app compatible with Android 10 and want to get IMEI. How can i get IMEI number in Android 10 without becoming device owner or profile owner ?


回答1:


To get a unique identifier you can use FirebaseInstanceId.getInstance().getId(); or String uniqueID = UUID.randomUUID().toString();. Have a look here for best practices https://developer.android.com/training/articles/user-data-ids#java




回答2:


Only device owner apps can read unique identifiers or your app must be a system app with READ_PRIVILEGED_PHONE_STATE. You can't ask this permission for a normal app.



来源:https://stackoverflow.com/questions/57993401/no-imei-for-android-developers-in-android-10

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!