summaryrefslogtreecommitdiffstats
path: root/core/java/com/android/internal/os/RuntimeInit.java
diff options
context:
space:
mode:
authorJesse Wilson <jessewilson@google.com>2009-09-18 18:06:43 -0700
committerJesse Wilson <jessewilson@google.com>2009-09-18 18:16:16 -0700
commitd0f80d445644bfc08b62339f01766b924e42dc4d (patch)
tree9899ca93cb995318bed07d10a7053c0f52d2cc1d /core/java/com/android/internal/os/RuntimeInit.java
parentc3a3b399a9d7707b7f3c4108e0e31a1b664a6f22 (diff)
downloadframeworks_base-d0f80d445644bfc08b62339f01766b924e42dc4d.zip
frameworks_base-d0f80d445644bfc08b62339f01766b924e42dc4d.tar.gz
frameworks_base-d0f80d445644bfc08b62339f01766b924e42dc4d.tar.bz2
Setting the default HTTP user agent at runtime init.
I can't do this in HttpURLConnection directly, since that would cause a forbidden dependency from Dalvik on Android.
Diffstat (limited to 'core/java/com/android/internal/os/RuntimeInit.java')
-rw-r--r--core/java/com/android/internal/os/RuntimeInit.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/core/java/com/android/internal/os/RuntimeInit.java b/core/java/com/android/internal/os/RuntimeInit.java
index 4e6f9ca..c782c8c 100644
--- a/core/java/com/android/internal/os/RuntimeInit.java
+++ b/core/java/com/android/internal/os/RuntimeInit.java
@@ -25,6 +25,7 @@ import android.os.Process;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemProperties;
+import android.os.Build;
import android.server.data.CrashData;
import android.util.Config;
import android.util.Log;
@@ -111,6 +112,12 @@ public class RuntimeInit {
new AndroidConfig();
/*
+ * Sets the default HTTP User-Agent used by HttpURLConnection.
+ */
+ String userAgent = getDefaultUserAgent();
+ System.setProperty("http.agent", userAgent);
+
+ /*
* If we're running in an emulator launched with "-trace", put the
* VM into emulator trace profiling mode so that the user can hit
* F9/F10 at any time to capture traces. This has performance
@@ -126,6 +133,36 @@ public class RuntimeInit {
}
/**
+ * Returns an HTTP user agent of the form
+ * "Dalvik/1.1.0 (Linux; U; Android Eclair Build/MASTER)".
+ */
+ private static String getDefaultUserAgent() {
+ StringBuilder result = new StringBuilder(64);
+ result.append("Dalvik/");
+ result.append(System.getProperty("java.vm.version")); // such as 1.1.0
+ result.append(" (Linux; U; Android ");
+
+ String version = Build.VERSION.RELEASE; // "1.0" or "3.4b5"
+ result.append(version.length() > 0 ? version : "1.0");
+
+ // add the model for the release build
+ if ("REL".equals(Build.VERSION.CODENAME)) {
+ String model = Build.MODEL;
+ if (model.length() > 0) {
+ result.append("; ");
+ result.append(model);
+ }
+ }
+ String id = Build.ID; // "MASTER" or "M4-rc20"
+ if (id.length() > 0) {
+ result.append(" Build/");
+ result.append(id);
+ }
+ result.append(")");
+ return result.toString();
+ }
+
+ /**
* Invokes a static "main(argv[]) method on class "className".
* Converts various failing exceptions into RuntimeExceptions, with
* the assumption that they will then cause the VM instance to exit.