1

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

我的代码:

 @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);

        }

    }

}
 }

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

谢谢

4

2 回答 2

2

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

于 2013-08-25T15:10:57.827 回答
0

删除通知

通知保持可见,直到发生以下情况之一:

  • 用户可以单独或使用“全部清除”(如果可以清除通知)来关闭通知。
  • 用户单击通知,您在创建通知时调用了 setAutoCancel()。
  • 您为特定的通知 ID 调用 cancel()。此方法还会删除正在进行的通知。
  • 您调用 cancelAll(),它会删除您之前发出的所有通知。
于 2013-08-25T17:53:16.827 回答