Простой доступ к журналам вызовов во флаттере (?) - PullRequest
0 голосов
/ 15 января 2020

Мне нужен доступ к журналу вызовов мобильного телефона android в моем проекте, и у меня нет особого опыта работы с Flutter. Нашел пакет с именем ' call_log ', но не знаю, как его реализовать. Я был бы очень признателен за любую помощь здесь.

Вот файл readme пакета 'call_log':

// IMPORT PACKAGE
import 'package:call_log/call_log.dart';

// GET WHOLE CALL LOG
Iterable<CallLogEntry> entries = await CallLog.get();

// QUERY CALL LOG (ALL PARAMS ARE OPTIONAL)
var now = DateTime.now();
int from = now.subtract(Duration(days: 60)).millisecondsSinceEpoch;
int to = now.subtract(Duration(days: 30)).millisecondsSinceEpoch;
Iterable<CallLogEntry> entries = await CallLog.query(
      dateFrom: from,
      dateTo: to,
      durationFrom: 0,
      durationTo: 60,
      name: 'John Doe',
      number: '901700000',
      type: CallType.incoming,
    );

1 Ответ

0 голосов
/ 15 января 2020

Что я могу понять из вашего вопроса, вы не можете работать с выводом CallLog.get () здесь.

После добавления пакета в зависимости от файла pubspe c .yaml и его импорта Вы можете вызвать функцию get () , используя следующую строку кода -

Iterable<CallLogEntry> entries = await CallLog.get();

Возвращает Iterable типа CallLogEntry. Итерируемым является просто набор значений или «элементов», к которым можно обращаться последовательно.

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

  void _callLogs() async {
  Iterable<CallLogEntry> entries = await CallLog.get();
  for (var item in entries) {
    print(item.name);
  }
}

Приведенный выше фрагмент кода выведет имена всех записей CallLog. Попробуйте заменить item.name на item.number, item.duration, item.callType.

Кроме того, не забудьте добавить следующую строку в AndroidManifest. xml

<uses-permission android:name="android.permission.READ_CALL_LOG" />

Вместо CallLog.get (), вы также можете использовать CallLog.query (), чтобы указать ограничения на ответ / вывод, как упомянуто в самом вопросе.

...