Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 响应传入的SMS/MMS,同时遵守默认的SMS/MMS数据库_Android_Broadcastreceiver_Sms_Intentfilter_Contentobserver - Fatal编程技术网

Android 响应传入的SMS/MMS,同时遵守默认的SMS/MMS数据库

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,因为我想在我的应用程序未激活时能够对消息做

有没有办法对SMS/MMS内容提供商的更改做出反应(即使应用程序处于非活动状态。)

我想在消息数据出现时对其进行操作,但也要在默认Messenger应用程序使用时对其进行操作

如果我将BroadcastReceiver与Telephony.Sms.Intents.Sms\u RECEIVED\u ACTION IntentFilter一起使用,我只会在Sms ContentProvider获取原始消息之前获取它


我不能使用ContentObserver,因为我想在我的应用程序未激活时能够对消息做出反应

您基本上是对的,只是在BroadcastReceiver中接收到的消息没有thread_id字段。我假设默认的messenger应用程序创建了这个字段。是的,我想到了服务+ContentObserver,但这听起来像是一个巨大的痛苦电池/内存方面的问题。保存号码和正文实际上不是一个糟糕的主意,但如果有人喜欢用“嘿”开始对话,这会成为一个问题。添加时间戳可能会起作用。我实际上通过使用NotificationListenerService解决了这个问题。如果从默认的messenger应用程序弹出通知,那么我会查询数据库。虽然如果我也想处理发送的短信,那么服务+内容提供商可能是最好的选择。你认为Pushbullet就是这样做的吗?