2013-10-15 121 views
1

我需要我的應用程序在WiFi下線時發出通知。每次通知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(); 
    } 
} 
}; 

謝謝!

+0

你是什麼題?您向我們展示了一些代碼,但沒有解釋它帶來的問題。 –

+0

我編輯的問題..的 – user2883477

+0

重複[通知每次wifi的斷開(http://stackoverflow.com/questions/19402544/notification-everytime-wifi-is-disconnected) - 請編輯您的問題,而不是發佈新(重複)一個。 – showdev

回答

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

+0

沒有工作。當我關閉WiFi時,我沒有收到通知。謝謝你的建議。 – user2883477