2011-07-07 92 views
4

我有需要聽取網絡改變廣播接收器 -Android的 - 網絡國家廣播接收器沒有收到意向

BroadcastReceiver networkStateReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     boolean noConnectivity = 
      intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); 
     if(!noConnectivity) 
     { 
      //some stuff 
     } 
    } 
}; 

我用它註冊 -

public void startListening() { 
     IntentFilter filter = new IntentFilter(); 
     filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 
     context.registerReceiver(networkStateReceiver, filter); 
} 

我已經添加了以下清單中的許可 -

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

networkStateReceiver仍然沒有收到當我將手機切換到飛行模式,切換無線等等時,我有意圖嗎?我錯過了什麼嗎?

+4

我嘗試同樣的問題......你有沒有解決? – Blackbelt

回答

-3

可以能夠使用此:

起初@覆蓋

之前添加此
private boolean isConnected = true; 
private Context c; 

然後用它

//check for connectivity: 
ConnectivityManager connectivityManager = (ConnectivityManager) 
c.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo TestConnetion = connectivityManager.getActiveNetworkInfo(); 
if (TestConnetion == null){ 
isConnected=false; 
} 
+0

這是爲什麼回答這個問題?這如何幫助將意圖發送給接收方? –

4

嘗試使用這個動作來代替:

Intent.ACTION_AIRPLANE_MODE_CHANGED

編輯

或所有網絡狀態的變化,使用:

"android.intent.action.SERVICE_STATE"

+0

感謝您的回答。 :) –