关于Android的Browser UserAgent一般有:DESKTOP_USERAGENT, IPHONE_USERAGENT,IPAD_USERAGENT, ANDROID_USERAGENT这几种,当然可以根据需求自己添加其他的UserAgent。
涉及到修改UserAgent的问题,一般会修改以下几个文件:
/package/apps/Browser/src/com/android/BrowserSettings.java
/package/apps/Browser/res/values/strings.xml
/package/apps/Browser/res/xml/debug_perferences.xml
具体操作如下:
一、 在BrowserSettings.java文件中操作(标红为要做的修改):
private static final String DESKTOP_USERAGENT = "Mozilla/5.0 (X11; " +
"Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) " +
"Chrome/11.0.696.34 Safari/534.24";
private static final String IPHONE_USERAGENT = "XXX";
private static final String IPAD_USERAGENT = "XXX";
如果需要修改为以上几种没有的UserAgent,则需要在此处增加一个UserAgent;
例:增加一个ANDROID_USERAGENT,在此处增加:
private static final String ANDROID_USERAGENT = "XXX";
private static final String USER_AGENTS[] = { ANDROID_USERAGENT,
DESKTOP_USERAGENT,
IPHONE_USERAGENT,
IPAD_USERAGENT,
};
注:此处的顺序应当与Strings.xml文件中的一致!
public int getUserAgent() {
return Integer.parseInt(mPrefs.getString(PREF_USER_AGENT, "0"));
此处和debug_perferences.xml文件中的user_agent关联,都是用来设置默认的UserAgent。
}
二、在strings.xml文件中操作(标红为要做的修改):
<string-array name="pref_development_ua_choices" translatable="false">
<item>Android</item>
<item>Desktop</item>
<item>iPhone</item>
<item>iPad</item>
</string-array>
<!-- Do not tranlsate. Development option -->
<string-array name="pref_development_ua_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
想要添加则需要在这两个string-array中都添加,往后添加。
三、在debug_perferences.xml文件中操作(标红为要做的修改):
<ListPreference
android:key="user_agent"
android:title="@string/pref_development_uastring"
android:entries="@array/pref_development_ua_choices"
android:entryValues="@array/pref_development_ua_values"
android:defaultValue="0"/>
若想修改默认的UserAgent,则需要在此处修改defaultValue的值,对应strings.xml文件中pref_development_ua_values。
UserAgent Type:
https://vardars.wordpress.com/2011/12/08/browser-user-agent-types-iphone-ipad-android-etc/
最后想查看结果的话,可以在BrowserSettings.java中添加
Log.i("BrowserSettings","current user agent >>>>>>>>>>> "+mCustomUserAgents.get(settings));
修改完成后编译Browser,将编译完的apk安装运行,输入命令
logcat -s BrowserSettings 查看UserAgent是不是自己想要的UserAgent。
注:Browser UserAgent根据源码可以看到是保存到本地sharePreference文件中的,因此,修改完重新安装时需要将数据清空或者删除掉本地的这个文件才能生效!