0

我目前正在使用以下方法检测未接来电:

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

当读取未接电话时,是否有广播接收器或通知我的东西?

4

1 回答 1

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你可以再次填充光标。或者,如果您在活动中显示,则在该活动开始时尝试再次填充它。

希望它会帮助你。

于 2013-05-14T11:20:10.947 回答