web-dev-qa-db-ja.com

TelephonyManagerはIMEI番号に対してnullを返します:これを引き起こす原因は何ですか?

Androidアプリを使用していて、nullを使用すると、IMEI番号に対してTelophonyManagerが返されます。これは、いくつかのHuawei電話で発生しています。(すべてそれらの中にはAscendY530sがあります)。

すべての電話にはSIMカードが付いており、それ以外は正常に動作しているようです。壊れた電話だけがnullIMEIを返すという印象を受けました。明らかにそうではありません。

質問。このIMEI番号は正確には何ですか?つまり、デバイスのどこに保存されていますか?そして、一見素晴らしい電話がその値をnullとして返すとはどういう意味ですか?

[〜#〜]編集[〜#〜]

IMEI番号は必ずしもnullではないことに注意してください。約半分の時間は有効と思われます(ただし、5台の電話がnullのIMEI番号を返すため、これを測定するのは非常に困難です\時々

10
Zach Smith

コメントの後、調査アプリの一意のデバイスIDを取得するには、一意のIDとして Settings.Secure.Android_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;
}
8
Let'sRefactor