android - 发送短信但不在已发送的消息中显示

标签 android sms

当我从我的应用程序发送任何短信或根本不记录它时,我想隐藏我已发送的项目。

这是我这里的代码:

SmsManager smsManager = SmsManager.getDefault();
PendingIntent piSent = PendingIntent.getBroadcast(contextUpdate, 0, new Intent("SMS_SENT"), 0);
PendingIntent piDelivered = PendingIntent.getBroadcast(contextUpdate, 0, new Intent("SMS_DELIVERED"), 0);
smsManager.sendTextMessage(alarmNumber, null, alarmCode + " " + sentDisarmCode + " OFF", piSent, piDelivered);

如果我没有错误地跳过保存发送的短信,我必须将 null 写入 piSentpiDelivered。但我需要这 2 个广播,所以我知道我的消息是否由我拥有的 Toast 消息发送,并知道它是否已发送。

还有什么我应该尝试的吗?

最佳答案

看来您正在处理 KitKat 或更高版本,因为在此之前,任何使用 SmsManager 发送 SMS 的应用程序都需要明确地将消息写入 Provider,以便它们出现在任何其他应用程序中.在这种情况下,您的应用程序需要成为默认的短信应用程序才能“隐藏”已发送的消息。从 KitKat 开始,任何非默认应用程序和使用 SmsManager 方法发送消息的应用程序都会由系统自动将这些消息写入 Provider。 PendingIntents 仅用于 Sent 和 Delivered 的确认,与消息的写入无关。

另一方面,默认的 SMS 应用负责自己编写所有外发消息。它没有自动写入,它可以选择忽略它们。您可以引用以下链接,了解有关如何使您的应用有资格成为默认短信应用的信息。

Getting Your SMS Apps Ready for KitKat

关于android - 发送短信但不在已发送的消息中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26092680/

相关文章:

带有relativelayout的android webview和进度条

android - 在 Windows 机器上下载 android sdk 组件时出现文件未找到错误

java - 如何使用 AT 命令代替 Java Wireless Messaging API (WMA),将 SMS 发送到 PORT

android - 通过 React native 应用程序打开并发送消息

android - 读取传入消息,直到读取验证短信

android - 回收站 View 滚动不流畅

android - 如何只读取最后一行的 logcat?

android - Xamarin Forms - 媒体插件 - 手机上的空缩略图

ios - 在 iOS 上使用 Twilio 发送短信

php - 如何构建串联的短信 pdu?获取垃圾字符