获取手机型号,操作系统,系统版本

引入依赖:

<dependency>
            <groupId>eu.bitwalker</groupId>
            <artifactId>UserAgentUtils</artifactId>
            <version>1.20</version>
 </dependency>

工具类:

public class UserAgentUtil {

    public static String android = "Android";
    public static String iphone = "iPhone";
    public static String ipad = "iPad";
    public static String noDevice = "未知设备";

    // 获取用户UA信息
    public static String getUaInfo(HttpServletRequest request) {

        if (null == request)
            return "";
        return request.getHeader("User-Agent");
    }

    // 获取用户Browser信息
    public static String getBrowser(String ua) {

        if (null == ua)
            return "";
        UserAgent userAgent = UserAgent.parseUserAgentString(ua);
        Browser browser = userAgent.getBrowser();
        return browser.toString();
    }

    // 获取用户os信息
    public static String getOS(String ua) {

        if (null == ua)
            return noDevice;
        UserAgent userAgent = UserAgent.parseUserAgentString(ua);
        OperatingSystem os = userAgent.getOperatingSystem();
        return os.toString();
    }

    // 获取移动用户操作系统
    public static String getMobileOS(String userAgent) {
        if (userAgent.contains(android)) {
            return android;
        } else if (userAgent.contains(iphone)) {
            return iphone;
        } else if (userAgent.contains(ipad)) {
            return ipad;
        } else {
            return "others";
        }
    }

    // 获取用户手机型号
    public static String getPhoneModel(String userAgent) {

        if (null == userAgent || "" == userAgent)
            return noDevice;

        String OS = UserAgentUtil.getMobileOS(userAgent);
        if (OS.equals(android)) {
            String rex = "[()]+";
            String[] str = userAgent.split(rex);
            str = str[1].split("[;]");
            String[] res = null;
            for (String string : str) {
                if (!string.contains("Build/")) {
                    continue;
                }
                res = string.split("Build/");
            }
            return res == null ? "" : res[0].trim();
        } else if (OS.equals(iphone)) {
            String[] str = userAgent.split("[()]+");
            String res = "iphone" + str[1].split("OS")[1].split("like")[0];
            return res;
        } else if (OS.equals(ipad)) {
            return ipad;
        } else {
            return getOS(userAgent);
        }
    }

    public static String getPhoneVersion(String userAgent) {

        if (null == userAgent || "" == userAgent)
            return "";

        String OS = UserAgentUtil.getMobileOS(userAgent);
        if (OS.equals(android)) {
            String rex = "[()]+";
            String[] str = userAgent.split(rex);
            str = str[1].split("[;]");
            String res[] = null;
            for (String string : str) {
                if (!string.contains("Android")) {
                    continue;
                }
                System.out.println(string.trim());
                res = string.trim().split("Android");
            }
            return res == null ? "" : res[1].trim();
        } else if (OS.equals(iphone)) {
            String[] str = userAgent.split("[()]+");
            String res = str[1].split("OS")[1].split("like")[0];
            return res.trim();
        } else {
            return "";
        }
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值