Delete an sms from inbox

前端 未结 2 732
生来不讨喜
生来不讨喜 2020-12-09 21:46

I would like to delete an SMS from the inbox once it is read by the user. How to do this?

Edit:

public class SmsReceiver extends BroadcastReceiver {

相关标签:
2条回答
  • 2020-12-09 22:18

    You can use following method for deleting SMS from Inbox,

    private void deleteMessage()
    {
        Cursor c = getContentResolver().query(SMS_INBOX, null, null, null, null); 
        //c.moveToFirst(); 
    
        while (c.moveToNext())
        {
            System.out.println("Inside if loop");
    
            try
            {
                String address = c.getString(2);
                String MobileNumber = mainmenu.getParameterData().getMobileNumber().trim();
    
                //Log.i( LOGTAG, MobileNumber + "," + address );
    
                Log.i( LOGTAG, c.getString(2) );
    
    
                if ( address.trim().equals( MobileNumber ) )
                {
                    String pid = c.getString(1);
                    String uri = "content://sms/conversations/" + pid;
                    getContentResolver().delete(Uri.parse(uri), null, null);
                    stopSelf();
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        } 
    }
    
    0 讨论(0)
  • 2020-12-09 22:24

    try this for complete solution for deleting...

        public void deleteSMS(Context context, String message, String number) {
        try {
            Uri uriSms = Uri.parse("content://sms/inbox");
            Cursor c = context.getContentResolver().query(
                    uriSms,
                    new String[] { "_id", "thread_id", "address", "person",
                            "date", "body" }, "read=0", null, null);
    
            if (c != null && c.moveToFirst()) {
                do {
                    long id = c.getLong(0);
                    long threadId = c.getLong(1);
                    String address = c.getString(2);
                    String body = c.getString(5);
                    String date = c.getString(3);
                    Log.e("log>>>",
                            "0>" + c.getString(0) + "1>" + c.getString(1)
                                    + "2>" + c.getString(2) + "<-1>"
                                    + c.getString(3) + "4>" + c.getString(4)
                                    + "5>" + c.getString(5));
                    Log.e("log>>>", "date" + c.getString(0));
    
                    if (message.equals(body) && address.equals(number)) {
                        // mLogger.logInfo("Deleting SMS with id: " + threadId);
                        context.getContentResolver().delete(
                                Uri.parse("content://sms/" + id), "date=?",
                                new String[] { c.getString(4) });
                        Log.e("log>>>", "Delete success.........");
                    }
                } while (c.moveToNext());
            }
        } catch (Exception e) {
            Log.e("log>>>", e.toString());
        }
    }
    
    0 讨论(0)
提交回复
热议问题