2016-09-09 12 views
0

私はモバイルデータの有効/無効イベントをキャプチャする必要があるトラッキングアプリケーションで作業しています。モバイルデータをキャプチャする方法アンドロイドのイベントを有効/無効にする

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(); 

     } 

が、私は唯一のインターネットのステータスを持って、このコードスニペットを使用して:私は正常にインターネットには、次のコードで/無効ブロードキャストを有効に取得することができています。データが無効かどうか、またはネットワークエリアがないかどうかは、両方の条件で発生します。モバイルデータを手動で無効にする場合にのみ起動するブロードキャストが必要です。

+0

私はこの[リンク](http://stackoverflow.com/q/12806709/5241603)の質問は、あなたの質問に答える見つけます。見てみましょう。 –

+0

試してみてください.http://www.androidhive.info/2012/07/android-detect-internet-connection-status/ –

答えて

0

はコードの下に試してみてください。

 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 
     } 
関連する問題