1

WiFi がオフラインになるたびにアプリケーションに通知を送信する必要があります。

WiFi接続が変わるたびに通知するようにしました。しかし、オフラインになったときにのみ通知する必要があります。

また、(アプリケーションの)起動時に通知します。

私の質問は、WiFi がオフラインになったときにのみ通知するようにコードを変更するにはどうすればよいですか? オフライン、オンライン、起動時に通知が表示されるようになりました。

コード:

     public class MainActivity extends Activity { 
     @Override
     protected void onCreate(Bundle savedInstanceState) {        

     super.onCreate(savedInstanceState);  
     this.registerReceiver(this.mConnReceiver,
        new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
     setContentView(R.layout.activity_main);
     }

     private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
     public void onReceive(Context context, Intent intent) {
     boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
     String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
     boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);

     NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
     NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);

     if(currentNetworkInfo.isConnected()){

     }else{
        showNotification();
     }
 }
};
4

1 に答える 1

1

このようにしてみてください:

if(currentNetworkInfo != null &&
     currentNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI &&
     currentNetworkInfo.getState() == NetworkInfo.State.DISCONNECTING) {
    showNotification();
}

他にも考えられる状態 ( などNetworkInfo.State.DISCONNECTED) があり、ここで完全なリストを見つけることができます: http://developer.android.com/reference/android/net/NetworkInfo.State.html

于 2013-10-15T18:42:43.700 に答える