Android 在后台收听传入的文本

Android 在后台收听传入的文本,android,sms,broadcastreceiver,Android,Sms,Broadcastreceiver,我试图让我的应用程序以持久的方式监听传入的文本消息。最好的方法是什么 目前,我有一个可以工作的广播接收器,我正在为我的应用程序实现一个本地服务。以某种方式将BroadcastReceiver实现到服务中是正确的方法吗?该服务能否在内存不足的情况下工作?广播接收器不需要启动您的应用程序,因此是收听传入文本的正确方式 只需确保在清单中注册即可是广播接收器是收听传入短信的最佳方式。如果接收到传入短信,请使用IntentService为您的工作提供接收短信的服务。您可以将传入短信的接收器注册为: 清单文

我试图让我的应用程序以持久的方式监听传入的文本消息。最好的方法是什么


目前,我有一个可以工作的广播接收器,我正在为我的应用程序实现一个本地服务。以某种方式将BroadcastReceiver实现到服务中是正确的方法吗?该服务能否在内存不足的情况下工作?

广播接收器不需要启动您的应用程序,因此是收听传入文本的正确方式


只需确保在清单中注册即可

是广播接收器是收听传入短信的最佳方式。如果接收到传入短信,请使用IntentService为您的工作提供接收短信的服务。您可以将传入短信的接收器注册为:

清单文件

<receiver class="SMSApp">  
   <intent-filter>  
      <action android:value="android.provider.Telephony.SMS_RECEIVED" />  
     </intent-filter>  
</receiver>  
<uses-permission android:name="android.permission.RECEIVE_SMS" />
    public class SMSApp extends BroadcastReceiver{
    private static final String LOG_TAG = "SMSApp"; 
    /* package */
    static final String ACTION = "android.provider.Telephony.SMS_RECEIVED"; 
    public void onReceive(Context context, Intent intent){ 
        if (intent.getAction().equals(ACTION)){ 
          Bundle bundle = intent.getExtras();
          if (bundle != null){
               Object[] pdus = (Object[]) bundle.get("pdus");
               SmsMessage[] messages = new SmsMessage[pdus.length];
               for (int i = 0; i < pdus.length; i++){
                 messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
               }
               for (SmsMessage message : messages){
                    String strFrom = message.getDisplayOriginatingAddress();
                    String strMsg = message.getDisplayMessageBody();
               }
            }    
        } 
    } 
}    

对于
content://sms/inbox
用于侦听收件箱中的传入短信