u010212704 2015-06-30 10:39 采纳率: 0%
浏览 3914

android广播在activity中接收不到

我想在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类中?求大神指教~!

  • 写回答

3条回答 默认 最新

  • ljcmeng 2015-06-30 12:09
    关注

    你这是要监听wifi状态变化吗?

    评论

报告相同问题?

悬赏问题

  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题