2011-07-07 55 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

感谢您的回答。 :) –