W mojej aplikacji otrzymuję dziennik wszystkich połączeń za pomocą tego kodu. Zwróć mi cały dziennik połączeń w telefonie z Androidem.Jak uzyskać dziennik połączeń z określonej daty w Androidzie
public class CallLogHelper {
public static Cursor getAllCallLogs(ContentResolver cr) {
// reading all data in descending order according to DATE
String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
Uri callUri = Uri.parse("content://call_log/calls");
Cursor curCallLogs = cr.query(callUri, null, null, null, strOrder);
return curCallLogs;
}
public static void insertPlaceholderCall(ContentResolver contentResolver,
String name, String number) {
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, number);
values.put(CallLog.Calls.DATE, System.currentTimeMillis());
values.put(CallLog.Calls.DURATION, 0);
values.put(CallLog.Calls.TYPE, CallLog.Calls.OUTGOING_TYPE);
values.put(CallLog.Calls.NEW, 1);
values.put(CallLog.Calls.CACHED_NAME, name);
values.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0);
values.put(CallLog.Calls.CACHED_NUMBER_LABEL, "");
Log.d("Call Log", "Inserting call log placeholder for " + number);
contentResolver.insert(CallLog.Calls.CONTENT_URI, values);
}
}
Ale mój problem polega na tym, że chcę uzyskać rejestr połączeń z określonej daty, a nie z całego rejestru połączeń. Nie mam pojęcia, jak użyć zapytania, aby uzyskać dziennik połączeń od określonej daty. Pomóż mi Dzięki
Całkiem pewien, że ten kod spowoduje i wyjątek OOB przy przypisywaniu wartości daty do mSelectionArgs [1], powinien być mSelectionArgs [0] = createDate (2013,1,1) .toString(). Jeszcze lepiej byłoby zainicjować wartość ciągu zamiast tworzyć pusty łańcuch, a następnie natychmiast go odrzucić, jak w: String [] mSelectionArgs = {String.valueOf (createDate (2013,1,1))}. – Brandon
Przekaże odpowiedź, jeśli poprawka Brandona zostanie włączona. – Kobor42
Witam, użyłem powyższego kodu, ale nadal mam pusty kursor, mimo że mam dane w rejestrze połączeń? jakieś pomysły? – kAnNaN