Android M & Lollipop - 将未接来电标记为已读
Android M & Lollipop - Mark missed call as read
我在启动我的应用程序后使用以下代码清除未接来电。在此我得到受影响的行是 1。但是当我接到下一个未接来电时,当时 android 的股票 phone 应用程序添加了一个新通知作为“2 个新未接来电”。意味着他们不算我清楚。我错过了什么吗?
注意:如果我启动股票 phone 应用程序一次,计数器将再次重置为 0。
public boolean markMissedCallsAsRead() {
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NEW, Integer.valueOf(0));
values.put(CallLog.Calls.IS_READ, Integer.valueOf(1));
StringBuilder where = new StringBuilder();
where.append(CallLog.Calls.NEW);
where.append(" = 1 AND ");
//where.append(CallLog.Calls.IS_READ).append(" = 0");
//where.append(" AND ");
where.append(CallLog.Calls.TYPE).append(" = ").append(CallLog.Calls.MISSED_TYPE);
int rows = context.getContentResolver().update(CallLog.Calls.CONTENT_URI, values, where.toString(),
null);
Utilities.writeToLogFile(Constants.LOG_ERROR_LEVEL, "cleared call logs " + rows);
return true;
}
我遇到了同样的问题。这里有一个类似的问题:
我开始认为(如该线程中所述)实现该目标的唯一方法是打开股票调用日志(我希望我错了,但找不到其他任何东西)。
我在启动我的应用程序后使用以下代码清除未接来电。在此我得到受影响的行是 1。但是当我接到下一个未接来电时,当时 android 的股票 phone 应用程序添加了一个新通知作为“2 个新未接来电”。意味着他们不算我清楚。我错过了什么吗?
注意:如果我启动股票 phone 应用程序一次,计数器将再次重置为 0。
public boolean markMissedCallsAsRead() {
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NEW, Integer.valueOf(0));
values.put(CallLog.Calls.IS_READ, Integer.valueOf(1));
StringBuilder where = new StringBuilder();
where.append(CallLog.Calls.NEW);
where.append(" = 1 AND ");
//where.append(CallLog.Calls.IS_READ).append(" = 0");
//where.append(" AND ");
where.append(CallLog.Calls.TYPE).append(" = ").append(CallLog.Calls.MISSED_TYPE);
int rows = context.getContentResolver().update(CallLog.Calls.CONTENT_URI, values, where.toString(),
null);
Utilities.writeToLogFile(Constants.LOG_ERROR_LEVEL, "cleared call logs " + rows);
return true;
}
我遇到了同样的问题。这里有一个类似的问题:
我开始认为(如该线程中所述)实现该目标的唯一方法是打开股票调用日志(我希望我错了,但找不到其他任何东西)。