我的Android应用程序使用SMS无声地发送通知。在Kitkat之前,这些通知没有记录到SMS提供程序中,因此没有出现在用户的会话列表中。这是应用程序想要的行为。
使用Kitkat更改(请参阅下面引用的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,但这更关心的是确保消息正在被写入提供程序的。我不想这样。
发布于 2014-11-28 01:23:17
简短的回答是否定的。
较长的答覆:
其实有很多选择,但这需要做很多工作。一种是下载aosp的源代码,并修改mms.apk,使其能够从应用程序接收发送短信的意图,而无需向提供者发送短信。
另一种方式是烘焙您的手机默认短信应用程序,并添加smali代码,将允许您做上述相同的。这将需要对smali和反编译/重新编译apks的技术知识。
尽管如此,还是会出现一些问题,比如如果电话用户决定使用第三方sms/mms应用程序来满足他们的短消息需求。
https://stackoverflow.com/questions/20497928
复制相似问题