我想在activity中接收广播的wifi状态信息,但是我写的代码接收不到,求教啊~!
1.发送的广播类
```public class ConnectionChangeReceiver extends BroadcastReceiver {
Context context;
public ConnectionChangeReceiver(Context context) {
// TODO Auto-generated constructor stub
//this.wifiStateImage=imageView;
this.context=context;
int strength=getStrength(context);
//wifiStateImage.setImageLevel(strength);
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
System.out.println(intent.getAction());
System.out.println("程序进入!");
if(intent.getAction().equals(WifiManager.RSSI_CHANGED_ACTION))
{
int strength=getStrength(context);
//System.out.println("当前信号 "+strength);
//wifiStateImage.setImageLevel(strength);
}else if(intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){
//System.out.println("网络状态改变");
Intent intent4 = new Intent();
intent.setAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
intent.putExtra("NETWORK_STATE_CHANGED_ACTION", "网络状态改变");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent4);
//System.out.println("断开连接");
NetworkInfo info=intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if(info.getState().equals(NetworkInfo.State.DISCONNECTED))
{//如果断开连接
//wifiStateImage.setImageLevel(0);
Intent intent3 = new Intent();
intent.setAction(WifiManager.EXTRA_NETWORK_INFO);
intent.putExtra("NETWORK_INFO", "断开连接");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent3);
//System.out.println("断开连接");
}
}else if(intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION))
{
//WIFI开关
int wifistate=intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,WifiManager.WIFI_STATE_DISABLED);
if(wifistate==WifiManager.WIFI_STATE_DISABLED)
{//如果关闭
//wifiStateImage.setImageLevel(0);
//System.out.println("wifi关闭");
Intent intent2 = new Intent();
intent.setAction(WifiManager.EXTRA_WIFI_STATE);
intent.putExtra("WIFI_STATE", "wifi关闭");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent2);
}
}
}
public int getStrength(Context context)
{
WifiManager wifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiManager.getConnectionInfo();
if (info.getBSSID() != null) {
int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);
//Wifi源名称
String ssid = info.getSSID();
System.out.println("wifi名字= "+ssid);
Intent intent = new Intent();
intent.setAction("cn.abel.action.broadcast");
intent.putExtra("Ssid", ssid);
return strength;
}
return 0;
}
}
2.activity中注册广播的方法
``` @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpage_main);
mActionBar.hide();
init();
//listwifi();
ConnectionChangeReceiver myBroadcastReciver = new ConnectionChangeReceiver(this);
System.out.println("OnCreate!");
//System.out.println("onCreateView");
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.RSSI_CHANGED_ACTION);
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
localBroadcastManager.registerReceiver(myBroadcastReciver, filter);
}
为什么我程序都没有进入ConnectionChangeReceiver类中?求大神指教~!