Android获取浏览器User Agent

【最全总结】java(user-agent)获取浏览器信息及操作系统 本文章使用java(user-agent),需要前端请求request 为了测试几乎下载完了windows常用浏览器 Android也几乎下载了全部常用浏览器作为测试, 苹果系统,ipone有朋帮测试过,没得问题, 最后总结出代码: ——————————————这是分割线—————————————— 获取浏览器版本: /** * 获取浏览器版本 * * @param request * ... 阅读详情

获取浏览器User Agent的代码:

[java]  view plain copy
  1.       WebView webview;  
  2. webview = new WebView(this);  
  3. webview.layout(0, 0, 0, 0);  
  4. WebSettings settings = webview.getSettings();  
  5. String ua = settings.getUserAgentString();  
  6. Log.e("HJJ", "User Agent:" + ua);  
我们来看看getUserAgentString源代码:

[java]  view plain copy
  1. public synchronized String getUserAgentString() {  
  2.     if (DESKTOP_USERAGENT.equals(mUserAgent) ||  
  3.             IPHONE_USERAGENT.equals(mUserAgent) ||  
  4.             !mUseDefaultUserAgent) {  
  5.         return mUserAgent;  
  6.     }  
  7.   
  8.     boolean doPostSync = false;  
  9.     synchronized(sLockForLocaleSettings) {  
  10.         Locale currentLocale = Locale.getDefault();  
  11.         if (!sLocale.equals(currentLocale)) {  
  12.             sLocale = currentLocale;  
  13.             mUserAgent = getCurrentUserAgent();  
  14.             mAcceptLanguage = getCurrentAcceptLanguage();  
  15.             doPostSync = true;  
  16.         }  
  17.     }  
  18.     if (doPostSync) {  
  19.         postSync();  
  20.     }  
  21.     return mUserAgent;  
  22. }  

[java]  view plain copy
  1. private synchronized String getCurrentUserAgent() {  
  2.     Locale locale;  
  3.     synchronized(sLockForLocaleSettings) {  
  4.         locale = sLocale;  
  5.     }  
  6.     StringBuffer buffer = new StringBuffer();  
  7.     // Add version  
  8.     final String version = Build.VERSION.RELEASE;  
  9.     if (version.length() > 0) {  
  10.         buffer.append(version);  
  11.     } else {  
  12.         // default to "1.0"  
  13.         buffer.append("1.0");  
  14.     }    
  15.     buffer.append("; ");  
  16.     final String language = locale.getLanguage();  
  17.     if (language != null) {  
  18.         buffer.append(language.toLowerCase());  
  19.         final String country = locale.getCountry();  
  20.         if (country != null) {  
  21.             buffer.append("-");  
  22.             buffer.append(country.toLowerCase());  
  23.         }  
  24.     } else {  
  25.         // default to "en"  
  26.         buffer.append("en");  
  27.     }  
  28.     // add the model for the release build  
  29.     if ("REL".equals(Build.VERSION.CODENAME)) {  
  30.         final String model = Build.MODEL;  
  31.         if (model.length() > 0) {  
  32.             buffer.append("; ");  
  33.             buffer.append(model);  
  34.         }  
  35.     }  
  36.     final String id = Build.ID;  
  37.     if (id.length() > 0) {  
  38.         buffer.append(" Build/");  
  39.         buffer.append(id);  
  40.     }  
  41.     final String base = mContext.getResources().getText(  
  42.             com.android.internal.R.string.web_user_agent).toString();  
  43.     return String.format(base, buffer);  
  44. }  

如我获取到自己手机的UA如下:

[html]  view plain copy
  1. Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; U8817 Build/MocorDroid4.0.3) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1  

显然它是这样组成的:

首先,web_user_agent的代码为:

[java]  view plain copy
  1. Mozilla/5.0 (Linux; U; Android %s) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1  

其中%s为构造的buffer。

对应如下:

4.0.3    Build.VERSION.RELEASE  
U8817 如果Build.VERSION.CODENAME.equal("REL"),哪么值为Build.MODEL
MocorDroid4.0.3  值为Build.ID

Android进阶之路 - 网络请求中user-agent的使用 首次听到user-agent的概念,及时来恶补一下~ 阅读详情

相关推荐

android原生User-agent数据,10万量级

android原生User-agent数据,10万量级。数据来源于https://user-agents.net/random

手机User-Agent大全(Android爬虫)

设备 系统 浏览器 User-Agent 红米Note 5 Android MIUI浏览器 Mozilla/5.0 (Linux; U; Android 9; zh-cn; Redmi Note 5 Build/PKQ1.180904.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/1

墨痕诉清风的博客 7万+

get-user-agent:轻松生成浏览器用户代理

获取用户代理 轻松生成浏览器用户代理! 安装 npm install get-user-agent 用法示例 const useragent = require ( 'get-user-agent' ) ; console . log ( useragent . firefox ( 75 ) ) ; 功能 ⇒ string Chrome用户代理 ⇒ string 具有高级选项的Chrome用户代理 ⇒ string Safari用户代理 ⇒ string 带有高级选项的Firefox用户代理 ⇒ string Opera用户代理 ⇒ string 具有高级选项的Ope

1.4、获取Android User-Agent和WebView User-Agent

https://www.jianshu.com/p/afae68974ee0

lanxuan1993的博客 2774

LLVM实战:如何用Clang+LLVM打造你的第一个C++编译器(附完整配置步骤)

本文详细介绍了如何使用Clang+LLVM构建C++编译器的完整配置步骤,从环境准备到编译流程剖析,再到调试与优化技巧。通过实战指南,帮助开发者深入理解LLVM编译器框架的工作原理,并掌握交叉编译与性能分析等高级功能。

sprite的博客 748

开源PACS系统Orthanc(DICOM服务器)配置

PACS(Picture Archiving and Communication System)是医学影像的数字化存储、检索和传输系统,用于管理和存储医学图像和相关信息,如放射学、核医学、超声、病理学等各种医学影像。PACS系统通过数字化技术取代了传统的胶片方式,使医疗机构能够更高效地存储、传输和查看医学图像,从而提高了医疗图像的管理和工作流程。

qq_42231043的博客 6250

Android获取设备useragent,Android获取浏览器User Agent

获取浏览器User Agent的代码:WebView webview;webview = new WebView(this);webview.layout(0, 0, 0, 0);WebSettings settings = webview.getSettings();String ua = settings.getUserAgentString();Log.e("HJJ", "User Agen...

weixin_39674293的博客 1320

初识机会网络仿真器ONE中ExternalMovement移动模型(导入外部移动数据)

最近半个月一直在研究ONE中关于ExternalMovement移动模型的源代码,在网上几乎没有找到相关的资料,很是苦恼,如果有共同研究方向的小伙伴欢迎联系我,共同讨论进步。 下面记录一下几点感悟: 1、使用外部数据的前提是在ONE的配置文件中增加及修改相关代码: Group.movementModel = ExternalMovement ExternalMovement.file = move...

qq_36974792的博客 659

android 浏览器开发 useragent,Android获取浏览器User Agent

获取浏览器User Agent的代码:WebView webview;webview = new WebView(this);webview.layout(0, 0, 0, 0);WebSettings settings = webview.getSettings();String ua = settings.getUserAgentString();Log.e("HJJ", "User Agen...

weixin_42206399的博客 411

别再死记硬背了!用Wireshark抓包实战,5分钟搞懂GRE、L2TP、IPsec的区别

本文通过Wireshark抓包实战,详细解析GRE、L2TP和IPsec三大隧道协议的核心差异与应用场景。从报文结构到配置示例,帮助网络工程师快速掌握这些协议的本质,提升VPN部署与故障排查能力。特别适合准备HCIP认证的工程师深化理解。

weixin_30352645的博客 439

Vectorless dynamic动态功耗分析——Voltus

power 计算工具会根据设计信息和用户提供的activity和switching约束来生成虚拟的worst-case的power vector,难点在于哪些instances视为switching,在没有仿真的前提下如何确定开关的时间,使用timing文件(TWF)

qq_44347276的博客 2790

安卓浏览器上的UA

Android 12;

Aabcde_123451234的博客 538

STM32L431电池供电项目实战:用STOP2模式把功耗降到5uA以下(CubeMX配置详解)

本文详细介绍了如何在STM32L431电池供电项目中利用STOP2模式实现5μA以下的超低功耗设计。通过CubeMX配置、硬件优化和软件策略,成功将农业温湿度监测节点的待机功耗控制在4.7μA,确保CR2032电池供电下3年以上的工作寿命。文章包含完整的低功耗实现路径和实测数据,特别适合物联网边缘设备开发者参考。

weixin_30345577的博客 393

java通过http头部信息如何判断是ipad、安卓手机还是苹果手机 或者是其它设备...

在Java中使用HttpServletRequest对象的getHeader("User-Agent")方法可以获取到客户端发送过来的User-Agent信息。根据这个信息,可以判断客户端是哪种设备。 对于iPad,User-Agent信息通常包含"iPad"字样;对于安卓手机,包含"Android"字样;对于苹果手机,包含"iPhone"字样。 代码示例: String userAgent = ...

weixin_35750483的博客 2284

别再为10G UDP发愁了!手把手教你用Xilinx 10G/25G Ethernet Subsystem IP核搭建FPGA网络栈(附12套工程源码)

本文详细介绍了基于Xilinx UltraScale架构的FPGA网络栈开发,重点讲解了10G/25G Ethernet Subsystem IP核的应用实践。通过手把手教程和12套工程源码,帮助开发者解决10G UDP通信中的物理层接口、协议栈实现和系统集成等核心挑战,实现高性能FPGA网络栈搭建。

weixin_42522575的博客 364

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android 获取工作设备的 “User-Agent”(标识:浏览器用户代码)

@SuppressLint("ObsoleteSdkInt") public static @NotNull String getUserAgent(Context context) { String userAgent = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { try { userAgen...

liulilittle的博客 1649

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

PHP使用$_SERVER['HTTP_USER_AGENT'];获取User Agent信息,另附JS方法

PHP使用$_SERVER['HTTP_USER_AGENT'];获取User Agent信息,通过查找信息的异同并加以判断语句来实现只允许页面在微信内置浏览器打开,或只允许在手机QQ内置浏览器打开,或其它浏览器打开等 安卓系统 手机UC浏览器:Mozilla/5.0 (Linux; U; Android 4.2.2; zh-CN; Hol-T00 Build/HUAWEIHol-T00) A...

weixin_42165443的博客 3757

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java(android)通过请求头(User-Agent)获取浏览器类型,操作系统类型,手机机型

声明: 1.User-Agent是可以伪造的 2.User-Agent中含有操作系统和版本信息 3.在优快云看见几位的博客,感觉不是很完善,刚好项目上用到,引用几位兄弟的博客,自己进一步完善。 import javax.servlet.http.HttpServletRequest; import nl.bitwalker.useragentutils.Br

伊布暮雪_博客 8177

安卓ios主流浏览器User-Agent汇总

user-Agent爬虫 ['Mozilla/5.0 (iPhone 84; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 MQQBrowser/7.8.0 Mobile/14G60 Safari/8536.25 MttCustomUA/2 QBWebViewTyp

alanlonglong的博客 3万+

java获取手机系统类型的_Java(android)通过请求头(User-Agent)获取浏览器类型,操作系统类型,手机机型...

声明:1.User-Agent是可以伪造的2.User-Agent中含有操作系统和版本信息3.在看见几位的博客,感觉不是很完善,刚好项目上用到,引用几位兄弟的博客,自己进一步完善。import javax.servlet.http.HttpServletRequest;import nl.bitwalker.useragentutils.Browser;import nl.bitwalker.us...

weixin_32115711的博客 1902

php http_user_agent 微信浏览器改变为其他浏览器,微信内置浏览器HTTP_USER_AGENT

随着微信的普及和微信公众号的营销日益增多,我们所面对的开发不再仅仅局限于传统的网站,微信开发也成为了我们程序猿的一项必修课程。我们可以借助微信开发者工具进行微信小程序和微信公众号网页开发,但是在微信公众号网页开发过程中,对于页面设计和排版还是有一定的缺陷,比如通常我们刷新网页只需要按F5即可,而在微信开发者工具中需要使用Ctrl+R进行刷新,颇有不便。我们可以通过浏览器的开发者工具设置浏览器的调试...

weixin_39595621的博客 472

python 模拟微信浏览器请求_用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面...

现在很流行微信网页小游戏,用html5制作的小游戏移过来,可以放到微信浏览器中打开,关键是可以做成微信分享朋友圈的形式,大大提高游戏的传播,增强好友的游戏互动。微信浏览器中打开网页游戏效果还不错,对手机要求不高,而且微信网页游戏不用考虑手机兼容性问题,采用html5,而且大部分手机浏览器,特别是微信浏览器对html5的支持很高。怎么把别人的微信网页游戏移植到自己的网站上并分享给好友呢?许多网站的微...

weixin_39970166的博客 1022

浏览器User-Agent(用户代理属性)

Http 协议请求头中的 User-Agent属性会将客户端设备的信息传递给服务器,这些信息包括客户端操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。 //获取浏览器信息 var brows = { name: navigator.appName, version: navigator.appName, code: navigator.appCodeName, agent: navigator.u

imkaifan的博客 1919
上一篇: android之style样式-EditText样式
下一篇: parallax(视差)效果源码分析
coder_nice
博客等级 码龄12年 33粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值