只需访问 flutter 中的通话记录(?)
Simply accessing call logs in flutter (?)
我需要在我的项目中访问 android 移动设备 phone 的通话记录,我对 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();
它 returns 一个 CallLogEntry 类型的 Iterable。可迭代对象只是 值的集合,或 "elements",可以按顺序访问。
输出存储在 entries 中,然后可以对其进行迭代以访问诸如 -
之类的值
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() 来指定对 response/output 的约束,如问题本身所述。
我需要在我的项目中访问 android 移动设备 phone 的通话记录,我对 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();
它 returns 一个 CallLogEntry 类型的 Iterable。可迭代对象只是 值的集合,或 "elements",可以按顺序访问。
输出存储在 entries 中,然后可以对其进行迭代以访问诸如 -
之类的值 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() 来指定对 response/output 的约束,如问题本身所述。