Como verificar a disponibilidade da rede?

Preciso conectar meu aplicativo ao servidor, usando wifi (se estiver disponível) ou gprs (se o wifi não estiver disponível). Aqui está o meu código para verificar a disponibilidade da conexão

public static final boolean isConnectionAvailable(Activity a)
{  

  ConnectivityManager cm = (ConnectivityManager)a.getSystemService(Context.CONNECTIVITY_SERVICE);

  State mobile = cm.getNetworkInfo(0).getState();

  State wifi = cm.getNetworkInfo(1).getState();

  if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING)
    {
        return true;
    }
  if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING)
    {
        return true;
    }

   return false;
}      

Esta é uma maneira correta? Alguém pode me sugerir uma maneira melhor?

questionAnswers(2)

yourAnswerToTheQuestion