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 回答