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

时间:2013-12-10 15:06:58

标签: android sms android-4.4-kitkat

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

随着Kitkat SMS更改(请参阅下面引用的SmsManger文档),这些消息仍在发送,但现在会自动写入SMS提供程序,从而出现在用户的会话列表中。这对我的应用来说是不受欢迎的。

  

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

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

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

我已阅读此问题的回复Send SMS message using non default SMS app on Android 4.4,但更关心的是确保将 消息写入提供商。我不希望这样。

1 个答案:

答案 0 :(得分:0)

简短的回答是否定的。

答案很长:

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

另一种方法是baksmali你的手机默认短信应用程序,并添加smali代码,使您可以像上面一样。这需要技术知识smali和反编译/重新编译apks。

话虽如此,但如果手机用户决定使用第三方短信/短信应用程序来满足其短消息需求,也会出现问题。