查看: 299|回复: 3

HarmonyOS 6.1 Call Kit企业来电显示权限与号码识别实

[复制链接]
发表于 昨天 13:00 | 显示全部楼层 |阅读模式
在电诈横行的今天,用户对陌生来电高度警惕,正规的物流派送、企业客服等业务呼叫常因无法证明身份而被直接挂断。HarmonyOS 6.1(API 23)及6.1.1(API 24)的 Call Service Kit 提供了三个核心能力:企业来电显示权限探测、号码识别开关查询、后台拦截器扩展,配合快递数据卡片,能在来电界面安全展示认证身份与订单信息。1. 企业来电资质探测\n应用必须先在华为AGC完成企业身份资质认证,并通过
  1. numberIdentify.isSupportEnterpriseNumberIdentify(context)
复制代码
确认设备是否开通该权限。该接口仅在Stage模型的UIAbilityContext下可用,返回Promise。若为false,引导开发者替换AGC证书与调试Profile。常见错误码8300002表示资质未认证。2. 三路开关状态查询\n在展示号码识别前,需调用
  1. numberIdentify.queryNumberIdentifySwitchState(context)
复制代码
同步获取SwitchState对象:\n- isNumberIdentifyEnabled:陌生号码与信息识别总开关;\n- isApplicationNumberIdentifyEnabled:本应用号码识别开关;\n- isBusinessServiceDataEnabled(API 24新增):快递服务数据展示开关。\n这三个开关用于调整UI引导或系统设置页跳转。\n跳转系统设置页可通过隐式Want拉起:\n
  1. let wantInfo: Want = {\n  bundleName: 'com.huawei.hmos.settings',\n  abilityName: 'com.huawei.hmos.settings.MainAbility',\n  uri: 'telephony_number_identify_settings'\n};\nthis.uiContext.startAbility(wantInfo).then(...)
复制代码
3. 后台拦截器 Extension 实战\n继承
  1. CallerInfoQueryExtensionAbility
复制代码
并覆写
  1. onQueryCallerInfo(phoneNumber: string): Promise<CallerInfo>
复制代码
实现来电时的静默实名匹配。系统通话应用会在50ms内创建Extension进程沙箱,开发者需在500ms内完成匹配,避免网络I/O或同步死锁导致超时熔断。示例代码:\n
  1. export default class EntryCallerInfoQueryExtAbility extends CallerInfoQueryExtensionAbility {\n  onQueryCallerInfo(phoneNumber: string): Promise<CallerInfo> {\n    return new Promise<CallerInfo>((resolve, reject) => {\n      let isSuccess = true;  // 实际业务逻辑\n      if (isSuccess) {\n        resolve({\n          contactName: "星火客服",\n          employeeId: "XH-9527",\n          department: "物流调度部",\n          position: "高级物流主管"\n        });\n      } else {\n        reject("error reason");\n      }\n    });\n  }\n}
复制代码
4. 快递数据卡片扩展(API 24)\nCallerInfo结构中新增BusinessServiceData模型,包含deliveryNumber(单号)、deliveryStatus(状态)、deliveryStatusColor(枚举:BLUE/GREEN/RED)等字段。开发者可在onQueryCallerInfo中返回适当数据,系统将在来电横幅中渲染高保真快递卡片。5. 工程结构与注意事项\n实战工程结构如下(仅核心目录):\n
  1. CallServiceKitDemo\n├── entry\n│   └── src/main\n│       ├── ets\n│       │   ├── callerinfoquery\n│       │   │   └── EntryCallerInfoQueryExtAbility.ets\n│       │   ├── entryability\n│       │   └── pages\n│       │       ├── Index.ets\n│       │       └── CallServiceDemo.ets\n│       └── resources/base/profile\n│           └── module.json5  // 注册extension能力
复制代码
\n需在module.json5中声明CallerInfoQueryExtensionAbility。\n注意:系统分配给Extension的匹配窗口极短,绝对不可以在onQueryCallerInfo中做耗时I/O操作,否则系统会降级到默认无实名状态。
回复

使用道具 举报

发表于 昨天 13:05 | 显示全部楼层

Re: HarmonyOS 6.1 Call Kit企业来电显示权限与号码识别实

感谢楼主的深度分享!这些关于 HarmonyOS 6.1 Call Kit 的技术细节非常实用,特别是后台拦截器 500ms 超时熔断的提醒和快递数据卡片的渲染机制,对正在做企业通信类应用开发的开发者帮助很大。想请教一下,如果企业的资质认证在 AGC 通过了,但用户手机上的“陌生号码识别”开关默认是关闭的,应用在引导用户跳转系统设置时,有没有推荐的交互策略来降低用户的抵触心理?另外,实战中 onQueryCallerInfo 里如果确实需要查数据库,有没有推荐的缓存方案来满足 500ms 的时限?
回复 支持 反对

使用道具 举报

发表于 昨天 13:05 | 显示全部楼层

Re: HarmonyOS 6.1 Call Kit企业来电显示权限与号码识别实

感谢分享,非常实用的技术指南!对后台拦截器 Extension 的 500ms 超时限制和快递数据卡片这块特别感兴趣,之前做企业来电识别时经常遇到认证失败的问题,这里讲的很清晰。想问一下,在超时熔断导致降级到默认无实名状态时,有没有推荐的降级策略或者用户提示方式?
回复 支持 反对

使用道具 举报

发表于 昨天 13:05 | 显示全部楼层

Re: HarmonyOS 6.1 Call Kit企业来电显示权限与号码识别实

这个分享太及时了,最近正好在帮公司做物流客服外呼系统,被陌生来电拦截率搞得头疼。Call Service Kit 这几个接口组合起来,特别是快递卡片和实名认证的配合,感觉能大幅提升接听率。想请教一下,实际业务中如果企业有多个号码或座席,在 CallerInfo 里返回不同员工信息时,系统会怎么处理重复来电的缓存?还有就是 500ms 的匹配窗口实在紧张,不知道有没有推荐的数据预加载策略?感谢楼主的详细代码和注意事项!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-21 08:18 , Processed in 0.034306 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部