即使应用未运行,也会在事件发生后启动服务?

时间:2014-11-07 14:06:38

标签: android broadcastreceiver

我开发了一个应用程序,当设备收到短信时会做出反应。我使用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>

1 个答案:

答案 0 :(得分:0)

要在收到短信时启动服务,请检查这些要点 -

  1. 将这些权限添加到清单(WRITE_SMS,READ_SMS,RECEIVE_SMS)

  2. 请勿使用接收方意图过滤器更新清单!

  3. 希望这会对你有所帮助。