获取手机信息的工具类

来源:互联网 发布:软件专利说明书 编辑:程序博客网 时间:2024/05/22 00:31

获取手机各项信息,注释很全

[java] view plaincopy
  1. /** 
  2.  * 用于获取电话信息 
  3.  * @author lxj 
  4.  * 需要加入权限<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
  5.  */  
  6. public class PhoneInfo {  
  7.     private TelephonyManager telephonyManager;  
  8.     /**  
  9.      * 国际移动用户识别码  
  10.      */    
  11.     private String IMSI;   
  12.     private Context context;  
  13.       
  14.     public PhoneInfo(Context context){  
  15.         this.context = context;  
  16.         telephonyManager = (TelephonyManager) context    
  17.                 .getSystemService(Context.TELEPHONY_SERVICE);   
  18.     }  
  19.       
  20.      /**  
  21.      * 获取手机号码 (有些手机号无法获取,是因为运营商在SIM中没有写入手机号) 
  22.      */    
  23.     public String getPhoneNumber() {    
  24.         return telephonyManager.getLine1Number();   
  25.     }    
  26.     
  27.     /**  
  28.      * 获取运营商名称 <BR>  
  29.      *  <BR>  
  30.      */    
  31.     public String getProvidersName() {    
  32.         String ProvidersName = null;    
  33.         // 返回唯一的用户ID;就是这张卡的编号神马的    
  34.         IMSI = telephonyManager.getSubscriberId();    
  35.         // IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。    
  36.         System.out.println(IMSI);    
  37.         if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {    
  38.             ProvidersName = "中国移动";    
  39.         } else if (IMSI.startsWith("46001")) {    
  40.             ProvidersName = "中国联通";    
  41.         } else if (IMSI.startsWith("46003")) {    
  42.             ProvidersName = "中国电信";    
  43.         }    
  44.         return ProvidersName;    
  45.     }    
  46.       
  47.     /** 
  48.      * 获取手机sim卡序列号 
  49.      * @return 
  50.      */  
  51.     public String getSimSerial(){  
  52.         return telephonyManager.getSimSerialNumber();  
  53.     }  
  54.       
  55.     /** 
  56.      * 获取手机串号:GSM手机的 IMEI 和 CDMA手机的 MEID 
  57.      * @return 
  58.      */  
  59.     public String getDeviceId(){  
  60.         return telephonyManager.getDeviceId();  
  61.     }  
  62.     /** 
  63.      * 获取客户id,在gsm中是imsi号 
  64.      * @return 
  65.      */  
  66.     public String getSubscriberId(){  
  67.         return telephonyManager.getSubscriberId();  
  68.     }  
  69.       
  70.     /** 
  71.      * 获取手机型号 
  72.      * @return 
  73.      */  
  74.     public String getPhoneModel(){  
  75.         return android.os.Build.MODEL;  
  76.     }  
  77.       
  78.       
  79.     /** 
  80.      * 获取手机厂商 
  81.      * @return 
  82.      */  
  83.     public String getPhoneManufacturer(){  
  84.         return android.os.Build.MANUFACTURER;  
  85.     }  
  86.       
  87.     /** 
  88.      * 获取手机分辨率 
  89.      * @return 
  90.      */  
  91.     public String getPhoneDisplay(){  
  92.         Display display =((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();  
  93.         int width = display.getWidth();  
  94.         int height = display.getHeight();  
  95.         return width + "*" + height;  
  96.     }  
  97.       
  98.     /** 
  99.      * 获取当前app版本号 
  100.      * @return 
  101.      */  
  102.     public String getAppVersion(){  
  103.         PackageManager packageManager = context.getPackageManager();  
  104.         // getPackageName()是你当前类的包名,0代表是获取版本信息  
  105.         PackageInfo packInfo = null;  
  106.         try {  
  107.             packInfo = packageManager.getPackageInfo(context.getPackageName(),0);  
  108.         } catch (NameNotFoundException e) {  
  109.             // TODO Auto-generated catch block  
  110.             e.printStackTrace();  
  111.             return null;  
  112.         }  
  113.         return packInfo.versionName;  
  114.     }  
  115.       
  116.     /** 
  117.      * 获取手机IP(Ipv4),在wifi和3g下通用 
  118.      * 一定要加上如下权限,否则不会报错,但是获取不到 
  119.      * <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>   
  120.      * <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
  121.      * @return 
  122.      */  
  123.     public String getPhoneIp() {    
  124.         try {    
  125.             for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {    
  126.                 NetworkInterface intf = en.nextElement();    
  127.                 for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {    
  128.                     InetAddress inetAddress = enumIpAddr.nextElement();    
  129.                     if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {    
  130.                     //ifs (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet6Address) {    
  131.                         return inetAddress.getHostAddress().toString();    
  132.                     }    
  133.                 }    
  134.             }    
  135.         } catch (Exception e) {    
  136.         }    
  137.         return "";    
  138.     }    
  139.       
  140.     /** 
  141.      * 获取系统版本号 
  142.      * @return 
  143.      */  
  144.     public String getSystemVersion(){  
  145.         return Build.VERSION.RELEASE;  
  146.     }  
  147.       
  148. }  
0 0
原创粉丝点击