1. 程式人生 > >Android系統資訊獲取 之十一:獲取IMEI,IMSI號

Android系統資訊獲取 之十一:獲取IMEI,IMSI號

對於移動資訊的獲取本不想再寫,只是在開發的過程中還是有同事來討論,因此就單獨再把幾個重要的資訊獲取點給列出來,供查詢使用。

IMEI號,IMSI號的知識點可參考:IMSI號和IMEI解釋

Android系統中IMSI號和IMEI號的獲取一樣可以通過TelephonyManager類來獲取,還有另外一種方式通過Settings.System的ANDROID_ID來獲取,這裡需要注意一下,Android系統裡不少資訊除了通過各種類獲取之外還可以通過Android系統的資料庫,檔案(例如獲取CPU資訊的時候)來獲取。

通過TelephonyManager類來獲取IMSI,IMEI號:

  1. public static TelephonyManager getTelephonyManager(Context context) {  
  2.     // 獲取telephony系統服務,用於取得SIM卡和網路相關資訊  
  3.     if (mTelephonyManager == null) {  
  4.         mTelephonyManager = (TelephonyManager) context  
  5.                 .getSystemService(Context.TELEPHONY_SERVICE);  
  6.     }  
  7.     return mTelephonyManager;  
  8. }  
  9. /**  
  10.  * 唯一的裝置ID: GSM手機的 IMEI 和 CDMA手機的 MEID. Return null if device ID is not  
  11.  * 取得手機IMEI  
  12.  * available.  
  13.  */  
  14. public static String getDeviceId(Context context) {  
  15.     mDeviceId = getTelephonyManager(context).getDeviceId();// String  
  16.     return mDeviceId;  
  17. }  
  18. /**  
  19.  * 取得IMEI SV   
  20.  * 裝置的軟體版本號: 返回移動終端的軟體版本,例如:GSM手機的IMEI/SV碼。 例如:the IMEI/SV(software version)  
  21.  * for GSM phones. Return null if the software version is not available.  
  22.  */  
  23. public static String getDeviceSoftwareVersion(Context context) {  
  24.     mDeviceSoftwareVersion = getTelephonyManager(context).getDeviceSoftwareVersion();// String  
  25.     return mDeviceSoftwareVersion;  
  26. }  
  27. /**  
  28.  * 取得手機IMSI  
  29.  * 返回使用者唯一標識,比如GSM網路的IMSI編號 唯一的使用者ID: 例如:IMSI(國際移動使用者識別碼) for a GSM phone.  
  30.  * 需要許可權:READ_PHONE_STATE  
  31.  */  
  32. public static String getSubscriberId(Context context) {  
  33.     mSubscriberId = getTelephonyManager(context).getSubscriberId();// String  
  34.     return mSubscriberId;  
  35. }  

通過Settings.System的ANDROID_ID獲取
  1. private String getAndroidIMEI(Context context){  
  2.     String androidIMEI = android.provider.Settings.System.getString(getContentResolver(context), android.provider.Settings.System.ANDROID_ID);  
  3.     Log.d("ANDROID_ID", androidIMEI + " ");  
  4.     return androidIMEI;  
  5. }