25

我创建了一个BroadcastReceiver并使用android.provider.Telephony.SMS_RECEIVED操作过滤器对其进行了配置,因此每次手机收到文本时都会调用它。

每当电话发送文本(最好独立于发送文本的应用程序)时,是否有某种事件/操作或其他方式可以通知我的应用程序?

到目前为止,我看到的唯一选择是轮询内容提供者,content://sms/sent因为应用程序可以选择不把它放在那里,所以它甚至没有给我所有发送的文本。

4

1 回答 1

21

不幸的是,(目前)没有办法实现 a BroadcastReceiver,因为标准短信应用程序使用 a来发送消息,但为发送和传递的意图(和分别)SmsManger指定了具体的内部类。这并不是什么安慰,但您可以在 Sms 应用程序的源代码中找到以下评论:SmsReceiver.classMessageStatusReceiver.class

// TODO: Fix: It should not be necessary to
// specify the class in this intent.  Doing that
// unnecessarily limits customizability.

最好的选择似乎是轮询content://sms/sent,可能使用ContentObserver.

于 2009-07-07T20:27:22.570 回答