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 Agent:" + ua);我们来看看getUserAgentString源代码:

public synchronized String getUserAgentString() {

if (DESKTOP_USERAGENT.equals(mUserAgent) ||

IPHONE_USERAGENT.equals(mUserAgent) ||

!mUseDefaultUserAgent) {

return mUserAgent;

}

boolean doPostSync = false;

synchronized(sLockForLocaleSettings) {

Locale currentLocale = Locale.getDefault();

if (!sLocale.equals(currentLocale)) {

sLocale = currentLocale;

mUserAgent = getCurrentUserAgent();

mAcceptLanguage = getCurrentAcceptLanguage();

doPostSync = true;

}

}

if (doPostSync) {

postSync();

}

return mUserAgent;

}

private synchronized String getCurrentUserAgent() {

Locale locale;

synchronized(sLockForLocaleSettings) {

locale = sLocale;

}

StringBuffer buffer = new StringBuffer();

// Add version

final String version = Build.VERSION.RELEASE;

if (version.length() > 0) {

buffer.append(version);

} else {

// default to "1.0"

buffer.append("1.0");

}

buffer.append("; ");

final String language = locale.getLanguage();

if (language != null) {

buffer.append(language.toLowerCase());

final String country = locale.getCountry();

if (country != null) {

buffer.append("-");

buffer.append(country.toLowerCase());

}

} else {

// default to "en"

buffer.append("en");

}

// add the model for the release build

if ("REL".equals(Build.VERSION.CODENAME)) {

final String model = Build.MODEL;

if (model.length() > 0) {

buffer.append("; ");

buffer.append(model);

}

}

final String id = Build.ID;

if (id.length() > 0) {

buffer.append(" Build/");

buffer.append(id);

}

final String base = mContext.getResources().getText(

com.android.internal.R.string.web_user_agent).toString();

return String.format(base, buffer);

}

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

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的代码为: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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android UserAgent 批量生成指的是通过程序一次性生成多个 Android 设备的 UserAgentUserAgent 是一个 HTTP 请求的头部信息,用于标识浏览器或客户端的身份。生成不同的 UserAgent 可以用于模拟不同的 Android 设备,测试或爬虫等用途。 要批量生成 Android UserAgent,可以使用编程语言(如 Python、Java 等)编写一个脚本,通过循环生成不同的 UserAgent。生成 UserAgent 时需要考虑以下几点: 1. Android 版本:可以选择不同的 Android 版本,如 Android 4.4、Android 5.0、Android 6.0 等。 2. 设备型号:可以选择不同的设备型号,如 Samsung Galaxy S10、Google Pixel 3、OnePlus 7 等。 3. 浏览器:可以选择不同的浏览器,如 Chrome、Firefox、Opera 等。 4. 随机化:可以对上述参数进行随机化,以模拟更多不同的设备和浏览器组合。 以下是一个使用 Python 生成 Android UserAgent 的简单示例: ``` import random android_versions = ["Android 4.4", "Android 5.0", "Android 6.0"] device_models = ["Samsung Galaxy S10", "Google Pixel 3", "OnePlus 7"] browsers = ["Chrome", "Firefox", "Opera"] user_agents = [] # 循环生成 UserAgent for _ in range(10): # 生成 10 个 UserAgent android_version = random.choice(android_versions) device_model = random.choice(device_models) browser = random.choice(browsers) user_agent = f"Mozilla/5.0 ({android_version}; {device_model}) AppleWebKit/537.36 (KHTML, like Gecko) " \ f"{browser}/73.0.3683.75 Mobile Safari/537.36" user_agents.append(user_agent) # 打印生成的 UserAgent for user_agent in user_agents: print(user_agent) ``` 该示例生成了 10 个随机的 Android UserAgent,并输出到控制台。可以根据需要调整生成的数量、可选参数等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值