关于它有很多问题,我的申请中没有答案:(
我需要从接收器中删除SMS,即使用户可以看到它,但必须以编程方式删除它.
我该怎么做?
我使用的最合适的是以下,但它不起作用:(
context.getContentResolver().delete(
deleteUri,
"address=? and date=?",
new String[] { msg.getOriginatingAddress(),
String.valueOf(msg.getTimestampMillis()) });
Run Code Online (Sandbox Code Playgroud)
重构我的代码后,我发现下一个解决方案有效:
private int deleteMessage(Context context, SmsMessage msg) {
Uri deleteUri = Uri.parse("content://sms");
int count = 0;
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/" + pid;
count = context.getContentResolver().delete(Uri.parse(uri),
null, null);
} catch (Exception e) {
}
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
谢谢大家的帮助!
ps如果这段代码对某些代码有用 - 请记住catch(异常)并不好.