2016-09-09 5 views
0

Ich arbeite an einer Tracking-App, wo ich mobile Daten erfassen muss aktivieren/deaktivieren Ereignis. Ich bin erfolgreich in der Lage Internet aktivieren/deaktivieren Sendung durch den folgenden Code zu erhalten:So erfassen Sie mobile Daten aktivieren/deaktivieren Ereignis in Android

private BroadcastReceiver networkInfoReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 

      ConnectivityManager connect = (ConnectivityManager) getSystemService(getBaseContext().CONNECTIVITY_SERVICE); 
      NetworkInfo network = connect.getActiveNetworkInfo(); 
      if (network == null || !network.isConnected()) { 
       sharedPreferencesEditor.putBoolean(Constants.INTERNET_STATUS,false); 
      } else { 
       sharedPreferencesEditor.putBoolean(Constants.INTERNET_STATUS,true); 
      } 
      sharedPreferencesEditor.commit(); 

     } 

aber durch diesen Code-Schnipsel mit Internet-Status Ich habe nur. Es wird in beiden Bedingungen ausgelöst werden, ob Daten deaktivieren oder kein Netzwerkbereich. Aber ich brauche eine Sendung, die nur dann ausgelöst wird, wenn mobile Daten manuell deaktiviert werden.

+0

Ich finde das [link] (http://stackoverflow.com/q/12806709/5241603) Frage Ihre Frage beantworten. Schau mal. –

+0

versuchen Sie dies .. http://www.androidhive.info/2012/07/android-detect-internet-connection-status/ –

Antwort

0

Try unten Code:

 boolean mobileDataEnabled = false; 
     ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     try { 
      Class cmClass = Class.forName(cm.getClass().getName()); 
      Method method = cmClass.getDeclaredMethod("getMobileDataEnabled"); 
      method.setAccessible(true); 
      mobileDataEnabled = (Boolean)method.invoke(cm); 
     } 
     catch (Exception e) {   
      // TODO do whatever error handling you want here 
     } 
Verwandte Themen