Trong ứng dụng của tôi, tôi nhận được nhật ký tất cả cuộc gọi bằng cách sử dụng mã này.it trả lại cho tôi tất cả nhật ký cuộc gọi trong điện thoại Android của tôi.Cách nhận nhật ký cuộc gọi từ ngày cụ thể trong android
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);
}
}
Nhưng vấn đề của tôi là tôi muốn nhận nhật ký cuộc gọi từ ngày cụ thể, không phải tất cả nhật ký cuộc gọi. Tôi không biết cách sử dụng truy vấn để nhận nhật ký cuộc gọi từ ngày cụ thể. Giúp tôi Cảm ơn
Khá chắc chắn mã này sẽ gây ra và ngoại lệ OOB khi gán giá trị ngày cho mSelectionArgs [1], phải là mSelectionArgs [0] = createDate (2013,1,1) .toString(). Tốt hơn là sẽ khởi tạo giá trị chuỗi thay vì tạo một chuỗi rỗng và sau đó loại bỏ nó ngay lập tức, như trong: String [] mSelectionArgs = {String.valueOf (createDate (2013,1,1))}. – Brandon
Sẽ upvote câu trả lời nếu Brandon 'sửa chữa được kết hợp. – Kobor42
Xin chào các bạn đã sử dụng mã trên nhưng tôi vẫn nhận được một con trỏ trống mặc dù tôi có dữ liệu trong nhật ký cuộc gọi? bất kỳ ý tưởng? – kAnNaN