android 获取手机各类信息 源码

获得唯一码的方法及相应的权限设置

1.获取手机设备的唯一码(IMIE )
public void fetch_status(){ 
    TelephonyManager tm = (TelephonyManager) this 
    .getSystemService(Context.TELEPHONY_SERVICE);//     
    String str = ""; 
    str += "DeviceId(IMEI) = " + tm.getDeviceId() + "\n";   
    str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion() + "\n";   
    str += "Line1Number = " + tm.getLine1Number() + "\n";   
    str += "NetworkCountryIso = " + tm.getNetworkCountryIso() + "\n";   
    str += "NetworkOperator = " + tm.getNetworkOperator() + "\n";   
    str += "NetworkOperatorName = " + tm.getNetworkOperatorName() + "\n";   
    str += "NetworkType = " + tm.getNetworkType() + "\n";   
    str += "PhoneType = " + tm.getPhoneType() + "\n";   
    str += "SimCountryIso = " + tm.getSimCountryIso() + "\n";   
    str += "SimOperator = " + tm.getSimOperator() + "\n";   
    str += "SimOperatorName = " + tm.getSimOperatorName() + "\n";   
    str += "SimSerialNumber = " + tm.getSimSerialNumber() + "\n";   
    str += "SimState = " + tm.getSimState() + "\n";   
    str += "SubscriberId(IMSI) = " + tm.getSubscriberId() + "\n";   
    str += "VoiceMailNumber = " + tm.getVoiceMailNumber() + "\n";   
    TextView sys = (TextView) findViewById(R.id.sys); 
    sys.setText(str); 

2.在AndroidManifest.xml里添加权限

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

////////////////////////////////////////////////////////////////////////////////////////////////////////

TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);       
        if(TelephonyManager.SIM_STATE_READY != telephonyManager .getSimState()){//判断SIM卡状态
            return "0";
        }
       // String  localtel=telephonyManager.getLine1Number();//本机号码,部分手机无法获取
       //  String ProvidersName = null;//哪家电话号码
        // 返回唯一的用户ID;就是这张卡的编号神马的
        // String  IMSI = telephonyManager.getSubscriberId();
            String myIMSI = telephonyManager.getDeviceId();  //获取手机唯一码
            // IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
            /* if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
                 ProvidersName = "中国移动";
             } else if (IMSI.startsWith("46001")) {
                  ProvidersName = "中国联通";
               } else if (IMSI.startsWith("46003")) {
                        ProvidersName = "中国电信";
               }*/
        //保存本地号码
        SharePreferenceUtil shareprefrence=new SharePreferenceUtil(context,"setting");
        shareprefrence.setLocalTel(myIMSI);
           //  editor.putString("ProvidersName", ProvidersName);
           //  editor.putString("myIMSI", myIMSI);
        return myIMSI;

posted on 2013-10-15 17:09  clarenceV1  阅读(528)  评论(0编辑  收藏  举报

导航