2013-03-05 3 views
8

Voglio inviare un SMS dalla mia app Android. Ma non voglio che il suo record esista nella visualizzazione dei messaggi del dispositivo. Attualmente sto usando il codice qui sotto.Come inviare SMS dall'app Android senza registrarne la visualizzazione SMS dispositivo?

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

Ma sta effettuando il record sms inviato in visualizzazione messaggio del dispositivo. Possiamo inviare un sms segreto dall'applicazione Android?

Si prega di consulenza.

+0

In Android KitKat 4.4.2, invierai sms utilizzando questo codice, che gli sms saranno registrati nell'applicazione sms predefinita – PriyankaChauhan

risposta

13

Sì, il modo in cui si sta tentando di inviare SMS è utilizzando l'applicazione di messaggistica spedita. Quindi registrerà sempre i messaggi inviati. È necessario utilizzare SmsManager per inviare gli SMS.

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

In questo modo, il tuo SMS non verrà inserito nell'elenco.

Ricorda anche di aggiungere questo nel vostro manifesto

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

Possiamo cancellare anche le chiamate dai registri delle chiamate? Voglio dire, voglio cancellare l'ultima chiamata effettuata dai registri delle chiamate. –

+0

Segui questo post http://stackoverflow.com/questions/14019684/delete-call-log-in-android-for-particular-number –

+10

In Android KitKat 4.4.2, invierai sms utilizzando questo codice, che gli sms sono sarà registrato nell'applicazione sms predefinita. – Elshan

1

Se si utilizza l'applicazione Android SMS per inviare un messaggio, allora si potrebbero salvare quel messaggio nella posta in uscita o inviato. Quello che puoi fare è eliminare quel messaggio dal database sms. Dopo l'invio di sms Cancella quel messaggio utilizzando questo:

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

Se msg è nella scatola fuori

O

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

Se il messaggio è in Messaggi inviati.

+0

Grazie per la pubblicazione. Possiamo cancellare anche le chiamate dai registri delle chiamate? Voglio dire, voglio cancellare l'ultima chiamata effettuata dai registri delle chiamate –

+0

Non l'ho mai fatto, ma penso che si possa fare. Ma se vuoi delle risposte, penso che dovresti fare un'altra domanda. :) –

+0

Ok Grazie per questo –