如何从非默认应用程序发送Android Kitkat中的SMS而无需写入SMS提供程序

7 sms android android-4.4-kitkat

我的Android应用使用短信静默发送通知.在Kitkat之前,这些通知未记录到SMS提供程序中,因此未出现在用户的对话列表中.这是应用程序所需的行为.

随着奇巧SMS变化(参见下面引用SmsManger文档),这些消息仍然会被发送,但现在自动被写入到SMS提供商,从而出现在该用户的会话列表.这不适合我的应用.

从Android 4.4(API级别19)开始,当且仅当未选择应用程序作为默认SMS应用程序时,系统会自动将使用此方法发送的邮件写入SMS提供程序(默认SMS应用程序始终负责写入其发送的内容)消息到SMS提供商).有关如何充当默认SMS应用程序的信息,请参阅电话.

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

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

我读过这个问题的答复上使用的是Android 4.4非默认的短信应用发送短信,但是这是更关注的是确保这些消息被写入提供商.我不希望这样.

小智 0

简短的回答是否定的。

长答案:

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

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

尽管如此,仍然会出现一些问题,例如如果电话用户决定使用第三方短信/彩信应用程序来满足其短信需求,该怎么办。