2012-06-26 3 views
2

Я использую HttpClient для публикации, а затем извлекаю что-то в Android, что отлично работает, но когда у меня нет подключения к интернету, он заставляет закрыть, это их способ поймать UnknownHostException при создании HttpPost? Я знаю, что я могу убедиться, что он подключен к Интернету, прежде чем делать запрос, но как насчет того, что на телефоне нет сервиса?Как вы поймаете UnknownHostException в Android?

+0

Checkout этого ответа о Андроиде 'ConnectivityManager': http://stackoverflow.com/a/4009133/180740 –

+0

возможного дубликата [Как проверить доступ в Интернете на Android? InetAddress никогда не отключается] (http://stackoverflow.com/questions/1560788/how-to-check-internet-access-on-android-inetaddress-never-timeouts) –

ответ

6

UnknownHostException является подклассом IOException, так что вы должны быть в состоянии поймать/управлять он просто ловит IOException или что-то более конкретное (NoRoute, ConnectTimeout и т. д.)

Также рассмотрите возможность добавления проверки соединения перед тем делает сеть звонков с ConnectivityManager

+1

Спасибо! Именно то, что я хотел знать :) –

3

вы можете проверить для Интенет связи с

  ConnectivityManager cm = (ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE); 
      if (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected() || cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) { 
        //connected 
      } else { 
        //not connected 
      } 

и установить права доступа в AndroidManifest

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
Смежные вопросы