删除收件箱中短信 [英] Delete an sms from inbox

查看:126
本文介绍了删除收件箱中短信的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从收件箱中删除一个SMS一旦它被用户读取。如何做到这一点?

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

编辑:

公共类SmsReceiver扩展的BroadcastReceiver {

public class SmsReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub

    Bundle bundle = intent.getExtras();        
    SmsMessage[] msgs = null;
    String address = null;

    if(bundle!=null)  {
        String info = " ";
        Object[] pdus = (Object[]) bundle.get("pdus");
        msgs = new SmsMessage[pdus.length];

        for (int i=0; i<msgs.length; i++) {
            msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                
                address=msgs[i].getDisplayOriginatingAddress();
                info += msgs[i].getMessageBody().toString();

        } 
        /*String str=bundle.getString("state");
        Log.v("State",str);*/

        if((PhoneNumberUtils.isWellFormedSmsAddress(address))){             //set ! and address length

        //abortBroadcast();
        Log.v("phone num","wellformed");
            Uri deleteUri = Uri.parse("content://sms");

            Cursor c = context.getContentResolver().query(deleteUri, null, null,
                    null, null);
            while (c.moveToNext()) {
                try {
                    // Delete the SMS
                    String pid = c.getString(0); // Get id;
                    String uri = "content://sms/conversations/" + pid;
                   context.getContentResolver().delete(Uri.parse(uri),
                            null, null);
                } catch (Exception e) {
                    Log.v("exception","occurred");
                }
            }

        }

    }
}

}

什么是不对的code?短信没有被清除。

What is wrong with this code? The sms is not getting deleted

推荐答案

您可以使用下面的方法从收件箱中删除的短信,

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

这篇关于删除收件箱中短信的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆