2 pipi0 PIPI0 于 2016.01.22 09:27 提问

请问广播接受者不能发送广播吗?还是我写的代码有问题啊?

public class netReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Intent wifi = new Intent();
    if(isWifi(context)){
        wifi = new Intent(context, MyService.class);
        context.startService(intent);
    }else{
        wifi.setAction("net.s5c.Changelink.wifiOff");
        sendBroadcast(wifi);
    }

    Toast.makeText(context, "监听到WIFI动作", Toast.LENGTH_LONG).show();
}

public static boolean isWifi(Context mContext) {  
    ConnectivityManager connectivityManager = (ConnectivityManager) mContext  
            .getSystemService(Context.CONNECTIVITY_SERVICE);  
    NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();  
    if (activeNetInfo != null  
            && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {  
        return true;  
    }  
    return false;  
}  

}

3个回答

PIPI0
PIPI0   2016.01.22 13:09
已采纳
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class netReceiver extends BroadcastReceiver {
    Intent wifi = new Intent();

    @SuppressWarnings("static-access")
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetInfo = manager.getActiveNetworkInfo();
        if (activeNetInfo != null  
                && activeNetInfo.getType() == manager.TYPE_WIFI) {  
            wifi = new Intent(context, MyService.class);
            wifi.setAction(MainActivity.ACCESSIBILITY_SERVICE);
            context.startService(wifi);
        }else{
            wifi.setAction("net.s5c.Changelink.wifiOff");
            context.sendBroadcast(wifi);
        }

    }
}

我又重写了一下,发现广播接收者多次接到广播还是不能启动起来服务,我知道我写的有问题,但那里有问题应该怎么写啊??

PIPI0
PIPI0 这里能接收到net.s5c.Changelink.wifiOff这个广播,但就是不启动服务,我判断这里肯定做的不对,启动服务这里也有问题,应该怎么改呢?
接近 2 年之前 回复
Mr_dsw
Mr_dsw   Ds   Rxr 2016.01.22 09:28

可以发送的,这个没关系,你写的有问题

qq_15771061
qq_15771061   2016.01.22 14:21

启动服务的执行者是context,你的context是发送广播的context,也就是Activity,而不是该广播

PIPI0
PIPI0 我是在用广播接收者在启动服务啊~~~你的回答对我一点帮助都没有啊~~
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!