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 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能