1. 程式人生 > >Android獲取瀏覽器User Agent

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

相關推薦

Android獲取瀏覽器User Agent

獲取瀏覽器User Agent的程式碼: WebView webview; webview = new WebView(this); webview.layout(0, 0, 0, 0); WebSettings settings = webvi

設置兩個div是總是不能重合瀏覽器user agent stylesheet問題

F12 css log .cn com -1 -s img agent 如圖 兩個div之間總是有一個空行,設置了margin為0還是沒卵用,f12調試發現 多了一個user agent stylesheet樣式,經百度是瀏覽器自帶的樣式 重新為div內的元素ul設置cs

Chrome改動瀏覽器User Agent

mozilla trac 右鍵 gen art user bsp n) .exe 對瀏覽器快捷方式右鍵->改動目標項為 C:\Users\LJ\AppData\Local\Google\Chrome\Application\chrome.exe --user-ag

常見瀏覽器User-Agent字串的收集整理

Opera Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60 Oper

將電腦瀏覽器User-Agent識別改成手機瀏覽器UA幾種簡單方法

第一種方法:修改瀏覽器的快捷方式 右擊桌面上的Chrome瀏覽器圖示,在彈出的右鍵選單中選擇“複製”,複製一個圖示副本到桌面。右擊該副本,選擇“屬性”,開啟相應的對話方塊,在“目標”文字框的字元後面新增以下語句: --user-agent="Android",如下圖:  --user-agent

瀏覽器 User-Agent 大全

一、基礎知識Http Header之User-AgentUser Agent中文名為使用者代理,是Http協議中的一部分,屬於頭域的組成部分,User Agent也簡稱UA。它是一個特殊字串頭,是一種向訪問網站提供你所使用的瀏覽器型別及版本、作業系統及版本、瀏覽器核心、等資訊的標識。通過這個標識,使用者所訪問

時下流行的瀏覽器User-Agent大全

  一、基礎知識篇: HttpHeader之User-Agent UserAgent中文名為使用者代理,是Http協議中的一部分,屬於頭域的組成部分,UserAgent也簡稱UA。它是一個特殊字串頭,是一種向訪問網站提供你所使用的瀏覽器型別及版本、作業系統及版本、瀏覽器核心、等資訊的標

Python爬蟲之瀏覽器User-Agent大全

一、基礎知識篇:Http Header之User-Agent    User Agent中文名為使用者代理,是Http協議中的一部分,屬於頭域的組成部分,User Agent也簡稱UA。它是一個特殊字串頭,是一種向訪問網站提供你所使用的瀏覽器型別及版本、作業系統及版本、瀏覽器

整理時下流行的瀏覽器User-Agent大全

 一、基礎知識篇: Http Header之User-Agent     User Agent中文名為使用者代理,是Http協議中的一部分,屬於頭域的組成部分,User Agent也簡稱UA。它是一個特殊字串頭,是一種向訪問網站提供你所使用的瀏覽器型別及版本、作業系統及

為什麼瀏覽器User-agent總是有Mozilla字樣

你是否好奇標識瀏覽器身份的User-Agent,為什麼每個瀏覽器都有Mozilla字樣?Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.9

修改瀏覽器User Agent

利用偽裝的user-agent 來模擬手機訪問,獲得不同系統不同瀏覽器的請求結果。 便捷有效的(懶人)方法->【Chrome瀏覽器】 1.開啟瀏覽器 ,按F12進入開發者模式。找到【network conditions】: 2.好像在圖1.說

瀏覽器User Agent Switcher Options實現模擬瀏覽器 附(UA下載)

電腦瀏覽器除錯手機站怎麼辦? 看看這個瀏覽器的User Agent Switcher Options (只添加了火狐、谷歌的...) 話不多說,大家安裝完畢效果就有了。 需要準備: 1. 安裝瀏覽器外掛:User Agent Switcher Options

微信瀏覽器與企業微信瀏覽器user agent比較

iphone 6 plus中微信瀏覽器與企業微信瀏覽器擷取的ua企業微信:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobi

修改瀏覽器User-Agent

一、說明  許多使用都是根據User-Aget來判斷當前瀏覽器的版本,瀏覽器 所在系統的版本等。 所以很多時候在測試時手動制定User-Anget是有必要的 。 二、Firefox 修改(推薦) Firefox: 1,在位址列輸入"about:config”,按回車鍵

Java通過瀏覽器請求頭(User-Agent獲取 瀏覽器型別,作業系統型別,手機機型

一:獲得瀏覽器請求頭中的User-Agent   ? 1 String ua = request.getHeader("User-Agent") 二:獲得瀏覽器型別,作業系統型別:(注意,UserAgent類在U

瀏覽器默認樣式(user agent stylesheet)+cssreset

bject orange port borde 問題 2.0 light new utf-8 每種瀏覽器都有一套默認的樣式表,即user agent stylesheet,在寫網頁時,沒有指定的樣式,按瀏覽器內置的樣式表來渲染。這是合理的,像word中也有一些預留樣式,可以

查看瀏覽器UsER-aGENT

and service use oid aid ebs agen music andro aNDROID%E4%B8%AD%E8%B0%83%E7%94%A8WEBsERVICE http://music.hao123.com/songlist/495694420 ht

Selenium中通過修改User-Agent標識將PhantomJS偽裝成Chrome瀏覽器

python爬蟲文章首發個人博客:http://zmister.com/archives/179.htmlPython爬蟲、GUI開發、滲透測試、機器學習,盡在http://zmister.com/在寫爬蟲的過程中,出於系統環境或是效率的問題,我們經常使用PhantomJS作為Selenium操縱的瀏覽器we

為什麽每個瀏覽器User-Agent都有Mozilla字樣?

freebsd 失敗 chrome post 計算 爆發 linu 驅動程序 應用中心 你是否好奇標識瀏覽器身份的User-Agent,為什麽每個瀏覽器都有Mozilla字樣?Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/5

從 HTTPServletRequest 中根據 User-Agent 獲取訪問裝置資訊

背景:根據 HttpServletRequest獲取訪問裝置資訊。 Http 協議請求頭中的 User-Agent屬性會將客戶端裝置的資訊傳遞給伺服器,這些資訊包括客戶端作業系統及版本、CPU 型別、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器外掛等。 參考: 使用者代理(U