• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps How Delete SMS

Hi all,

I am trying to delete SMS from inbox but not able to delete any one
can help me i am trying like this
message format which i received "1234 abcde ijklm"
************************************
public class VOPSMSReceiver extends BroadcastReceiver {

private String userName = null;
private String password = null;
private String receivedSMS = null;
@Override
public void onReceive(Context context, Intent intent) {

if(!intent.getAction().equals
("android.provider.Telephony.SMS_RECEIVED"))
{
return;
}
SmsMessage smsMsg[] = getMessagesFromIntent(intent);

for(int i=0; i < smsMsg.length; i++)
{
receivedSMS = smsMsg.getDisplayMessageBody();
if(receivedSMS.startsWith("1234"))
{
String[] dataArray = VOPUtility.breakIntoLines
(receivedSMS, ' ');
String uName = dataArray[1];
String uPassword = dataArray[2];
this.updateUsernamePassword(context, uName, uPassword);// here i am saving required data

Toast.makeText(context,"Settings saved", Toast.LENGTH_LONG).show
();
try{
//*****here i want to delete sms which i receive currently which is
starting with 1234 *****//

Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(uriSms,
null,null,null,null);
int thread_id = c.getCount();//c.getInt(1); //get the thread_id
Log.i("Thread Id***",""+thread_id);
Log.i("COUNT ***",""+c.getCount());
context.getContentResolver().delete(Uri.parse
("content://sms/conversations/"
+thread_id),null,null);
}catch(Exception e)//conversations
{
Log.i("exception ",e.getMessage());
}
}

}

}



**********************************
in try catch block i want to delete sms after getting my required data
like username and password

i want to delete this perticullar sms programatically .i have received sms
successfully get the required data but after getting data i m not able
to delete that sms
any one can help me how i can delete it .OR prevent it to received in
inbox ?

Thanks,
Gulfam
 
Hi all,

I am trying to delete SMS from inbox but not able to delete any one
can help me i am trying like this
message format which i received "1234 abcde ijklm"
************************************
public class VOPSMSReceiver extends BroadcastReceiver {

private String userName = null;
private String password = null;
private String receivedSMS = null;
@Override
public void onReceive(Context context, Intent intent) {

if(!intent.getAction().equals
("android.provider.Telephony.SMS_RECEIVED"))
{
return;
}
SmsMessage smsMsg[] = getMessagesFromIntent(intent);

for(int i=0; i < smsMsg.length; i++)
{
receivedSMS = smsMsg.getDisplayMessageBody();
if(receivedSMS.startsWith("1234"))
{
String[] dataArray = VOPUtility.breakIntoLines
(receivedSMS, ' ');
String uName = dataArray[1];
String uPassword = dataArray[2];
this.updateUsernamePassword(context, uName, uPassword);// here i am saving required data

Toast.makeText(context,"Settings saved", Toast.LENGTH_LONG).show
();
try{
//*****here i want to delete sms which i receive currently which is
starting with 1234 *****//

Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(uriSms,
null,null,null,null);
int thread_id = c.getCount();//c.getInt(1); //get the thread_id
Log.i("Thread Id***",""+thread_id);
Log.i("COUNT ***",""+c.getCount());
context.getContentResolver().delete(Uri.parse
("content://sms/conversations/"
+thread_id),null,null);
}catch(Exception e)//conversations
{
Log.i("exception ",e.getMessage());
}
}

}

}



**********************************
in try catch block i want to delete sms after getting my required data
like username and password

i want to delete this perticullar sms programatically .i have received sms
successfully get the required data but after getting data i m not able
to delete that sms
any one can help me how i can delete it .OR prevent it to received in
inbox ?

Thanks,
Gulfam





i have used this code to delete sms.

public void deleteSMS() {
try {
Uri uriSms = Uri.parse("content://sms/sent");
Cursor c = getContentResolver().query(uriSms,
new String[] { "_id", "thread_id" }, null, null, null);
if (c != null && c.moveToFirst()) {
do {
long threadId = c.getLong(1);
System.out.println("threadId:: "+threadId);
// if (threadId == 4){
getContentResolver().delete(
Uri.parse("content://sms/conversations/" + threadId),
null, null);
// }
} while (c.moveToNext());
}
}catch (Exception e) {
// TODO: handle exception
System.out.println("Exception:: "+e);
}
}
 
Upvote 0
Gulfam
I have the same requirement too - to delete the incoming SMS based on some criteria that it satisfies but still not found a way to it. Have you had any luck so far?

@pmishra
your code to delete the SMS works only on the existing messages in the inbox but not the newly arriving message. The problem is that the new message that arrives gets stored in the inbox after the onReceive() event is triggered. During this event, it has not yet reached the inbox.

Any suggestions on what we can do here?
 
Upvote 0
Gulfam
I have the same requirement too - to delete the incoming SMS based on some criteria that it satisfies but still not found a way to it. Have you had any luck so far?

@pmishra
your code to delete the SMS works only on the existing messages in the inbox but not the newly arriving message. The problem is that the new message that arrives gets stored in the inbox after the onReceive() event is triggered. During this event, it has not yet reached the inbox.

Any suggestions on what we can do here?

see gulfam, when u get callback in onReceive() there will be some location of SMS where SMS is storing, if u able to find that location then just parse the uri string and get the cursor object.
if u are able to find the location then u can easily delete that sms as i have mentioned.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones