我目前正在开展一个项目,分析SMS_RECEIVED-Flow。
根据文章[1],我模拟了SMS_RECEIVED-Broadcast,并明确调用了该服务:com.android.mms.transaction.SmsReceiverService
。
问题是,Android-Emulator和我的Nexus会向前推进 生成的BroadcastReceiver仅限于默认的SMS-App,我不知道为什么。
我试图在另一个应用程序中使用静态注册的接收器捕获广播,并使用动态注册的接收器(所有接收器都注册了最高优先级和正确的intent-filter)。两种方法都可以正常使用短信,但不适用于我的模拟。
所以问题是,是否有人知道SMS-Receive机制如何工作以及为什么我的程序不会接收任何广播。
[1] http://blog.dev001.net/post/14085892020/android-generate-incoming-sms-from-within-your-app
答案 0 :(得分:0)
SmsRecieverService是默认消息传递应用的一部分,因此,如果您明确调用此服务,则广播将仅覆盖该应用。由于SMS_RECIEVED广播是受保护的广播,因此您的应用无法广播。
一种方法是在模拟器和应用中更改广播的名称。