2013-03-05 6 views
8

Chcę wysłać SMS z mojej aplikacji na Androida. Ale nie chcę, aby jego rekord istniał w widoku wiadomości urządzenia. Obecnie używam poniżej kodu.Jak wysłać SMS-a z aplikacji na Androida bez zapisywania go w widoku SMS na urządzeniu?

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

Ale wysyła on wiadomość SMS z wiadomością do urządzenia. Czy możemy wysłać tajny SMS z aplikacji na Androida?

Proszę o poradę.

+0

W Androidzie KitKat 4.4.2, wyślemy sms za pomocą tego kodu, że sms będą nagrywane w domyślnej aplikacji sms – PriyankaChauhan

Odpowiedz

13

Tak, sposób, w jaki próbujesz wysłać wiadomość SMS, odbywa się za pomocą wysyłanej aplikacji do obsługi wiadomości. Dlatego zawsze będzie rejestrować wysłane wiadomości. Musisz użyć SmsManager, aby wysłać SMS.

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

W ten sposób Twój SMS nie zostanie dodany do listy.

Należy również pamiętać o tym, aby dodać swój manifest

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

Czy możemy również usuwać połączenia z dzienników połączeń? Chodzi mi o to, że chcę usunąć ostatnie wykonane połączenia z dzienników połączeń. –

+0

Śledź ten post http://stackoverflow.com/questions/14019684/delete-call-log-in-android-for-particular-number –

+10

W Android KitKat 4.4.2, wyślemy sms za pomocą tego kodu, że sms są będzie zapisany w domyślnej aplikacji sms. – Elshan

1

Jeśli używasz Android SMS, aby wysłać wiadomość wtedy byłoby zapisać, że wiadomość w skrzynce nadawczej i wysłana. Możesz usunąć tę wiadomość z bazy danych sms. Po wysłaniu sms Usuń tę wiadomość, korzystając w ten sposób:

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

Jeśli MSG jest na zewnątrz skrzynki

LUB

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

Jeżeli wiadomość jest w przesyłanych przedmiotów.

+0

Dzięki za wysyłkę. Czy możemy również usuwać połączenia z dzienników połączeń? Chodzi mi o to, że chcę usunąć ostatnio wykonane połączenie z dzienników połączeń –

+0

Nigdy tego nie robiłem, ale myślę, że można to zrobić. Ale jeśli chcesz odpowiedzi, myślę, że powinieneś zadać kolejne pytanie. :) –

+0

Ok Dzięki za to –