Android獲取IMSI和IMEI


IMSI是一個 唯一的數字, 標識了GSM和UMTS 網絡里的唯一一個用戶. 它 存儲 在手機的SIM卡里,它會通過手機發送到網絡上.
IMEI也是一串唯一的數字, 標識了 GSM 和 UMTS網絡里的唯一一個手機. 它通常被打印在手機里電池下面的那一面,撥 *#06# 也能看到它.
代碼: 這里是你在Android里讀出 唯一的 IMSI-ID / IMEI-ID 的方法。

String myIMSI = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI);
// within my emulator it returns:   310995000000000
String myIMEI = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMEI);
// within my emulator it returns:   000000000000000

手機號碼不是所有的都能獲取。只是有一部分可以拿到。這個是由於移動運營商沒有把手機號碼的數據寫入到sim卡中。
sim卡只有唯一的編號,供網絡與設備識別那就是 imsi號碼,手機的信號也可以說是通過這個號碼在網絡中傳遞的,並不是手機號碼。
試想,你的sim丟失后,補辦一張新的會換號碼嗎? —不會
就是因為在你的手機號碼對應的 imsi號 在移動運營商中被修改成新sim卡的imsi號碼。
那么手機號為什么有的就能顯示呢?
這個就像是一個變量,當移動運營商為它賦值了,它自然就會有值。不賦值自然為空。

/**
     * 獲得手機的一些標志符
     * 
     * @param c
     * @return String 手機的類型
     */
    public String fetch_status(Context c) {
        TelephonyManager tm = (TelephonyManager) c
                .getSystemService(Context.TELEPHONY_SERVICE);//      
        String str = "";
        String IMSI = tm.getSubscriberId();
        str += "DeviceId(IMEI) = " + tm.getDeviceId() + "/n"; 
        str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion()
                + "/n";
        str += "Line1Number = " + tm.getLine1Number() + "/n";
        return str;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM