gpt4 book ai didi

flutter - 只需访问 flutter 中的通话记录(?)

转载 作者:行者123 更新时间:2023-12-03 04:11:20 31 4
gpt4 key购买 nike

我需要在我的项目中访问android手机的通话记录,但在Flutter中没有那么多的经验。找到一个名为“call_log”的软件包,但不知道如何实现。我非常感谢您的帮助。

这是“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,
);

最佳答案

从您的问题中我可以理解的是,您无法在此处使用CallLog.get()的输出。

将包添加到pubspec.yaml文件依赖项并导入后,可以使用以下代码行调用 get()函数-

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

它返回CallLogEntry类型的Iterable。可迭代对象只是可以顺序访问的值或“元素”的集合。

输出将存储在条目中,然后可以对其进行迭代以访问值,例如-
  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.query()代替CallLog.get()来指定对响应/输出的约束。

关于flutter - 只需访问 flutter 中的通话记录(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59752736/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com