默认的Android的Browser中无法设置User Agent,但是在Browser的源码中可以看到,android提供了4中User Agent 具体代码如下:

在Browser的src/com/android/browser/BrowserSettings.java

 private static final String DESKTOP_USERAGENT = "Mozilla/5.0 (Macintosh; " +            "U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/533.16 (KHTML, " +            "like Gecko) Version/5.0 Safari/533.16";    private static final String IPHONE_USERAGENT = "Mozilla/5.0 (iPhone; U; " +            "CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 " +            "(KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7";    private static final String IPAD_USERAGENT = "Mozilla/5.0 (iPad; U; " +            "CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 " +            "(KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10";    private static final String FROYO_USERAGENT = "Mozilla/5.0 (Linux; U; " +            "Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 " +            "(KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";



提供了4中不同的User Agent,但是在浏览器中无法进行设置。


在Browser的setting中添加设置User Agent的选项:

1.在 res/xml/browser_preferences.xml中添加:

    <ListPreference        android:key="user_agent"        android:title="@string/pref_user_agent"        android:defaultValue="1"        android:entries="@array/pref_user_agent_options"        android:entryValues="@array/pref_user_agent_values"        android:dialogTitle="@string/pref_user_agent_dialogtitle" />

2.在res/value/string.xml中添加对应的字符串,多语言的具体到不同的文件夹(自己添加)

    <string name="pref_user_agent">User agent</string>     <string name="pref_user_agent_dialogtitle"  translatable="false">User Agent</string>    <string-array name="pref_user_agent_options">        <item>Desktop</item>        <item>Mobile</item>        <item>Ipad</item>
        <item>Froyo</item>

    </string-array>    <string-array name="pref_user_agent_values" translatable="false">        <item>1</item>        <item>2</item>        <item>3</item>
        <item>4</item>    </string-array>

3. 在 src/com/android/BrowserSettings.java 中添加

public final static String PREF_USER_AGENT = "user_agent";

4.在 src/com/android/BroserPreferencesPage.java 中添加

private CharSequence getVisualUserAgent(String enumName){                    CharSequence result = "";                    CharSequence[] visualNames = getResources().getTextArray(                            R.array.pref_user_agent_options);                    CharSequence[] enumNames = getResources().getTextArray(                            R.array.pref_user_agent_values);                    if(visualNames.length == enumNames.length){                        for(int i=0; i<enumNames.length; i++){                            if(enumNames[i].equals(enumName)){                                result = visualNames[i];                                                                                                                        }                                                                                            }                    }                    return result;        }

5.在BroserPreferencesPage.java的OnCreate方法中添加

e = findPreference(BrowserSettings.PREF_USER_AGENT);    e.setOnPreferenceChangeListener(this);    e.setSummary(getVisualUserAgent(        getPreferenceScreen().getSharedPreferences()        .getString(BrowserSettings.PREF_USER_AGENT, null)));

6.在BroserPreferencesPage.java的onPreferenceChange 方法中添加


else if (pref.getKey().equals(BrowserSettings.PREF_USER_AGENT)){        pref.setSummary(getVisualUserAgent((String)objValue));        return true;    }


更多相关文章

  1. 3.EditText控件
  2. Android:EditText学习总结
  3. Android滑动手势侦测方法介绍
  4. Android(安卓)ListView控件基本用法
  5. Activity背景色为透明的2种方法
  6. layout布局属性
  7. Android(安卓)防止启动页面(SplashActivity)被多次启动(笔记)
  8. Android(安卓)设置图片倒影效果
  9. Android(安卓)RecycleView

随机推荐

  1. Android编译系统二
  2. Android本地语音识别引擎PocketSphinx-语
  3. 配置Android开发环境
  4. Eclipse 中打不开android sdk managerf
  5. android boot 代码流程
  6. Android:音乐特效控制
  7. 五.在Android中实现线程的方法
  8. Android:activity context, application
  9. android前端与java web后台的ssl交互
  10. Android中设置控件可见与不可见详解