Android 2.3.3 интернет работает на моем Galaxy S, но не на моем Galaxy Tab? (Разрешение?)

1

У меня есть эта странная проблема. Я извлекаю твиттеры, и он работает на эмуляторе, а также на моей Samsung Galaxy S, но он не работает на моей Galaxy Tab 10.1?

Такое же приложение установлено как на телефоне, так и на вкладке. Создано из Eclipse, поэтому нет отладки или чего-то еще.

Необходимы разные разрешения?

Это код:

HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(searchUrl);

ResponseHandler<String> responseHandler = new BasicResponseHandler();

responseBody = client.execute(get, responseHandler);

и это проявление:

<uses-sdk android:minSdkVersion="10" />

<uses-permission android:name="android.permission.INTERNET"  />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  • 0
    Патрик, вы когда-нибудь решали эту проблему?
Теги:
ui-thread
httpurlconnection
android-4.0

2 ответа

6
Лучший ответ

Клянусь, этот вопрос задают каждый день здесь, в StackOverflow. :)

Проблема в том, что вы выполняете сетевой доступ к основному потоку пользовательского интерфейса. Android 3.0 и выше приведет к сбою приложения (то есть система будет генерировать исключение NetworkAccessOnMainThread), если вы попытаетесь выполнить HTTP-запрос в основном потоке. Вам нужно обернуть свой HTTP-запрос в AsyncTask (или Thread of some AsyncTask), чтобы убедиться, что вы не блокируете поток пользовательского интерфейса.

Читайте мой блог на эту тему:

Почему мороженое сэндвич сбивает ваше приложение

  • 0
    да это оно! :)
  • 0
    Ха-ха, я даже не шучу. Я отвечаю на этот вопрос 4-5 раз в неделю. Половина моих любимых тегов SO связана с HTTP, несмотря на то, что я ничего не знаю о http-запросах :)
Показать ещё 4 комментария
3

Используйте этот код, он работает для меня.

if (android.os.Build.VERSION.SDK_INT > 8) {

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

    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню