TelephonyManager.getDeviceId (0) возвращает запутанный результат для разных устройств - PullRequest
0 голосов
/ 23 апреля 2019

Я использую TelephonyManager.getDeviceId(0) для получения устройства imei для первого слота SIM.Но мне кажется, что это не возвращает мне первый слот IMEI каждый раз.У меня есть два мобильных телефона с двумя слотами для сим-карт, но без сим-карты.

1. Symphony i10 +, api 24 - возвращает первый сим слот imei.
2. Huawei CAM L21, api 23 - возвращает второй сим слот imei.

Вот мой код: -

public static String getDeviceId(Context context) {
    String deviceId = DEVICE_ID;
    if (!Validator.isValid(deviceId)) {
        try {
            TelephonyManager tManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    deviceId = tManager.getImei(0);
                } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    deviceId = tManager.getDeviceId(0);
                } else {
                    deviceId = tManager.getDeviceId();
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
            try {
                deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID);
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
        DEVICE_ID = deviceId;
    }
    return deviceId;
}

Чтобы избавиться от этой путаницы, я удалил метод индексации слотов как -

else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    deviceId = tManager.getDeviceId();
                }

Затем он дает мне первую симСлот IMEI в обоих мобильных телефонах.Но в данном случае это правильно - getDeviceId(), и мне каждый раз будет возвращаться IMEI первого слота?

Я прочитал TelephonyManager.getDeviceId (0) возвращает разные результаты хотя это сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...