在android listView中显示未读未接来电

时间:2014-07-15 08:40:49

标签: phone-call

我想在我的Android应用中获取未读未接来电列表的详细信息。 我想出了这个代码,但是这显示了我未接来电的整个列表,而不仅仅是那些未读​​的。

    lv= (ListView)findViewById(R.id.listView1);    


    List<String> lst=new ArrayList<String>();


    String miss_read="read";
    String unread_condition=miss_read+"=0";
    String[] projection = {CallLog.Calls.NUMBER,CallLog.Calls.CACHED_NAME,CallLog.Calls.TYPE};
    //String[] projection = {Integer.parseInt(CallLog.Calls.MISSED_TYPE};
    //String where = (CallLog.Calls.TYPE+CallLog.Calls.NEW+"="+CallLog.Calls.MISSED_TYPE);
    String where = (CallLog.Calls.NEW+" = "+"new"+" AND "+CallLog.Calls.TYPE+" = "+CallLog.Calls.MISSED_TYPE);
    Cursor c = this.getContentResolver().query(CallLog.Calls.CONTENT_URI,projection,where, null, null);

    int i=0;
    if(c.moveToFirst())
    {
        do
        {
            if(CallLog.Calls.IS_READ!="is_read")

        lst.add(c.getString(0)+"not read");

        //i++;
        }while(c.moveToNext());
    }
    ArrayAdapter<String> adpt=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,lst);
    lv.setAdapter(adpt);

是否有人为我提供了解决问题的方法...... ??

1 个答案:

答案 0 :(得分:0)

     Try this.

     String[] projection = new String[] { CallLog.Calls.NUMBER,
            CallLog.Calls.TYPE, CallLog.Calls.NEW };    
     String where = (CallLog.Calls.NEW + " = " + "1" + " AND "
            + CallLog.Calls.TYPE + " = " + CallLog.Calls.MISSED_TYPE);
     Cursor c = context.getContentResolver().query(CallLog.Calls.CONTENT_URI,
            projection, where, null, null);