永发信息网

Android中定义了一个接收短信的广播类,但是里面的OnReceive方法始终没有执行,求解

答案:2  悬赏:0  手机版
解决时间 2021-02-18 11:40
  • 提问者网友:捧腹剧
  • 2021-02-18 01:49
这个广播我就写了一句简单的输出语句:

public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("Received");
}
}

然后定义了一个Button (broadcast) 来监听注册:

broadcast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
IntentFilter filter = new IntentFilter();
filter.addAction(SMS_RECEIVED);
SMSReceiver receiver = new SMSReceiver();
registerReceiver(receiver, filter);
}
});

清单文件权限也给了:

但是为什么当我调试发短信时,广播的OnReceive方法一直没反应?
最佳答案
  • 五星知识达人网友:酒醒三更
  • 2021-02-18 02:19
虽然我眼拙没有看出什么不对劲,网上博文写的基本也如此,但也有点心得:
1. 从短信接收后系统发出广播,虽然是异步广播,但是实际上到你写的接收器接收到并处理之间可能会有一段较长的时间,可能是几秒;
2. 先检查接收器是否注册成功。
全部回答
  • 1楼网友:零点过十分
  • 2021-02-18 02:51
你在androidmanifest里面配置smsreceiver这个广播接收器了吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯