1

以下のコードを使用して、Android デバイスの IMEI を取得しています。

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

        IMEI = tm.getDeviceId();

1 つの SIM がアクティブなデバイスでは問題ありません。2 つの SIM カードを持つデバイスに同じコードを適用すると、DeviceIDSIM1 Id または SIM2 Id を取得したかどうかを確認するにはどうすればよいでしょうか?

4

2 に答える 2

2

IMEI番号は、SIMではなく電話に関連付ける必要があるため、デュアルSIMデバイスでもIMEI番号は1つだけにする必要があります.

「IMEI はデバイスの識別にのみ使用されます」[...] 「代わりに、加入者は SIM カードに保存されている IMSI 番号の送信によって識別されます」 - 参照:ウィキペディア


編集:

ソースコードを確認してください。ヒントが見つかるかもしれません:設定アプリのソース

「IMEI」部分のスニペットを次に示します。

// NOTE "imei" is the "Device ID" since it represents
        // the IMEI in GSM and the MEID in CDMA
        if (mPhone.getPhoneName().equals("CDMA")) {
            setSummaryText(KEY_MEID_NUMBER, mPhone.getMeid());
            setSummaryText(KEY_MIN_NUMBER, mPhone.getCdmaMin());
            if (getResources().getBoolean(R.bool.config_msid_enable)) {
                findPreference(KEY_MIN_NUMBER).setTitle(R.string.status_msid_number);
            }
            setSummaryText(KEY_PRL_VERSION, mPhone.getCdmaPrlVersion());
            removePreferenceFromScreen(KEY_IMEI_SV);

            if (mPhone.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE) {
                // Show ICC ID and IMEI for LTE device
                setSummaryText(KEY_ICC_ID, mPhone.getIccSerialNumber());
                setSummaryText(KEY_IMEI, mPhone.getImei());
            } else {
                // device is not GSM/UMTS, do not display GSM/UMTS features
                // check Null in case no specified preference in overlay xml
                removePreferenceFromScreen(KEY_IMEI);
                removePreferenceFromScreen(KEY_ICC_ID);
            }
        } else {
            setSummaryText(KEY_IMEI, mPhone.getDeviceId());

            setSummaryText(KEY_IMEI_SV,
                    ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
                        .getDeviceSoftwareVersion());

            // device is not CDMA, do not display CDMA features
            // check Null in case no specified preference in overlay xml
            removePreferenceFromScreen(KEY_PRL_VERSION);
            removePreferenceFromScreen(KEY_MEID_NUMBER);
            removePreferenceFromScreen(KEY_MIN_NUMBER);
            removePreferenceFromScreen(KEY_ICC_ID);

            // only show area info when SIM country is Brazil
            if ("br".equals(mTelephonyManager.getSimCountryIso())) {
                mShowLatestAreaInfo = true;
            }
        }
于 2013-06-17T10:34:41.170 に答える
0

デュアル SIM デバイスでは、SIM スロットごとに 2 つの IMEI 番号があります。どちらも静的です。最初のIMEI番号は最初のスロット用で、2番目の番号は2番目のスロット用です。

于 2013-06-17T10:42:46.330 に答える