Соединение с Интернетом через Android

Как вы наверное знаете, сейчас в Android SDK (после Android 3.0 и выше) следует избегать выполнения длительных операций в потоке пользовательского интерфейса UI. Т.е. сетевые операции нужно выполнять в отдельном потоке. Android выбрасывает исключение NetworkOnMainThreadException, если это условие не выполняется...
Убрать (ВРЕМЕННО!!!) это ограничение с помощью этого кода. Пишите в методе обратного вызова onCreate() в вашей Activity.

StrictMode.ThreadPolicy policy = new StrictMode.
ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

Для проверки Интернет соединения в Android можно использовать следующий код.
public boolean isNetworkAvailable() {
    ConnectivityManager cm = (ConnectivityManager)
      getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();
    // Если сеть не доступна, networkInfo вернет null
    if (networkInfo != null && networkInfo.isConnected()) {
        return true;
    }
    return false;
}

Добавьте еще в AndroidManifest.xml разрешение:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

А если вы тестируете в Android-симуляторе за прокси, то Вы можете установить настройки прокси через класс Settings. Например, добавьте следующую строку в ваш метод OnCreate в Activity.
Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "myproxy:8080");

И добавьте permission
android.permission.WRITE_SETTINGS
в Ваш AndroidManifest.xml.