在android中获取通话记录

时间:2016-07-11 09:21:59

标签: android listview phone-call

我使用了Calllogs.calls方法并获取了联系人和详细信息,但我将所有的通话记录都放在一个字符串中使用此代码。

  private void getCallDetails() {

    StringBuffer sb = new StringBuffer();
    if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {

        return;
    }
    Cursor managedCursor = getActivity().getContentResolver().query(CallLog.Calls.CONTENT_URI,
            null, null, null, CallLog.Calls.DATE + " DESC");
    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 Details :");
    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---------------------------------------------");
    }
    managedCursor.close();

    String s= sb.toString();
    String[] array;



    ArrayList<String> list=new ArrayList<>();

    for(int i=1; i<40; i++){
        if(s.contains("Phone Number")){
            array=s.split("Phone Number");
           list.add(array[i - 1]);


        }
    }

现在我想分别用特定细节拆分所有联系人并在Listview中显示它们。如何拆分它们并在自定义列表视图中设置它们。我希望它像我的操作员跟进页面,如链接所示。

  [This is how i want it to be][1]

0 个答案:

没有答案