android - KitKat - 短信管理

标签 android sms android-4.4-kitkat smsmanager

我正在开发一个类似于 SMS 黑名单/白名单的应用程序。它现在不是 SMS 应用程序。

目标是:

  • 如果该号码在黑名单中,它会阻止用户接收/发送短信,并且不会出现在他的短信应用程序中。
  • 如果号码在白名单中,用户可以为所欲为。
  • 在某些特殊情况下,被阻止的消息会存储在我们的数据库中,以便在几个小时后发送;

总而言之,我的应用需要能够:

  • 阻止短信(在任何其他应用可以处理它之前,例如弹出式短信应用)
  • 发送短信

到目前为止,该组件在 android pre KitKat 上运行良好。 这个想法是处理广播(接收短信)和观察者(发送短信)。

顺便说一句,KitKat SMS 处理方式主要不同。据我所知,我们需要成为默认的短信应用程序才能发送消息。

我的问题是:

最佳答案

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/

相关文章:

android - TWO_SWIPE_DOWN TAP 无法捕捉 Google Glass GDK (XE16)

android - 为所有移动设备设计计算器

android - 如何在 Android 中使用 curl?

Android 短信发送报告 Intent

iphone - 如何从我的应用程序访问 iphone 联系人?

android - 渐变不适用于 kitkat 设备 android

android - CoordinatorLayout、AppBarLayout 和 ToolBar - 工具栏不会滚出屏幕

Android:将字母数字键盘设置为在 EditText 中首先显示数字

android - 如何以编程方式从 Android 读取 SIM SENT SMS 消息?

android - Espresso 2 升级后测试失败(失败 : Instrumentation run failed due to 'java.lang.IllegalAccessError' )