我有一个应用程序,它拥有设备管理权限。我的应用程序监控接收短信,并通过一些逻辑传递内容。我可以更改默认的SMS应用程序为我的应用程序编程。我的应用程序检查垃圾邮件,所以它需要读/写/更新SMS db。我想给kitkat找个解决办法。
我刚刚注意到,我的应用程序上的短信通知不再是接收到的新SMS的通知,而是“新Hangout消息”通知,这些通知是由于接收到的SMS消息而引起的。因此,我的应用程序也无法接收到SMS_RECEIVED接收到的短信。
谷歌的安卓开发者在博客上发表了有关Kitkat新的SMS API的文章,称只使用SMS_RECEIVED的应用程序不会有任何改变,也不会试图向短信提供商写短信。
我一直认为SMS_RECEIVED广播是可以中止的。但是Android4.4api网站却说了一些不同的话:“当一个新的短消息通过监听SMS_RECEIVED_ACTION广播到达时,…是一个不可中止的广播…”。
发布于 2013-11-27 16:29:24
我可以通过编程将默认的SMS应用程序更改为我的应用程序吗?
不是直接的。您可以提示用户更改默认的SMS应用程序。
我的应用程序检查垃圾邮件
将代码重新打包为库,并将其授权给SMS客户端。
因此鹅卵石应用程序也无法接收到SMS_RECEIVED传入的文本消息。
可能鹅卵石应用程序只是有其他问题,并且在通知鹅卵石之前就崩溃了。或者,鹅卵石应用程序可能是为Android4.4更新的,因为它知道不能停止Hangout通知,所以简单地取消了自己的通知。
Google的Android开发者在博客上写了一篇关于Kitkat新的SMS API的文章,说只使用SMS_RECEIVED的应用程序不会改变什么,也不要试图向短信提供商写短信。
这不是这篇博文说所做的。
我一直认为SMS_RECEIVED广播是可以中止的。
这个无文件记录的、不受支持的广播是通过Android4.3命令进行的、可中止的广播。Android 4.4的情况已不再如此,通过阅读上述博客文章就可以看出这一点:
请注意--从Android4.4开始--您的应用程序中止SMS_RECEIVED_ACTION广播的任何尝试都将被忽略,因此所有感兴趣的应用程序都有机会接收它。
https://stackoverflow.com/questions/20247495
复制相似问题