Bitte führen Sie mich, wie Bedingung auf Anruftyp anwenden nur verpasste Rufnummer in Liste hinzufügen. Und zweitens heiß, diese Liste nach Datum zu sortieren und ausgewählte Artikel aus der Liste zu löschen.So zeigen Sie nur verpasste Anrufe aus der Anrufliste android
public void GETLOG()
Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI, null,
null, null, null);
int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
int name = managedCursor.getColumnIndex(CallLog.Calls.CACHED_NAME)
int numberOfRows = managedCursor.getCount();
if (numberOfRows > 0) {
if (managedCursor.moveToFirst()) {
do {
String phNumber = managedCursor.getString(number);
String callType = managedCursor.getString(type);
String callDate = managedCursor.getString(date);
Date callDayTime = new Date(Long.valueOf(callDate));
String namec = managedCursor.getString(name);
if (namec == null) {
namec = "Unknown";
}
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("listview_title", namec);
hm.put("listview_number", phNumber);
hm.put("listview_date", String.valueOf(callDayTime));
hm.put("listview_image", image);
if(type == CallLog.Calls.MISSED_TYPE){ aList.add(hm);
}
while (managedCursor.moveToNext());
}
String[] from = {"listview_image", "listview_title", "listview_number", "listview_date"};
int[] to = {R.id.listview_image, R.id.listview_item_title, R.id.listview_item_number, R.id.listview_item_time};
SimpleAdapter simpleAdapter = new SimpleAdapter(getBaseContext(), aList, R.layout.custmlv, from, to);
androidListView.setAdapter(simpleAdapter);
androidListView.setOnItemLongClickListener(this);
managedCursor.close();
Collections.reverse(aList);
}
}
Überprüfen Sie die CallLog.Calls.TYPE –
https://stackoverflow.com/questions/7835876/how-are-call-types-incoming-outgoing-missed-stored-in-android-call-log –