首页 > 解决方案 > How to check if the user has called a number within the last week?

问题描述

I want to be able to check if the user has called a number within the last week and if they haven't display a Toast.

So far, I've created a function that gets the users Call logs. However, im not sure how I would check whether they have called someone within a period of time such as a week?

This is my code:

        StringBuffer sb = new StringBuffer();
    Cursor managedCursor = getContentResolver().query(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 duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
    sb.append("Call Log :");
    while (managedCursor.moveToNext()) {
        String phNumber = managedCursor.getString(number);
        String callType = managedCursor.getString(type);
        String callDate = managedCursor.getString(date);
        Date callDayTime = new Date(Long.valueOf(callDate));
        String callDuration = managedCursor.getString(duration);
        String dir = null;
        int dircode = Integer.parseInt(callType);
        switch (dircode) {
            case CallLog.Calls.OUTGOING_TYPE:
                dir = "OUTGOING";
                break;

            case CallLog.Calls.INCOMING_TYPE:
                dir = "INCOMING";
                break;
            case CallLog.Calls.MISSED_TYPE:
                dir = "MISSED";
                break;
        }

        sb.append("\nPhone Number:--- " + phNumber +
                " \nCall Type:--- " + dir +
                " \nCall Date:--- " + callDayTime +
                " \nCall duration in sec :--- " +
                callDuration);
        sb.append("\n----------------------------------");

    }

Just wondering what the best way to do this is?

Thanks!

标签: javaandroid

解决方案


这是我的评论的近似值。它是伪代码,但只需更改几件事即可使其正常工作。希望这可以帮助。

while (managedCursor.moveToNext()) {
        String callDate = managedCursor.getString(date);
        Date callDayTime = new Date(Long.valueOf(callDate));
        if (<compare callDayTime with a "Date" of one week ago> ){
            String phNumber = managedCursor.getString(number);
            if (<phNumber is equal to the desired Phone>) {
                if(Integer.parseInt(callType) == CallLog.Calls.OUTGOING_TYPE){
                    // User called the phone number last week
                }
            }
        }       
}

推荐阅读