获取手机信息的工具类

本文详细介绍了如何创建和使用一个工具类来获取手机的各项信息,包括设备型号、操作系统版本等,注释详尽,方便理解和应用。

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

/**
 * 用于获取电话信息
 * @author lxj
 * 需要加入权限<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
 */
public class PhoneInfo {
	private TelephonyManager telephonyManager;
	/** 
     * 国际移动用户识别码 
     */  
    private String IMSI; 
    private Context context;
	
	public PhoneInfo(Context context){
		this.context = context;
		telephonyManager = (TelephonyManager) context  
                .getSystemService(Context.TELEPHONY_SERVICE); 
	}
	
	 /** 
     * 获取手机号码 (有些手机号无法获取,是因为运营商在SIM中没有写入手机号)
     */  
    public String getPhoneNumber() {  
        return telephonyManager.getLine1Number(); 
    }  
  
    /** 
     * 获取运营商名称 <BR> 
     *  <BR> 
     */  
    public String getProvidersName() {  
        String ProvidersName = null;  
        // 返回唯一的用户ID;就是这张卡的编号神马的  
        IMSI = telephonyManager.getSubscriberId();  
        // IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。  
        System.out.println(IMSI);  
        if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {  
            ProvidersName = "中国移动";  
        } else if (IMSI.startsWith("46001")) {  
            ProvidersName = "中国联通";  
        } else if (IMSI.startsWith("46003")) {  
            ProvidersName = "中国电信";  
        }  
        return ProvidersName;  
    }  
    
    /**
     * 获取手机sim卡序列号
     * @return
     */
    public String getSimSerial(){
    	return telephonyManager.getSimSerialNumber();
    }
	
    /**
     * 获取手机串号:GSM手机的 IMEI 和 CDMA手机的 MEID
     * @return
     */
    public String getDeviceId(){
    	return telephonyManager.getDeviceId();
    }
    /**
     * 获取客户id,在gsm中是imsi号
     * @return
     */
    public String getSubscriberId(){
    	return telephonyManager.getSubscriberId();
    }
    
    /**
     * 获取手机型号
     * @return
     */
    public String getPhoneModel(){
    	return android.os.Build.MODEL;
    }
    
    
    /**
     * 获取手机厂商
     * @return
     */
    public String getPhoneManufacturer(){
    	return android.os.Build.MANUFACTURER;
    }
    
    /**
     * 获取手机分辨率
     * @return
     */
    public String getPhoneDisplay(){
    	Display display =((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    	int width = display.getWidth();
    	int height = display.getHeight();
    	return width + "*" + height;
    }
    
    /**
     * 获取当前app版本号
     * @return
     */
    public String getAppVersion(){
    	PackageManager packageManager = context.getPackageManager();
        // getPackageName()是你当前类的包名,0代表是获取版本信息
        PackageInfo packInfo = null;
		try {
			packInfo = packageManager.getPackageInfo(context.getPackageName(),0);
		} catch (NameNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
        return packInfo.versionName;
    }
    
    /**
     * 获取手机IP(Ipv4),在wifi和3g下通用
     * 一定要加上如下权限,否则不会报错,但是获取不到
     * <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  
	 * <uses-permission android:name="android.permission.INTERNET"></uses-permission>
     * @return
     */
    public String getPhoneIp() {  
        try {  
            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {  
                NetworkInterface intf = en.nextElement();  
                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {  
                    InetAddress inetAddress = enumIpAddr.nextElement();  
                    if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {  
                    //ifs (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet6Address) {  
                        return inetAddress.getHostAddress().toString();  
                    }  
                }  
            }  
        } catch (Exception e) {  
        }  
        return "";  
    }  
    
    /**
     * 获取系统版本号
     * @return
     */
    public String getSystemVersion(){
    	return Build.VERSION.RELEASE;
    }
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值