2013-03-05 90 views
8

我想從我的android應用程序發送短信。但是我不希望它的記錄在設備消息視圖中存在。我目前使用下面的代碼。如何從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); 

但它正在發送的SMS記錄在所述設備的消息圖。我們可以從android應用程序發送祕密短信嗎?

請指教。

+0

在Android KitKat 4.4.2中,您將使用此代碼發送短信,該短信將在默認短信應用程序中記錄 – PriyankaChauhan 2017-05-10 10:06:30

回答

13

是的,您嘗試發送短信的方式是使用發送的短信應用程序。所以它會一直記錄發送的消息。您必須使用SmsManager發送短信。

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

這樣,您的短信不會被插入到列表中。

還記得在此添加您的清單

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

我們是否也可以從通話記錄中刪除通話?我的意思是我想從通話記錄中刪除上次撥打的電話。 – 2013-03-05 09:33:37

+0

關注此帖http://stackoverflow.com/questions/14019684/delete-call-log-in-android-for-particular-number – 2013-03-05 09:50:16

+10

在Android KitKat 4.4.2中,您將使用此代碼發送短信,即短信將被記錄在默認的短信應用程序中。 – Elshan 2014-05-01 16:33:09

1

如果你使用Android SMS應用來發送消息,那麼它會保存在發件箱或發送該消息。你可以做的是從短信數據庫中刪除該消息。 發送短信使用該刪除消息後:

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

如果味精是在開箱

OR

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

如果消息在發送項目。

+0

感謝發佈。我們是否也可以從通話記錄中刪除通話?我的意思是我想刪除通話記錄中最後撥打的電話 – 2013-03-05 09:34:02

+0

從來沒有這樣做,但我認爲可以做到。但如果你想要答案,我想你應該問另一個問題。 :) – 2013-03-05 09:40:29

+0

好的感謝這 – 2013-03-05 09:41:34