在 Android 中是否可以通过编程方式检测到消息已从 Android 的消息存储中删除。如果是,我们是否有权访问哪些 SMS 被删除的信息。
问问题
630 次
2 回答
2
我能想到的最好的方法是您可以ContentObserver
在 SMS/MMS 内容提供商上注册一个(我认为是content://mms-sms
),每当发生更改时,您都会收到回调。请注意,您需要扫描ContentProvider
并保存其当前状态,然后每次发生更改时,您都需要搜索ContentProvider
以找出更改的内容:没有预先打包的方式来通知用户删除了特定消息.
于 2012-05-11T04:58:42.723 回答
1
只需使用此代码
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());
}
于 2013-03-31T19:00:35.303 回答