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

这个广播我就写了一句简单的输出语句:publicclassSMSReceiverextendsBroadcastReceiver{@Overridepublicvoido... 这个广播我就写了一句简单的输出语句:

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);
}
});

清单文件权限也给了:<uses-permission android:name="android.permission.RECEIVE_SMS"/>

但是为什么当我调试发短信时,广播的OnReceive方法一直没反应?
展开
 我来答
dmcpoorness
推荐于2016-10-05 · TA获得超过3829个赞
知道小有建树答主
回答量:730
采纳率:0%
帮助的人:649万
展开全部

虽然我眼拙没有看出什么不对劲,网上博文写的基本也如此,但也有点心得:

  1. 从短信接收后系统发出广播,虽然是异步广播,但是实际上到你写的接收器接收到并处理之间可能会有一段较长的时间,可能是几秒;

  2. 先检查接收器是否注册成功。

追问
用sendBroadcast(new Intent(SMS_RECEIVED)); 检测了下是注册成功了,
但是用DDMS发短信给模拟器,系统收到短信却还是没有执行OnReceive方法啊
追答
用实机试试
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式