我有一个服务,我想注册广播操作CONNECTIVITY_CHANGE(android.net.conn.CONNECTIVITY_CHANGE)来更新我的在线状态。我是按照以下方式做的
final IntentFilter theFilter = new IntentFilter();
theFilter.addAction(android.net.conn.CONNECTIVITY_CHANGE);
this.ConnStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Do whatever you need it to do when it receives the broadcast
// Example show a Toast message...
}
};
但是在编译时,它无法识别 android.net.conn.CONNECTIVITY_CHANGE 中的 android.net.conn 部分。它显示出一些包装问题。请帮我解决这个问题。当我动态注册广播接收器时,我认为无需在清单文件中提及它。请建议我。我被困在这里。
答案 0 :(得分:4)
尝试使用:
theFilter.addAction(android.net.ConnectivityManager.CONNECTIVITY_ACTION);
答案 1 :(得分:1)
我不知道你是否还需要解决方案,但是IntentFilter.addAction()会收到一个字符串,所以如果你传递带有名字的字符串,它就会起作用:
theFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
我同意有人在没有理由的情况下粗暴地投票。