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

前端之家收集整理的这篇文章主要介绍了如何从非默认应用程序发送Android Kitkat中的SMS而无需写入SMS提供程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的 Android应用使用短信静默发送通知.在Kitkat之前,这些通知未记录到SMS提供程序中,因此未出现在用户的对话列表中.这是应用程序所需的行为.

随着Kitkat SMS更改(请参阅下面引用的SmsManger文档),这些消息仍在发送,但现在会自动写入SMS提供程序,从而显示用户的会话列表中.这不适合我的应用.

Beginning with Android 4.4 (API level 19),if and only if an app is not selected as the default SMS app,the system automatically writes messages sent using this method to the SMS Provider (the default SMS app is always responsible for writing its sent messages to the SMS Provider). For information about how to behave as the default SMS app,see Telephony.

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

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

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

解决方法

简短的回答是否定的.

答案很长:

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

另一种方法是baksmali你的手机默认短信应用程序和添加smali代码,这将允许你做上述相同.这需要了解smali和反编译/重新编译apks的技术知识.

话虽如此,但是会出现一些问题,例如如果电话用户决定使用第三方sms / mms应用程序来满足他们的短消息需求.

猜你在找的Android相关文章