我创建了一个 BroadcastReceiver
,并将其配置为使用 android.provider.Telephony.SMS_RECEIVED
的动作筛选器,这样每当手机 接收 文本时就会调用它。
是否有一些事件/操作或其他方式可以通知我的应用程序在手机 发送 文本时(最好是独立于发送文本的应用程序)进行通知?
到目前为止,我唯一看到的选择是轮询 content://sms/sent
的内容提供者,但这甚至不能给出所有已发送的文本,因为应用程序可以选择不将其放在那里。
我创建了一个 BroadcastReceiver
,并将其配置为使用 android.provider.Telephony.SMS_RECEIVED
的动作筛选器,这样每当手机 接收 文本时就会调用它。
是否有一些事件/操作或其他方式可以通知我的应用程序在手机 发送 文本时(最好是独立于发送文本的应用程序)进行通知?
到目前为止,我唯一看到的选择是轮询 content://sms/sent
的内容提供者,但这甚至不能给出所有已发送的文本,因为应用程序可以选择不将其放在那里。
很不幸,目前没有办法实现一个BroadcastReceiver
,因为标准短信应用程序使用SmsManger
发送消息,但指定了具体的内部类用于发送和传送意图(分别是SmsReceiver.class
和MessageStatusReceiver.class
)。虽然这并不能让你感到安慰,但你可以在短信应用程序的源代码中找到以下注释:
// TODO: Fix: It should not be necessary to
// specify the class in this intent. Doing that
// unnecessarily limits customizability.
最好的替代方案似乎是轮询 content://sms/sent
,可能使用ContentObserver
。