2016-05-24 7 views
0

紛失したネットワークユースケースをテスト/実装しようとしています。私は下記のようなコードを持っています。android Connectivity_Change broadcastreceiverが一貫して呼び出されないのを修正しました

私はGalaxy S6で実行します。モバイルデータとWi-Fiの両方を有効にしています。

がネットワークを無効にするには、私は「機内モード」をオンに

私の問題がある:私はアンドロイドのスタジオからアプリを再起動した場合、私はと呼ばれるConnectionChangeReceiver.onReceive()を得るのですか

。しかし、飛行機モードを数回オン/オフした後、私はonReceive()を呼び出しません。

スタジオでブレークポイントを設定して、コールされているかどうかを確認します。

何か不足していますか?アンドロイド5.0以上で

public class ConnectionChangeReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     // get Connectivity Manager object to check connection 
     ConnectivityManager connectivityManager =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); 

     // Check for network connections 
     if (activeNetInfo != null && activeNetInfo.isConnected()) { 
      Intent newintent = new Intent(BroadcastedIntentFilters.INTERNET_CONNECTED); 
      LocalBroadcastManager.getInstance(context).sendBroadcast(newintent); 
     } 
    } 
} 
マニフェストファイルで

<receiver 
     android:name=".Network.ConnectionChangeReceiver" 
     android:exported="true" 
     android:label="NetworkConnection" > 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
      <action android:name="android.net.wifi.STATE_CHANGE"/> 
     </intent-filter> 
    </receiver> 


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

答えて

6

あなたはBroadcastReveiverに耳を傾けなければならない以前のバージョンと比較して異なっているconnectivityManager.registerNetworkCallbackによって変更を監視する必要があります。

すべてのAndroidバージョンをサポートし、変更を監視して現在の状態についても尋ねることができるシンプルなクラスを作成しました。

https://github.com/mklimek/network-availability

+0

今のところ、この作品のように見えます。私はまだテスト中で、問題があれば質問します。 – GJain

0

私は、そのタスクのためにいくつかのリンクを見つける: no. 1 no. 2

希望が完全に動作します。 あなたのコード時間をお楽しみください:)

関連する問題