我开发了一个应用程序,当设备收到短信时会做出反应。我使用brodcastReceiver,当设备收到短信时,它开始意图回答发件人。
我的问题: 当应用程序已经启动时:接收和回答短信执行得非常好。 但是当应用程序未启动时。设备收到短信时没有任何反应。我不知道为什么?
public void onReceive(Context context, Intent intent){
receive(context,intent);//identifie les éléments du SMS
if(
(PhoneNumberUtils.compare("+436", phoneNumber) & messageBody.contains("Vous avez recu") & messageBody.contains("Votre solde est de")) //airtel money
|| messageBody.contains("TUMA JESUS") //validation
)
{
Intent i = new Intent(context, actionService.class);
i.putExtra("messageBody", messageBody);
i.putExtra("phoneNumber", phoneNumber);
i.putExtra("receivedate", ""+receivedate);
i.putExtra("brodcast", true);
context.startService(i);
}
}
清单:
<receiver class="com.fasoessential.paymanage.SmsReceiver"
android:name="com.fasoessential.paymanage.SmsReceiver">
<intent-filter >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
答案 0 :(得分:0)
要在收到短信时启动服务,请检查这些要点 -
将这些权限添加到清单(WRITE_SMS,READ_SMS,RECEIVE_SMS)
请勿使用接收方意图过滤器更新清单!
希望这会对你有所帮助。