2011-11-02 20 views

risposta

7

Al di sotto di alcune funzioni di utilità di rete che utilizzo attraverso le mie app, tutto funziona come un incantesimo! e per la posizione di polling, sicuramente ->https://github.com/commonsguy/cwac-locpoll

speranza che questo aiuta ...

public static boolean checkInternetConnection(Context context) { 

    ConnectivityManager conMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 

    // ARE WE CONNECTED TO THE NET? 
    if (conMgr.getActiveNetworkInfo() != null 
      && conMgr.getActiveNetworkInfo().isAvailable() 
      && conMgr.getActiveNetworkInfo().isConnected()) { 
     return true; 
    } else { 
     Log.w(TAG, "Internet Connection NOT Present"); 
     return false; 
    } 
} 
    public static boolean isConnAvailAndNotRoaming(Context context) { 

    ConnectivityManager conMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 

    if (conMgr.getActiveNetworkInfo() != null 
      && conMgr.getActiveNetworkInfo().isAvailable() 
      && conMgr.getActiveNetworkInfo().isConnected()) { 

     if(!conMgr.getActiveNetworkInfo().isRoaming()) 
      return true; 
     else 
      return false; 
    } else { 
     Log.w(TAG, "Internet Connection NOT Present"); 
     return false; 
    } 
} 
    public static boolean isRoaming(Context context) { 

    ConnectivityManager conMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 

    return (conMgr.getActiveNetworkInfo()!=null && conMgr.getActiveNetworkInfo().isRoaming()); 
} 
0

è il fornitore nella lista restituita da getProviders(true); pure? Forse quel dispositivo pensa che il provider di localizzazione di rete debba sempre essere abilitato a fornire un PASSIVE_PROVIDER? Sembra spezzato per me. Su quali dispositivi Samsung vedi questo comportamento?

3

si può anche provare in questo modo:

public boolean isDataConnectionAvailable(Context context){ 
     ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo info = connectivityManager.getActiveNetworkInfo(); 
     if(info == null) 
      return false; 

     return connectivityManager.getActiveNetworkInfo().isConnected(); 
} 

public boolean isGpsEnabled(LocationManager manager){ 
     if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
      return false; 
     } 
     return true; 
} 

public boolean isLocationByNetworkEnabled(LocationManager manager){ 
     if (!manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 
      return false; 
     } 
     return true; 
} 
Problemi correlati