Android 手机获取物理唯一标识码和IMEI号和IMSI号

来源:互联网 发布:显卡温度检测软件 编辑:程序博客网 时间:2024/06/04 18:13

开发者可以通过物理唯一标识码和IMEI号 来得知 应用有多少用户安装,或者正在使用。

物理唯一标识码 即 ANDROID_ID   是手机系统的唯一号码。

IMEI号是唯一识别手机的号码。

IMSI号是与SIM唯一对应的号码


优缺点:

1.ANDROID_ID可能会因为系统改变 而发生变化。

2.获取IMEI号    在1.6及以下版本 需要添加权限

[java] view plaincopy
  1. < uses-permission android:name="android.permission.READ_PHONE_STATE" />  



获取ANDROID_ID:

[java] view plaincopy
  1. String android_id = Secure.getString(getContentResolver(), Secure.ANDROID_ID);  

获取IMEI号:
[java] view plaincopy
  1. TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);  
  2. String android_imei =  telephonyManager.getDeviceId();  

获取IMSI号,并判断是中国移动/中国联通/中国电信

[java] view plaincopy
  1. String android_imsi = telephonyManager.getSubscriberId();//获取手机IMSI号  
  2.         if(android_imsi != null){  
  3.             if(android_imsi.startsWith("46000") || android_imsi.startsWith("46002")){<span><span class="comment">  
  4.                         //因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号段使用了此编号</span><span></span></span>  
  5.                 imsinetwrok = getResources().getText(R.string.china_mobile).toString();//中国移动  
  6.             }else if(android_imsi.startsWith("46001")){  
  7.                 imsinetwrok = getResources().getText(R.string.china_unicom).toString();//中国联通  
  8.             }else if(android_imsi.startsWith("46003")){  
  9.                 imsinetwrok = getResources().getText(R.string.china_telecom).toString();//中国电信  
  10.             }  
  11.         }  



原创粉丝点击