getimei () дает мне imei 2-го сим-слота в некоторых устройствах andorid? - PullRequest
0 голосов
/ 26 июня 2019

Иногда я получаю IMEI второго SIM-слота при получении этого кода:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                    String imei = telephonyManager.getImei();

                    return imei;

                } else {

                    String imei = telephonyManager.getDeviceId();
                    return imei;
                }

Это влияет на пользователей, где, если их deviceId меняется, они выйдут из системы.Из-за несоответствия в устройстве.

Каковы шансы получить IMEI второй SIM-карты , даже если я запрашиваю IMEI SIM-картыСЛОТ 1 ?

1 Ответ

0 голосов
/ 26 июня 2019

static boolean handleDeviceIdDisplay (Контекст контекста, ввод строки) { TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService (Context.TELEPHONY_SERVICE);

    if (telephonyManager != null && input.equals(MMI_IMEI_DISPLAY)) {
        int labelResId = (telephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) ?
                R.string.imei : R.string.meid;

        List<string> deviceIds = new ArrayList<string>();
        if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1 &&
                CompatUtils.isMethodAvailable(TelephonyManagerCompat.TELEPHONY_MANAGER_CLASS,
                        "getDeviceId", Integer.TYPE)) {
            for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) {
                String deviceId = telephonyManager.getDeviceId(slot);
                if (!TextUtils.isEmpty(deviceId)) {
                    deviceIds.add(deviceId);
                }
            }
        } else {
            deviceIds.add(telephonyManager.getDeviceId());
        }

        AlertDialog alert = new AlertDialog.Builder(context)
                .setTitle(labelResId)
                .setItems(deviceIds.toArray(new String[deviceIds.size()]), null)
                .setPositiveButton(android.R.string.ok, null)
                .setCancelable(false)
                .show();
        return true;
    }
    return false;
}

Надеюсь, это поможет

...