【问题标题】:How to send an SMS in Android Kitkat from non-default app without writing to SMS Provider如何从非默认应用程序在 Android Kitkat 中发送 SMS 而无需写信给 SMS Provider
【发布时间】:2013-12-10 15:06:58
【问题描述】:

我的 Android 应用使用 SMS 以静默方式发送通知。在 Kitkat 之前,这些通知没有记录到 SMS 提供程序中,因此没有出现在用户的对话列表中。这是应用程序的期望行为。

随着 Kitkat SMS 的更改(请参阅下面引用的 SmsManger 文档),这些消息仍在发送,但现在会自动写入 SMS 提供商并因此出现在用户的对话列表中。这对我的应用来说是不可取的。

从 Android 4.4(API 级别 19)开始,当且仅当某个应用未被选为默认 SMS 应用时,系统才会自动将使用此方法发送的消息写入 SMS Provider(默认 SMS 应用始终负责将其发送的消息写入 SMS Provider)。有关如何充当默认 SMS 应用程序的信息,请参阅电话。

听起来我可以通过将我的应用设置为默认应用然后不写入提供程序来阻止自动写入提供程序。但是,在我的应用环境中,这将是一种糟糕的用户体验,因此我只会将其视为绝对的最后手段。

那么我的问题是 - 有没有办法静默在 Kitkat 中发送短信我的应用必须是默认应用?

我已阅读对此问题Send SMS message using non default SMS app on Android 4.4 的回复,但更关心的是确保消息正在写入提供程序。我不想那样。

【问题讨论】:

    标签: android sms android-4.4-kitkat


    【解决方案1】:

    简短的回答是否定的。

    长答案:

    实际上有很多选择,但涉及大量工作。一种是下载 aosp 的源代码并修改 mms.apk 以允许它从您的应用接收意图发送短信而无需写信给提供商。

    另一种方法是 baksmali 您的手机默认短信应用程序并添加允许您执行上述相同操作的 smali 代码。这需要 smali 和反编译/重新编译 apk 的技术知识。

    话虽如此,如果电话用户决定使用第三方短信/彩信应用程序来满足他们的短信需求,将会出现一些问题。

    【讨论】:

      猜你喜欢
      • 2016-03-10
      • 2015-02-26
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      相关资源
      最近更新 更多