Android 从后台服务调用SmsReceiver

Android 从后台服务调用SmsReceiver,android,sms,broadcastreceiver,android-service,Android,Sms,Broadcastreceiver,Android Service,我想问一个问题。 我制作了一个启动和停止后台服务的按钮。 我创建了一个类SmsReceiver,用于读取传入的sms。 因此,我想在服务开始时呼叫Sms广播接收器 任何想法或任何其他想法如何使用后台服务阅读短信?如果您已经有SmsReceiver工作正常,您需要做的就是从服务注册它。要做到这一点,您需要覆盖服务的onCreate() 您的服务应该如下所示: public class SmsService extends Service { private SmsReceiver receiv

我想问一个问题。
我制作了一个启动和停止后台服务的按钮。
我创建了一个类
SmsReceiver
,用于读取传入的sms。
因此,我想在服务开始时呼叫
Sms广播接收器


任何想法或任何其他想法如何使用后台服务阅读短信?

如果您已经有
SmsReceiver
工作正常,您需要做的就是从
服务注册它。要做到这一点,您需要覆盖
服务
onCreate()

您的服务应该如下所示:

public class SmsService extends Service
{
  private SmsReceiver receiver; //global so we can unregister it when the time comes.
  public void onCreate ()
  {
    super.onCreate ();//call to super
    //make a new intent filter so that all incoming SMS get to you as well
    IntentFilter smsFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
    receiver = new SmsReceiver(); //make a new SmsReceiver
    registerReceiver(receiver, smsFilter); //register the Receiver
  }

  public void onDestroy ()
  {
    unregisterReceiver (receiver); //unregisters the Receiver if Service is killed
    super.onDestroy();
  }
}
在清单中,确保包含必要的SMS权限,并记住在清单中声明
服务

<service android:name=".SmsService" >
</service>


服务有一个错误,它希望此代码
code
@覆盖公共IBinder onBind(Intent arg0){//TODO自动生成的方法存根返回null;}另一个问题是,如果应用程序在未启动服务的情况下启动,广播接收器将开始工作。有什么想法吗?对于您的第一条评论,是的,您需要覆盖onBind。如果您不打算绑定,那么可以像eclipse那样保留实现。为了你的第二个。不要在舱单中声明接收人。一旦在清单中声明,只要你的应用程序的某个部分正在运行,接收者就会运行add。你的意思是我不应该在清单中为接收者写任何东西?甚至不是这个?