如何从非默认应用程序发送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应用程序来满足他们的短消息需求.

相关文章

AdvserView.java package com.earen.viewflipper; import an...
ImageView的scaleType的属性有好几种,分别是matrix(默认)...
文章浏览阅读8.8k次,点赞9次,收藏20次。本文操作环境:win1...
文章浏览阅读1.2w次,点赞15次,收藏69次。实现目的:由main...
文章浏览阅读3.8w次。前言:最近在找Android上的全局代理软件...
文章浏览阅读2.5w次,点赞17次,收藏6次。创建项目后,运行项...