• 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);
}
}
 
Hi,

if i don't bother you, can you post how the AndroidManifest.xml looks like for the above code and have you successfuly deleted the message before entering the inbox or before notification???

Regards,
rahel
 
Hello Rahel

To access & modify the SMS Database you need to add the following statements after the </application> part:

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


Of course, only take the one(s) you need.
 
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?
 
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.
 
To avoid accessing the db before the new message has been saved, you can use a Content Observer.

cheeers.


but we need to delete SMS, and without location how can u delete SMS. for Delete any entry we must have location. This is not valid for SMS for any item.
 
I have a question: I downloaded SMS delete to delete a thread of 9,986 messages from one 1 contact. Now it worked great but when I woke up the next day, ALL my other messages were deleted also!! is there anyway I can get those back??
 
Back
Top Bottom