我目前正在使用以下方式检测未接来电:
String[] projection = new String[]{CallLog.Calls.NUMBER,
CallLog.Calls.TYPE,
CallLog.Calls.DURATION,
CallLog.Calls.CACHED_NAME,
CallLog.Calls._ID};
String where = CallLog.Calls.TYPE+"="+CallLog.Calls.MISSED_TYPE+" AND NEW = 1";
Cursor c = context.getContentResolver().query(CallLog.Calls.CONTENT_URI,projection,where, null, null); c.moveToFirst();
Log.d("CALL", ""+c.getCount());
if(c.getCount() > 0)
// code that displays in a textview the number of missed calls;
使用标记我正在向客户端显示未接来电。
如果读取未接来电
,是否有方法可以将textview值重置为0?是否有广播接收器或在读取未接来电时通知我的内容?
答案 0 :(得分:0)
获取有关未接来电的信息。您可以使用以下内容。
String[] projection = { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.TYPE };
String where = CallLog.Calls.TYPE + "=" + CallLog.Calls.MISSED_TYPE + " AND " + CallLog.Calls.NEW + "=1";
Cursor c = this.getContentResolver().query(CallLog.Calls.CONTENT_URI, projection, where, null, null);
在此光标中,您将获得未接来电的所有详细信息。然后你必须再打一次电话来检查是否读了电话。我认为使用TimerTask
或使用AlaramManager
可以再次填充光标。或者,如果您在活动中显示,则尝试在该活动开始时再次填写。
希望它会对你有所帮助。