WHIE TELLOMONIBER.getDeviceID () ID возврата устройства для таблеток, таких как вкладка Galaxy ...?

StackOverflow https://stackoverflow.com/questions/3802644

  •  25-09-2019
  •  | 
  •  

Вопрос

Я хочу получить идентификатор устройства, который будет уникальным для каждого устройства Android. Я в настоящее время развиваю для планшетного устройства. Хотите получить уникальный идентификатор устройства и хранить соответствующие значения ...

Итак, я хочу знать, вернет ли планшетные устройства, если я пользуюсь телефонияMonager.getDeviceID () ... ??? или есть какое-либо другое значение, которое уникально для каждого устройства ???

Это было полезно?

Решение

Это нет дубликат вопрос. Как оказывается, CTS Google требует, чтобы GetPhonetype TelephonyManager не должен быть ни одного, и GetDeviceId телефонияManager не должен быть нулевым для не телефонных устройств.

Итак, чтобы получить IMEI, пожалуйста, попробуйте использовать:

String imei = SystemProperties.get("ro.gsm.imei")

К сожалению, SystemProperties является непубличным классом в ОС Android, что означает, что он не публично доступен для регулярных приложений. Попробуйте смотреть на этот пост для получения доступа к нему: Где есть android.os.systemproperties.

Другие советы

Telebalomanger.getdeviceId () Возвращает уникальный идентификатор устройства, например, IMEI для GSM и MEID или ESN для телефонов CDMA.

final TelephonyManager mTelephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);            
String myAndroidDeviceId = mTelephony.getDeviceId(); 

Но я рекомендую использовать:

Settings.secure.android_id. Это возвращает идентификатор Android в качестве уникальной 64-битной шестигранной строки.

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

Иногда Telebalomanger.getdeviceId () Вернется NULL, чтобы обеспечить уникальный идентификатор, который вы будете использовать этот метод:

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;
}

Так как Android 8 все изменилось. Вы должны использовать Build.getSerial(), чтобы получить серийный номер устройства и добавить разрешение READ_PHONE_STATE.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    serial = Build.getSerial(); // Requires permission READ_PHONE_STATE
} else {
    serial = Build.SERIAL; // Will return 'unknown' for device >= Build.VERSION_CODES.O
}

И получить IMEI или Meid таким образом:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    String imei = tm.getImei(); // Requires permission READ_PHONE_STATE
    serial = imei == null ? tm.getMeid() : imei; // Requires permission READ_PHONE_STATE
} else {
    serial = tm.getDeviceId(); // Requires permission READ_PHONE_STATE
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top