Как проверить доступность сети на Honeycomb? - PullRequest
1 голос
/ 28 ноября 2011

Я пытаюсь проверить, доступно ли простое соединение в моем сотовом приложении.Я испробовал 2 разные версии этой функции:

    public boolean networkAvailable() {
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
     return cm.getActiveNetworkInfo().isConnectedOrConnecting();
    }

и

    private boolean networkAvailable(){
    ConnectivityManager connectionManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = connectionManager.getActiveNetworkInfo();

    return activeNetwork != null;
}

Ни одна из этих функций не работает на моем планшете Honeycomb, они терпят крах везде, где я пытаюсь их вызвать.Есть ли конкретный способ сделать это на 3.2 или ... что мне не хватает?

Ответы [ 2 ]

4 голосов
/ 28 ноября 2011

Это должно работать.Вы даже можете различать тип доступной сети.Убедитесь, что у вас есть следующие разрешения, объявленные в манифесте.

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>


public void checkkStatus()
 {
 final ConnectivityManager connMgr = (ConnectivityManager)
 this.getSystemService(Context.CONNECTIVITY_SERVICE);

 final android.net.NetworkInfo wifi =
 connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

 final android.net.NetworkInfo mobile =
 connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

 if( wifi.isAvailable() ){
 Toast.makeText(this, "Wifi" , Toast.LENGTH_LONG).show();
 }
 else if( mobile.isAvailable() ){
 Toast.makeText(this, "Mobile 3G " , Toast.LENGTH_LONG).show();
 }
 else
 {Toast.makeText(this, "No Network " , Toast.LENGTH_LONG).show();}
 }
0 голосов
/ 28 ноября 2011

Попробуйте:

   public boolean isOnline() {
         ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
         return cm.getActiveNetworkInfo().isConnectedOrConnecting();
   }
...