我正在开发一个类似于 SMS 黑名单/白名单的应用程序。它现在不是 SMS 应用程序。
目标是:
- 如果该号码在黑名单中,它会阻止用户接收/发送短信,并且不会出现在他的短信应用程序中。
- 如果号码在白名单中,用户可以为所欲为。
- 在某些特殊情况下,被阻止的消息会存储在我们的数据库中,以便在几个小时后发送;
总而言之,我的应用需要能够:
- 阻止短信(在任何其他应用可以处理它之前,例如弹出式短信应用)
- 发送短信
到目前为止,该组件在 android pre KitKat 上运行良好。 这个想法是处理广播(接收短信)和观察者(发送短信)。
顺便说一句,KitKat SMS 处理方式主要不同。据我所知,我们需要成为默认的短信应用程序才能发送消息。
我的问题是:
- 我真的需要成为默认的 SMS 应用程序才能发送/查看消息吗?
- 我是否必须实现一种基本的 SMS 应用程序,或者是否有其他方法可以使用 SMSManager 发送 SMS? ( http://android-developers.blogspot.fr/2013/10/getting-your-sms-apps-ready-for-kitkat.html )
最佳答案
Do I really need to be the default SMS app to send / observe messages ?
Do I have to implement a kind of basic SMS app or is there another way to send SMS with SMSManager for example ?
没有。任何具有 SEND_SMS
权限的应用仍然可以使用 SmsManager
的标准方法发送消息,并且当且仅当您的应用不是默认的短信应用。如果您的是默认值,则它负责写入。
任何具有RECEIVE_SMS
权限的应用仍然可以获得SMS_RECEIVED
广播并从Intent
中读取消息。此外,SMS_RECEIVED
广播无法中止,从 KitKat 开始,因此没有真正的方法来阻止任何监听该广播的应用程序接收传入文本,即使您的应用程序是默认应用程序也是如此。但是,符合 KitKat 或更高版本中 SMS 应用程序推荐行为的应用程序将禁用对传入消息的任何处理(如果它们不是默认设置)。也就是说,如果您的应用是默认应用,则其他应用不应关心收到的消息。
关于android - KitKat - 短信管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25059374/