Android 响应传入的SMS/MMS,同时遵守默认的SMS/MMS数据库
有没有办法对SMS/MMS内容提供商的更改做出反应(即使应用程序处于非活动状态。) 我想在消息数据出现时对其进行操作,但也要在默认Messenger应用程序使用时对其进行操作 如果我将BroadcastReceiver与Telephony.Sms.Intents.Sms\u RECEIVED\u ACTION IntentFilter一起使用,我只会在Sms ContentProvider获取原始消息之前获取它Android 响应传入的SMS/MMS,同时遵守默认的SMS/MMS数据库,android,broadcastreceiver,sms,intentfilter,contentobserver,Android,Broadcastreceiver,Sms,Intentfilter,Contentobserver,有没有办法对SMS/MMS内容提供商的更改做出反应(即使应用程序处于非活动状态。) 我想在消息数据出现时对其进行操作,但也要在默认Messenger应用程序使用时对其进行操作 如果我将BroadcastReceiver与Telephony.Sms.Intents.Sms\u RECEIVED\u ACTION IntentFilter一起使用,我只会在Sms ContentProvider获取原始消息之前获取它 我不能使用ContentObserver,因为我想在我的应用程序未激活时能够对消息做
我不能使用ContentObserver,因为我想在我的应用程序未激活时能够对消息做出反应 您基本上是对的,只是在BroadcastReceiver中接收到的消息没有thread_id字段。我假设默认的messenger应用程序创建了这个字段。是的,我想到了服务+ContentObserver,但这听起来像是一个巨大的痛苦电池/内存方面的问题。保存号码和正文实际上不是一个糟糕的主意,但如果有人喜欢用“嘿”开始对话,这会成为一个问题。添加时间戳可能会起作用。我实际上通过使用NotificationListenerService解决了这个问题。如果从默认的messenger应用程序弹出通知,那么我会查询数据库。虽然如果我也想处理发送的短信,那么服务+内容提供商可能是最好的选择。你认为Pushbullet就是这样做的吗?