如何从Android应用程序发送短信而不在设备短信视图中记录?

时间:2013-03-05 07:02:54

标签: android sms

我想从我的Android应用程序发送短信。但我不希望它的记录存在于设备消息视图中。我目前正在使用以下代码。

sendSMS(etsendernumber.getText().toString(), etmessagebody.getText().toString()); 
sendintent = new Intent(Intent.ACTION_VIEW);
sendintent.putExtra("sms_body","");
sendintent.setType("vnd.android-dir/mms-sms");
startActivity(sendintent);

但它正在设备的消息视图中发送短信记录。我们可以从Android应用程序发送秘密短信吗?

请建议。

2 个答案:

答案 0 :(得分:13)

是的,您尝试发送SMS的方式是使用随附的消息传递应用程序。所以它将始终记录发送的消息。您必须使用SmsManager发送SMS。

SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);

通过这种方式,您的短信不会被插入列表中。

还要记得在清单中添加它

<uses-permission android:name="android.permission.SEND_SMS" />

答案 1 :(得分:1)

如果您使用Android SMS应用程序发送消息,那么它会将该消息保存在发件箱中或发送。你可以做的是从短信数据库中删除该消息。 发送短信后使用以下方法删除该消息:

getContentResolver().delete(Uri.parse("content://sms/outbox"), "address = ? and body = ?", new String[] {etsendernumber.getText().toString(),etmessagebody.getText().toString()});

如果msg在外框

OR

getContentResolver().delete(Uri.parse("content://sms/sent"), "address = ? and body = ?", new String[] {etsendernumber.getText().toString(),etmessagebody.getText().toString()});

如果邮件在已发送的项目中。