Номер imei Android — как его подобрать?

разработал приложение для мобильного телефона, использовал этот код для выбора номера imei

Utill.class

static TelephonyManager telephonyManager;
public static String getDeviceID(){
telephonyManager=(TelephonyManager) MyApplication.getInstance().getSystemService(MyApplication.getInstance().TELEPHONY_SERVICE);

        return telephonyManager.getDeviceId();

    }

in my job.class

String imeino = Util.getDeviceID();

протестировано с мобильными устройствами, и оно работает правильно, но когда apk установил вкладку (на стороне клиента), номер imei не выбирает и дает нулевой указатель

Примечание. для вкладки я добавил разные макеты, и она также работает правильно на моей вкладке

это вопрос базового URL-адреса или как я могу избежать этой проблемы с номером imei?


person Sisara Ranasinghe    schedule 29.10.2015    source источник
comment
для планшета только с Wi-Fi, как я могу выбрать идентификатор устройства?   -  person Sisara Ranasinghe    schedule 29.10.2015


Ответы (3)


Есть этот общий метод. Устройства без слота для SIM-карты вернут нулевой IMEI. Итак, выберите ANDROID_ID.

public String getDeviceID(){ 
    String devcieId;   
    TelephonyManager mTelephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        if (mTelephony.getDeviceId() != null){
            devcieId = mTelephony.getDeviceId(); 
        }else{
             devcieId = Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID); 
        }
    return devcieId;
    }
person Dhinakaran Thennarasu    schedule 29.10.2015

класс java и добавьте следующий код

TelephonyManager tel;
TextView imei;                
    tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);        
    imei = (TextView) findViewById(R.id.textView2);
    imei.setText(tel.getDeviceId().toString());

AndroidManifest.xml и добавьте следующий код

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
person Android    schedule 29.10.2015
comment
Пожалуйста, добавьте пояснения к вашему ответу! - person ρss; 29.10.2015
comment
Не могли бы вы добавить некоторые подробности о том, почему это должно работать? Ответы, содержащие только код, не очень полезны и подлежат удалению. - person Cristik; 29.10.2015

Попробуйте этот код, он вернет вам номер IMEI, если устройство основано на GSM или если не вернет идентификатор Android.

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

Также дайте разрешение на чтение состояния телефона в манифесте.

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
person Ahsan Kamal    schedule 02.11.2015