Android系统信息获取 之十一:获取IMEI,IMSI号

朱阳曜
2023-12-01

对于移动信息的获取本不想再写,只是在开发的过程中还是有同事来讨论,因此就单独再把几个重要的信息获取点给列出来,供查询使用。

IMEI号,IMSI号的知识点可参考:IMSI号和IMEI解释


Android系统中IMSI号和IMEI号的获取一样可以通过TelephonyManager类来获取,还有另外一种方式通过Settings.System的ANDROID_ID来获取,这里需要注意一下,Android系统里不少信息除了通过各种类获取之外还可以通过Android系统的数据库,文件(例如获取CPU信息的时候)来获取。

通过TelephonyManager类来获取IMSI,IMEI号:

[html]  view plain  copy
  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. /**  
  11.  * 唯一的设备ID: GSM手机的 IMEI 和 CDMA手机的 MEID. Return null if device ID is not  
  12.  * 取得手机IMEI  
  13.  * available.  
  14.  */  
  15. public static String getDeviceId(Context context) {  
  16.     mDeviceId = getTelephonyManager(context).getDeviceId();// String  
  17.     return mDeviceId;  
  18. }  
  19.   
  20. /**  
  21.  * 取得IMEI SV   
  22.  * 设备的软件版本号: 返回移动终端的软件版本,例如:GSM手机的IMEI/SV码。 例如:the IMEI/SV(software version)  
  23.  * for GSM phones. Return null if the software version is not available.  
  24.  */  
  25. public static String getDeviceSoftwareVersion(Context context) {  
  26.     mDeviceSoftwareVersion = getTelephonyManager(context).getDeviceSoftwareVersion();// String  
  27.     return mDeviceSoftwareVersion;  
  28. }  
  29.   
  30. /**  
  31.  * 取得手机IMSI  
  32.  * 返回用户唯一标识,比如GSM网络的IMSI编号 唯一的用户ID: 例如:IMSI(国际移动用户识别码) for a GSM phone.  
  33.  * 需要权限:READ_PHONE_STATE  
  34.  */  
  35. public static String getSubscriberId(Context context) {  
  36.     mSubscriberId = getTelephonyManager(context).getSubscriberId();// String  
  37.     return mSubscriberId;  
  38. }  

通过Settings.System的ANDROID_ID获取

[java]  view plain  copy
  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. }  
 类似资料: