Registros de llamadas para dispositivo Android dual sim

Estoy usando el siguiente código para obtener los detalles del registro de llamadas, que funciona muy bien para un solo dispositivo SIM, pero el problema surge cuando se trata de la sim DUAL. Estoy tratando de encontrar soluciones para obtener registros del dispositivo dual sim.

/**
     * Get All Call Logs details as JSON
     * 
     * @param context
     */
    @SuppressLint("SimpleDateFormat")
    private void getInitialCallDetailsAsJSON() {
        // Print dates of the current week starting on Monday
        DateFormat df = new SimpleDateFormat("dd-MMM-yyyy hh:mm aa",
                Locale.getDefault());

        final Uri contacts = CallLog.Calls.CONTENT_URI;
        final Cursor managedCursor = getContentResolver().query(contacts, null,
                null, null, null);
        final int name = managedCursor
                .getColumnIndex(CallLog.Calls.CACHED_NAME);
        final int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
        final int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
        final int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
        final int durationOfCall = managedCursor
                .getColumnIndex(CallLog.Calls.DURATION);

        final JSONObject allDetailsJsonObject = new JSONObject();
        final JSONArray array = new JSONArray();

        if (managedCursor != null && managedCursor.getCount() > 0) {
            while (managedCursor.moveToNext()) {
                String contactName = managedCursor.getString(name);
                final String phoneNumber = managedCursor.getString(number);
                final String callTypeIndex = managedCursor.getString(type);
                final String callDate = managedCursor.getString(date);
                final String callDurationSeconds = managedCursor
                        .getString(durationOfCall);

                final int totalTime = Integer.parseInt(callDurationSeconds);
                int day = (int) TimeUnit.SECONDS.toDays(totalTime);
                long hours = TimeUnit.SECONDS.toHours(totalTime) - (day * 24);
                long minute = TimeUnit.SECONDS.toMinutes(totalTime)
                        - (TimeUnit.SECONDS.toHours(totalTime) * 60);
                long second = TimeUnit.SECONDS.toSeconds(totalTime)
                        - (TimeUnit.SECONDS.toMinutes(totalTime) * 60);

                String callDurationFormatted = "";
                if (hours < 10) {
                    callDurationFormatted += "0" + hours + "h ";
                } else {
                    callDurationFormatted += hours + "h ";
                }

                if (minute < 10) {
                    callDurationFormatted += "0" + minute + "m ";
                } else {
                    callDurationFormatted += minute + "m ";
                }

                if (second < 10) {
                    callDurationFormatted += "0" + second + "s";
                } else {
                    callDurationFormatted += second + "s";
                }

                String callType = null;
                final int dircode = Integer.parseInt(callTypeIndex);
                switch (dircode) {
                case CallLog.Calls.OUTGOING_TYPE:
                    callType = CallAnalyticsConstant.OUTGOING;
                    break;

                case CallLog.Calls.INCOMING_TYPE:
                    callType = CallAnalyticsConstant.INCOMING;
                    break;

                case CallLog.Calls.MISSED_TYPE:
                    callType = CallAnalyticsConstant.MISSED;
                    break;
                }

                if (contactName == null || contactName.equalsIgnoreCase("")) {
                    contactName = "UNKNOWN";
                }
        }
        managedCursor.close();
    }

Si alguien tiene alguna idea, por favor, ayúdenme a obtener detalles relacionados con las llamadas para teléfonos con doble sim.

APLICACIÓN que también funciona bien para teléfonos con doble sim.MONITOR DE REGISTRO DE LLAMADAS

Respuestas a la pregunta(2)

Su respuesta a la pregunta