检测短信的收发情况

21

我希望我的应用程序能够在后台自动检测短信的收发情况,无论该应用程序是否正在打开。如何编写代码?


我正在这里做类似的事情!!! https://dev59.com/j-o6XIcBkEYKwwoYORwV - Etienne Lawlor
2个回答

28

这是一篇关于发送和接收短信的好教程:http://mobiforge.com/developing/story/sms-messaging-android

对于接收到的信息,您可以配置BroadcastReceiver进行检测。*

检测发出的信息也是可能的(我修改了这篇文章,因为我之前不知道这点),来源:http://www.mail-archive.com/android-developers@googlegroups.com/msg26420.html

ContentResolver contentResolver = context.getContentResolver();
  contentResolver.registerContentObserver(Uri.parse("content://
sms"),true, myObserver);

1
你能否发布你的完整解决方案? - Noundla Sandeep
1
从API级别19开始,URI已添加到API中,您可以使用Telephony.Sms.CONTENT_URI而不是Uri.parse("content://sms") - Martin Böschen
@soclose,你能发一下解决方案吗? - Vulovic Vukasin
如果我们使用content://sms进行注册,即使消息已被删除,也会被调用。我如何具体检测它是否仅为“已发送”消息。此外,在我的设备上,content://sms/sent的内容更改不会触发。 - Vaibs

1

在发送和接收信息时,系统会广播相应的消息。你需要为适当的意图(详见文档...我想这是android.provider.Telephony.SMS_RECEIVED用于拦截,但是否发送不确定)创建BroadcastReceiver。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接