如何删除android中接收短信的通知

时间:2013-08-25 15:01:06

标签: android notifications broadcastreceiver

我写短信应用程序。这个应用程序在数据库中添加联系人,当收到短信时,它在收件箱中删除并添加到我的数据库中,

我的代码:

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

db_contact = new DatabaseContact(context);
db_sms = new DatabaseSMS(context);

Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "", str2 = "";
if (bundle != null) {
    // ---retrieve the SMS message received---
    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]);

        str = msgs[i].getMessageBody().toString();

        str2 = msgs[i].getOriginatingAddress();
    }
    // ---display the new SMS message---
    Log.e("", str2);
    db = db_contact.getReadableDatabase();
    Cursor cursors = db.rawQuery("select * from " + db_contact.TABLE
            + " where tel='" + str2 + "' ", null);
    for (int i = 0; i < cursors.getCount(); i++) {
        cursors.moveToNext();

        String name = cursors.getString(cursors.getColumnIndex("name"));
        String tel = cursors.getString(cursors.getColumnIndex("tel"));
        Log.e("Add to database :   ", name + " ,tel " + tel);
        db_sms.AddRow(name, tel, str);

        Uri uriSms = Uri.parse("content://sms");
        Cursor c = context.getContentResolver().query(uriSms, null,
                null, null, null);
        if (c.moveToNext()) {
            int id = c.getInt(0);
            int thread_id = c.getInt(1); // get the thread_id
            context.getContentResolver().delete(
                    Uri.parse("content://sms/conversations/"
                            + thread_id), null, null);

        }

    }

}
 }

如何删除接收短信中的通知? 如何在app中管理通知?

感谢

2 个答案:

答案 0 :(得分:2)

不确定这里的问题是什么,但如果您有任何机会想要删除您的通知,那么,请不要在第一时间发布。如果您想在其他应用中禁用,那么您只能告诉您的用户他们将在其他应用的设置中禁用这些通知。

答案 1 :(得分:0)

删除通知

在下列情况之一发生之前​​,通知仍然可见:

  • 用户单独或通过使用解除通知 “全部清除”(如果可以清除通知)。
  • 用户点击通知,然后调用setAutoCancel() 你创建了通知。
  • 您可以为特定通知ID调用cancel()。这种方法也 删除正在进行的通知。
  • 您调用cancelAll(),它会删除您的所有通知 以前发行的。