[Android] How to set proxy for android browser
There are many reasons to make browser serf pages through proxy server:
- someone wanna catch http requests/responses
- someone wanna hide his IP
- so on
What to do if you want set proxy for android browser? there some ways:
- add record to database: /data/data/com.android.providers.settings/databases/settings.db
- pull database to pc add record (using for example sdk tool sqlite3) and replace existing db
- make changes in database directly on device
but as for me there exist simplier way, do it by your Java application using Settings provider:
Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "proxy_ip:proxy_port");
where proxy_ip/proxy_port = IP/port of proxy that you going to use.
there left one problem, it will not work if we will not add one string to manifest file, here it is:
<uses-permission android:name=”android.permission.WRITE_SETTINGS” />
Thats all, now it works, here is code:
package com.BrowserSettings;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.provider.Settings;
public class BrowserSettingsUI extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button button = (Button) findViewById(R.id.Button01);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
try
{
Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "127.0.0.1:100");//enable proxy
}catch (Exception ex){
}
}
});
final Button button2 = (Button) findViewById(R.id.Button02);
button2.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
try
{
Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "");//disable proxy
}catch (Exception ex){
}
}
});
}
}
manifest file:
<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
package=”com.BrowserSettings”
android:versionCode=”1″
android:versionName=”1.0.0″>
<application android:icon=”@drawable/icon” android:label=”@string/app_name”>
<activity android:name=”.BrowserSettingsUI”
android:label=”@string/app_name”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
</application>
<uses-permission android:name=”android.permission.WRITE_SETTINGS” />
</manifest>
Filed under: Programming
May 24th, 2010 at 7:13 am
username:password@ip.ip.ip.ip:port
May 4th, 2010 at 4:04 pm
Ok, i implemented it in the Android SDK 2.1 and it didn’t work, so i build in a check to see if the value was set correctly. Am i doing something wrong? I built in the check:
————-
TextView statusbar = (TextView) findViewById(R.id.TextView01);
String proxy = Settings.System.getString(getContentResolver(),Settings.System.HTTP_PROXY);
statusbar.setText(”The proxy is now: “+proxy);
————-
The value is consistently ‘null’ at the beginning before doing anything, after setting (button 1) and after disabling (button 2). Am i doing the check wrong, or is the http_proxy indeed not set?
April 14th, 2010 at 9:11 pm
[…] routen? Gib mal bei google "android" und "proxy" ein, da kommt z.B. diese Seite, wo man nach etwas Handarbeit einen Proxy f?r den Browser hat. Oder du suchst dir ne App im […]
January 29th, 2010 at 12:37 pm
With the message before I meant that the code works fine and doesn’t produce any errors, but that I’m still unable to use the internet under a proxy.
January 29th, 2010 at 12:36 pm
Hi, I compiled the code but it doesn’t work in my mobile. I have an HTC Tattoo with Android 1.6
If anyone wants to try, I uploaded the application .apk, you can download it here: http://www.megaupload.com/?d=NLNYQ4S3 . It’s just Alex’s code with an additional text line saying if the proxy is on or off. It doesn’t work for me, but maybe you can give it a try.
January 21st, 2010 at 1:26 am
[…] Ci sto sbattendo la testa da due giorni e pare che questo sia l’unica via percorribile…ma mi sembra un gran […]
December 7th, 2009 at 4:00 pm
[…] abnimmt, kenne ich auch nicht. Let’s talk about Google Android: Set proxy for android web browser Android Set up Proxy | Alex Mogurenko`s Blog Evtl. ProxySurf v1.1 Application for Android | Communication ? Sieht aber eher nicht so gut aus. […]
December 4th, 2009 at 3:13 pm
I am also behind a corporate proxy. I should use my username and password.
How should I specify the user name and password?
October 22nd, 2009 at 8:34 pm
I tried to build the app as you suggest, but if I lanch it I get a force close..
Could you please revise the code (or even build a usable apk)?
I’d really appreciate!
October 13th, 2009 at 11:51 pm
I am behind a corporate proxy so not only I need to provide Proxy HOST and PORT but also Username and Password. Any idea how I can do that?
Thanks