TelephonyManager returns IMEI 号码为空:是什么原因造成的?

TelephonyManager returns null for IMEI number: what can cause this?

我正在开发一个 Android 应用程序,并且在使用 TelophonyManager 时得到 null IMEI 号码。这发生在几个华为 phones 上。 (都是升腾Y530)

phone 都有 sim 卡,其他方面似乎都正常运行。我的印象是只有损坏的 phone 才会 return null IMEI。显然不是这样的..

问题。这个 IMEI 号码到底是什么 - 即它存储在设备上的什么位置?当一个看似不错的 phone return 的值是 null 是什么意思?

编辑

我应该提一下,IMEI 号码并不总是 null。大约一半的时间它似乎是有效的(尽管这很难衡量,因为我们有 5 phones returning 空 IMEI 号码\ 有时

在您发表评论后,为了获得调查应用程序的唯一设备 ID,我建议您使用 Settings.Secure.ANDROID_ID 作为您的唯一 ID。

String   myAndroidDeviceId = Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);

或者您可以同时使用两者作为

public String getUniqueID(){    
    String myAndroidDeviceId = "";
    TelephonyManager mTelephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    if (mTelephony.getDeviceId() != null){
        myAndroidDeviceId = mTelephony.getDeviceId(); 
    }else{
         myAndroidDeviceId = Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID); 
    }
    return myAndroidDeviceId;
}