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

3

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

以下是我拥有的代码:

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);

如果我没记错的话,要跳过将短信保存在已发送中,我需要向piSentpiDelivered写入null。但是我需要这两个广播来知道我的消息是否已通过弹出消息发送并且已送达。
还有其他什么我应该尝试吗?
1个回答

0

看起来您正在处理KitKat或更高版本,因为在此之前,任何使用SmsManager发送短信的应用程序都需要明确地将消息写入提供程序才能在其他任何应用程序中显示。既然如此,您的应用程序将需要成为默认SMS应用程序,以便“隐藏”发送的消息。从KitKat开始,使用SmsManager方法发送消息的任何不是默认选项的应用程序都会被系统自动写入提供程序。PendingIntents仅用于已发送和已传递确认,并且与消息的编写无关。

另一方面,默认的SMS应用程序负责自己编写所有的出站消息。它们不会自动写入,而且可以选择省略它们。您可以查阅以下链接,了解如何使您的应用程序有资格成为默认SMS应用程序的信息。

Getting Your SMS Apps Ready for KitKat


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接