You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何在Android端获取通话记录并在iOS端跳过对应逻辑

通话记录读取跨端实现方案

前提说明

  • Android 6.0及以上需要动态申请READ_CALL_LOG权限,只要用户授权即可正常读取通话记录
  • iOS未对外开放通话记录读取的公共API,调用私有API会被App Store审核拒绝,因此直接跳过该模块逻辑即可

核心实现代码

1. 原生端实现

Android 端

首先在AndroidManifest.xml中注册权限:

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

读取通话记录核心逻辑(Kotlin):

// 权限校验
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CALL_LOG) == PackageManager.PERMISSION_GRANTED) {
    // 按通话时间倒序查询记录
    val callLogCursor = contentResolver.query(
        CallLog.Calls.CONTENT_URI,
        arrayOf(CallLog.Calls.NUMBER, CallLog.Calls.DATE, CallLog.Calls.DURATION, CallLog.Calls.TYPE),
        null, null, "${CallLog.Calls.DATE} DESC"
    )
    callLogCursor?.use { cursor ->
        while (cursor.moveToNext()) {
            val number = cursor.getString(cursor.getColumnIndexOrThrow(CallLog.Calls.NUMBER))
            val callTime = cursor.getLong(cursor.getColumnIndexOrThrow(CallLog.Calls.DATE))
            val duration = cursor.getLong(cursor.getColumnIndexOrThrow(CallLog.Calls.DURATION))
            val callType = cursor.getInt(cursor.getColumnIndexOrThrow(CallLog.Calls.TYPE))
            // 自行处理拿到的通话记录字段
        }
    }
} else {
    // 动态申请权限
    ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_CALL_LOG), 1001)
}

iOS 端

业务逻辑入口直接加判断跳过即可,无额外实现:

// iOS不支持通话记录读取,直接返回
#if os(iOS)
    return
#endif

2. 跨端框架示例(Flutter)

import 'dart:io';
import 'package:permission_handler/permission_handler.dart';
import 'package:call_log/call_log.dart';

Future<void> getCallRecords() async {
  // iOS端直接跳过逻辑
  if (Platform.isIOS) return;
  // Android端先申请权限再读取
  if (await Permission.phone.request().isGranted) {
    Iterable<CallLogEntry> records = await CallLog.get();
    // 处理获取到的通话记录列表
  }
}

注意:Android端读取通话记录属于敏感权限,上架应用商店时需要明确告知用户权限使用场景,符合隐私合规要求。

内容的提问来源于stack exchange,提问作者SangamMahale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:57:02