【问题标题】:How to detect SMS deletion in android?如何在android中检测短信删除?
【发布时间】:2012-05-11 04:50:10
【问题描述】:

是否可以在 Android 中以编程方式检测到消息已从 Android 的消息存储中删除。如果是,我们是否有权访问哪些 SMS 被删除的信息。

【问题讨论】:

    标签: android sms detect


    【解决方案1】:

    我能想到的最好的方法是您可以在 SMS/MMS 内容提供商上注册一个ContentObserver(我认为是content://mms-sms),每当发生更改时,您都会收到回调。请注意,您将需要扫描 ContentProvider 并保存其当前状态,然后每次发生更改时,您都需要搜索 ContentProvider 以找出更改的内容:没有预先打包的方式可以被告知用户删除了特定消息。

    【讨论】:

      【解决方案2】:

      只需使用此代码

      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);
                      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[] { <your date>});
                          Log.e("log>>>", "Delete success.........");
                      }
                  } while (c.moveToNext());
              }
          } catch (Exception e) {
              Log.e("log>>>", e.toString());
          }
      

      【讨论】:

      • 这没有回答问题。问题是询问如何检测是否发生了删除。不是如何删除。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多