Как подсчитать количество входящих звонков на определенный номер в callLog.calls? ЖУРНАЛЫ ВЫЗОВОВ ЗАПРОСА ANDROID

У меня есть phonestatelistener, который извлекает номер входящего вызова, что я хочу сделать, это запросить и проверить этот определенный номер в поставщике контента callLog и получить количество входящих вызовов, которые этот конкретный номер сделал в определенную дату

и при этом я хочу также проверить, имеет ли этот номер наибольшее количество входящих вызовов за указанное время, если да, то будут звонить только его звонки, в противном случае звонок не будет слышен

приложение на самом деле считает человека с наибольшим количеством входящих звонков частым звонящим, если он подходит, то он будет считаться важным контактом, и его звонки будут звонить

моя проблема в том, как мне это сделать в запросе?? хеилпп!!


person Don JedStryker    schedule 18.07.2013    source источник


Ответы (1)


Вы можете использовать код как

   Uri urlcall = Uri.parse("content://call_log/calls/");
   Cursor receivec = null;
   receivec = HomeErasor.this.getContentResolver().query(urlcall,
                null, "TYPE='" + CallLog.Calls.INCOMING_TYPE + "'", null,
                null);

   if (c.moveToFirst()) {
        do {

// здесь вы получите всю информацию, такую ​​​​как номер и дата, сравните один и тот же номер с другой датой, и эта дата должна быть такой, как вы хотите. (CALLLOG.CALL.DATE возвращает время + дата), сравнивая это, вы получите, сколько раз этот номер вызывался ты.

            String num =c.getString(c.getColumnIndex(CallLog.Calls._ID));
            String queryString = "_ID=" + num;
            // Log.v("_ID", queryString);               
            // use value
        } while (c.moveToNext());
    }
person Shree    schedule 18.07.2013
comment
я уже запросил его таким образом, но идея в том, что я хочу получать только входящие вызовы с определенной даты, когда я добавляю WHERE CallLog.calls.DATE ›= todaysDate (это значение даты, превращенное в строку, и с форматом dd -ММ-гггг), я также хочу узнать и получить человека с наибольшим количеством входящих звонков за день, вы можете помочь? мне действительно нужно это на следующей неделе, спасибо! - person Don JedStryker; 18.07.2013
comment
Я отредактировал свой ответ. Надеюсь, это поможет вам - person Shree; 19.07.2013
comment
эй человек! спасибо, у меня есть еще один вопрос, как мне поместить фильтр даты в предложение where? я должен сделать это так? CallLog.Calls.DATE + ›= ' + todaysDate + ' todaysDate — это строка, поскольку CallLog.Calls.DATE принимает строку, она имеет формат (дд-мм-гггг), это правильно? или что то менять??? - person Don JedStryker; 19.07.2013
comment
вы не можете написать CallLog.Calls.DATE напрямую, это имя столбца, которое имеет тип long. с помощью метода getLong() вы можете получить значение из базы данных, а затем сравнить его с вашей текущей датой, это длинное значение может дать вам время и дату, и вы можете использовать класс SimpleDateFormat для извлечения этих данных в определенном формате даты + времени. формат даты вы можете использовать его как ваше требование. - person Shree; 20.07.2013
comment
да, я уже сделал запрос, который получает все входящие вызовы в эту конкретную дату, теперь осталось только сделать. . как мне использовать этот запрос, чтобы получить номер с наибольшим количеством входящих вызовов? можно сделать пример запроса? например, SELECT * NUMBER из callLogs, где type=incoming and date›todaysDate и max(TYPE) ‹‹, как это сделать? - person Don JedStryker; 21.07.2013
comment
на самом деле я задал другой вопрос, чтобы его было ясно понять, если вы можете, пожалуйста, проверьте его stackoverflow.com/questions/17774111/ - person Don JedStryker; 21.07.2013