在 android studio 中接收 IMEI 时显示错误

Display error when receiving IMEI in android studio

我有一个Android申请。

但是当我尝试使用 IMEI 时,它显示一条错误消息

这个错误:

The user 10379 does not meet the requirements to access device identifiers.

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
System.out.println("IMEI::" + telephonyManager.getDeviceId());

此代码会对您有所帮助。您无法获得高于 API 级别 26 的 IMEI。因此请使用 deviceId。此代码在 Kotlin 中。

private fun telephonyService() {
    val telephonyManager = getSystemService(TELEPHONY_SERVICE) as TelephonyManager
    val imei = if (android.os.Build.VERSION.SDK_INT >= 26) {
        print("Phone >= 26 IMEI")
        telephonyManager.imei
    } else {
        print("Phone IMEI < 26")
        telephonyManager.deviceId
    }

    print("Phone IMEI $imei")
}

现在 android 限制了 imei 号码及其提供的软件号码。你可以试试这个,一定能解决你的问题。

public static String getIMEINumber(Context context) {
    String deviceId;

    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
        deviceId = Settings.Secure.getString(
                context.getContentResolver(),
                Settings.Secure.ANDROID_ID);
    } else {
        final TelephonyManager mTelephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        if (mTelephony.getDeviceId() != null) {
            deviceId = mTelephony.getDeviceId();
        } else {
            deviceId = Settings.Secure.getString(
                    context.getContentResolver(),
                    Settings.Secure.ANDROID_ID);
        }
    }
    return deviceId;
}