2013-11-27 134 views
1

我有一个拥有设备管理员权限的应用程序。我的应用程序监视收到的短信,并通过一些逻辑传递内容。我可以通过编程方式将默认的短信应用更改为我的应用。我的应用程序检查垃圾邮件,因此它需要读取/写入/更新SMS数据库。我想要一个修复kitkat。如何以编程方式更改默认应用程序?

我刚刚注意到,我的应用上收到的短信通知不再是收到新短信的通知,而是由接收短信的环聊引起的“新环聊消息”通知。所以我的应用程序也无法使用SMS_RECEIVED接收传入的文本消息。

Google的Android开发者博客发布了关于Kitkat中新的SMS API的博客文章,他表示,对于仅使用SMS_RECEIVED的应用程序而言,没有任何改变,也不会尝试将SMS写入SMS提供程序。

1我一直认为SMS_RECEIVED广播是放弃的。但是,在Android 4.4 API的网站说,不同的东西:“......当有新的短信息到达通过侦听SMS_RECEIVED_ACTION广播,这是一种非可中止广播......”

回答

6

我可以默认的短信应用更改为我的应用程序编程

不直接。您可以提示用户更改默认的短信应用程序。

为垃圾邮件

我的应用程序检查,重新打包代码库,并授权给SMS客户端。

所以卵石应用程序也无法与SMS_RECEIVED

可能卵石应用仅仅是有其他问题,并通知卵石之前崩溃接收传入的短信。或者,Pebble应用程序可能会针对Android 4.4进行更新,并且由于它知道无法停止环聊通知,因此可以简单地取消自己的应用程序。

关于奇巧新的SMS API谷歌的Android开发者博客文章说,没有什么会改变只用SMS_RECEIVED的应用程序,并且不尝试将SMS写入SMS提供

也就是说不是什么this blog post says

我始终认为,SMS_RECEIVED广播时可中止

这个无证,不支持的广播一直有序的,可中止广播通过Android 4.3的。这已不再是与Android 4.4的情况下,你可以通过阅读上述博客文章说:

注意与Android是期初4.4任何通过您的应用程序试图中止SMS_RECEIVED_ACTION广播会因此所有被忽略感兴趣的应用有机会接收它。

+0

在android 2.3.3中我如何提示用户更改4.4中的默认值Telephony.sms有一个ACTION_CHANGE_DEFAULT的意图。 –

+1

@AsimHabib:在Android 4.4之前,Android中没有默认SMS客户端的概念。 – CommonsWare

+0

感谢您的回复 –

相关问题