鸿蒙开发电话服务:【@ohos.telephony.call (拨打电话)】

拨打电话

call模块提供呼叫管理功能,包括拨打电话、跳转到拨号界面、获取通话状态、格式化电话号码等。

如需订阅通话状态请使用[observer.on('callStateChange')]

说明:

本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import call from '@ohos.telephony.call';

call.dial

dial(phoneNumber: string, callback: AsyncCallback): void

拨打电话。使用callback异步回调。

需要权限:ohos.permission.PLACE_CALL,该权限为系统权限

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
callbackAsyncCallback回调函数,返回true为成功,false为失败。

示例:

call.dial("138xxxxxxxx", (err, data) => {console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

call.dial

dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback): void

拨打电话,可设置通话参数。使用callback异步回调。

需要权限:ohos.permission.PLACE_CALL,该权限为系统权限

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[DialOptions]通话参数,选择为语音通话还是视频通话。
callbackAsyncCallback回调函数,返回true为成功,false为失败。

示例:

call.dial("138xxxxxxxx", {extras: false
}, (err, data) => {console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

call.dial

dial(phoneNumber: string, options?: DialOptions): Promise

拨打电话,可设置通话参数。使用Promise异步回调。

需要权限:ohos.permission.PLACE_CALL,该权限为系统权限

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[DialOptions]通话参数,选择为语音通话还是视频通话。

返回值:

类型说明
Promise以Promise形式返回拨打电话的结果,返回true为成功,false为失败。

示例:

let promise = call.dial("138xxxxxxxx", {extras: false
});
promise.then(data => {console.log(`dial success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {console.error(`dial fail, promise: err->${JSON.stringify(err)}`);
});

call.makeCall7+

makeCall(phoneNumber: string, callback: AsyncCallback): void

跳转到拨号界面,并显示待拨出的号码。使用callback异步回调。

系统能力:SystemCapability.Applications.Contacts

参数:

参数名类型必填说明
phoneNumberstring电话号码。
callbackAsyncCallback以callback形式异步返回跳转拨号界面的结果。

示例:

call.makeCall("138xxxxxxxx", err => { console.log(`makeCall callback: err->${JSON.stringify(err)}`); 
});

call.makeCall7+

makeCall(phoneNumber: string): Promise

跳转到拨号界面,并显示待拨出的号码。使用Promise异步回调。

系统能力:SystemCapability.Applications.Contacts

参数:

参数名类型必填说明
phoneNumberstring电话号码。

返回值:

类型说明
Promise以Promise形式异步返回拨号的结果。

示例:

let promise = call.makeCall("138xxxxxxxx"); 
promise.then(() => { console.log(`makeCall success`); 
}).catch(err => { console.error(`makeCall fail, promise: err->${JSON.stringify(err)}`); 
});

call.hasCall

hasCall(callback: AsyncCallback): void

判断是否存在通话。使用callback异步回调。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
callbackAsyncCallback回调函数。返回true表示当前存在通话,false表示当前不存在通话。

示例:

call.hasCall((err, data) => {console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

call.hasCall

hasCall(): Promise

判断是否存在通话。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CallManager

返回值:

类型说明
Promise以Promise形式异步返回判断是否存在通话。

示例:

let promise = call.hasCall();
promise.then(data => {console.log(`hasCall success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {console.error(`hasCall fail, promise: err->${JSON.stringify(err)}`);
});

call.getCallState

getCallState(callback: AsyncCallback): void

获取当前通话状态。使用callback异步回调。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
callbackAsyncCallback<[CallState]>回调函数,异步返回获取到的通话状态。

示例:

call.getCallState((err, data) => {console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

call.getCallState

getCallState(): Promise

获取当前通话状态。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CallManager

返回值:

类型说明
Promise<[CallState]>以Promise形式异步返回获取到的通话状态。

示例:

let promise = call.getCallState();
promise.then(data => {console.log(`getCallState success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {console.error(`getCallState fail, promise: err->${JSON.stringify(err)}`);
});

call.hasVoiceCapability7+

hasVoiceCapability(): boolean

检查当前设备是否具备语音通话能力。

系统能力:SystemCapability.Telephony.CallManager

返回值:

类型说明
boolean返回true表示设备具备语音通话能力,返回false表示设备不具备语音通话能力。
let result = call.hasVoiceCapability(); 
console.log(`hasVoiceCapability: ${JSON.stringify(result)}`);

call.isEmergencyPhoneNumber7+

isEmergencyPhoneNumber(phoneNumber: string, callback: AsyncCallback): void

判断是否是紧急电话号码。使用callback异步回调。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
callbackAsyncCallback回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。

示例:

call.isEmergencyPhoneNumber("138xxxxxxxx", (err, data) => {console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

call.isEmergencyPhoneNumber7+

isEmergencyPhoneNumber(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback): void

根据电话号码参数,判断是否是紧急电话号码。使用callback异步回调。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[EmergencyNumberOptions]电话号码参数。
callbackAsyncCallback回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。

示例:

call.isEmergencyPhoneNumber("112", {slotId: 1}, (err, value) => {console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

call.isEmergencyPhoneNumber7+

isEmergencyPhoneNumber(phoneNumber: string, options?: EmergencyNumberOptions): Promise

根据电话号码参数,判断是否是紧急电话号码。使用Promise异步回调。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[EmergencyNumberOptions]电话号码参数。

返回值:

类型说明
Promise以Promise形式异步返回判断是否是紧急电话号码的结果。

示例:

let promise = call.isEmergencyPhoneNumber("138xxxxxxxx", {slotId: 1});
promise.then(data => {console.log(`isEmergencyPhoneNumber success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {console.error(`isEmergencyPhoneNumber fail, promise: err->${JSON.stringify(err)}`);
});

call.formatPhoneNumber7+

formatPhoneNumber(phoneNumber: string, callback: AsyncCallback): void

格式化电话号码。使用callback异步回调。

电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
callbackAsyncCallback回调函数,返回格式化电话号码的结果。

示例:

call.formatPhoneNumber("138xxxxxxxx", (err, data) => {console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

call.formatPhoneNumber7+

formatPhoneNumber(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback): void

格式化电话号码,可设置格式化参数。使用callback异步回调。

电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[NumberFormatOptions]格式化参数,如国家码。
callbackAsyncCallback回调函数,返回格式化电话号码的结果。

示例:

call.formatPhoneNumber("138xxxxxxxx",{countryCode: "CN"
}, (err, data) => {console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

call.formatPhoneNumber7+

formatPhoneNumber(phoneNumber: string, options?: NumberFormatOptions): Promise

格式化电话号码,可设置格式化参数。使用Promise异步回调。

电话号码格式化后为标准数字字串,例如:”138 xxxx xxxx“、”0755 xxxx xxxx“。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[NumberFormatOptions]格式化参数,如国家码。

返回值:

类型说明
Promise以Promise形式异步返回格式化电话号码的结果。

示例:

let promise = call.formatPhoneNumber("138xxxxxxxx", {countryCode: "CN"
});
promise.then(data => {console.log(`formatPhoneNumber success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {console.error(`formatPhoneNumber fail, promise: err->${JSON.stringify(err)}`);
});

call.formatPhoneNumberToE1647+

formatPhoneNumberToE164(phoneNumber: string, countryCode: string, callback: AsyncCallback): void

将电话号码格式化为E.164表示形式。使用callback异步回调。

待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
countryCodestring国家码,支持所有国家码,如:中国(CN)。
callbackAsyncCallback回调函数,返回将电话号码格式化为E.164表示形式的结果。

示例:

call.formatPhoneNumberToE164("138xxxxxxxx",{countryCode: "CN"
}, (err, data) => {console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

call.formatPhoneNumberToE1647+

formatPhoneNumberToE164(phoneNumber: string, countryCode: string): Promise

将电话号码格式化为E.164表示形式。使用Promise异步回调。

待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。

支持所有国家码。

系统能力:SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
countryCodestring国家码,支持所有国家码,如:中国(CN)。

返回值:

类型说明
Promise以Promise形式异步返回将电话号码格式化为E.164表示形式的结果。

示例:

let promise = call.formatPhoneNumberToE164("138xxxxxxxx", {countryCode: "CN"
});
promise.then(data => {console.log(`formatPhoneNumberToE164 success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {console.error(`formatPhoneNumberToE164 fail, promise: err->${JSON.stringify(err)}`);
});

DialOptions

拨打电话的可选参数。

系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。

参数名类型必填说明
extrasboolean根据extras的值判断是否为视频通话,默认为语音通话。 - true:视频通话。 - false:语音通话。

CallState

通话状态码。

系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。

名称说明
CALL_STATE_UNKNOWN-1无效状态,当获取呼叫状态失败时返回。
CALL_STATE_IDLE0表示没有正在进行的呼叫。
CALL_STATE_RINGING1表示来电正在振铃或等待。
CALL_STATE_OFFHOOK2表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。

EmergencyNumberOptions7+

判断是否是紧急电话号码的可选参数。

系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。

参数名类型必填说明
slotIdnumber卡槽ID: - 卡槽1为0。 - 卡槽2为1

NumberFormatOptions7+

格式化号码的可选参数。

系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。

参数名类型必填说明
countryCodestring国家码,支持所有国家的国家码,如:中国(CN)。默认为:CN。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/27189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析 Java 标准库:构建高效应用的基石

Java 标准库&#xff0c;也称为 Java API&#xff0c;是一组预先编写的类和接口&#xff0c;为 Java 应用程序提供了一系列丰富的功能。这些库被组织成包&#xff08;packages&#xff09;&#xff0c;每个包都包含了一组相关的类和接口&#xff0c;用于处理特定的任务&#xf…

前端数据库大盘点:解锁Web应用数据存储最优解!

在构建现代Web应用程序时&#xff0c;前端不仅要处理用户交互和展示逻辑&#xff0c;往往还需要承担一部分数据处理的任务&#xff0c;尤其是在单页面应用&#xff08;SPA&#xff09;和渐进式Web应用&#xff08;PWA&#xff09;中。这就引出了一个关键问题&#xff1a;前端应…

Python使用策略模式实现绘图功能

策略模式&#xff08;Strategy Pattern&#xff09;:允许定义一系列算法&#xff0c;将它们封装起来&#xff0c;使得它们可以互换。 实现绘制不同类型的图表&#xff08;如折线图、柱状图和饼图&#xff09;功能。 下面是一个示例&#xff0c;展示如何传入横坐标和纵坐标内容…

人工智能技术应用笔记(十二):搭建自带大模型微信,完美对接GPT-4o,Kimi等大模型,智能体平台Coze也能接

许多朋友对如何搭建自己的微信机器人非常感兴趣。今天就来教大家如何操作。 一、 准备工作 一台电脑或者云服务器&#xff0c;对配置要求不高&#xff0c;一般的电脑就行 大模型API调用的Key&#xff0c;比如GPT-4o&#xff0c;Kimi&#xff0c;Deepseek&#xff08;不知道怎…

使用Omnipeek进行Wifi/P2P抓包

前言 工作中解决Mirracast投屏连接失败的问题时&#xff0c;遇到了需要抓取wifi数据包的情况&#xff0c;记录一下配置和使用过程。 一、Omnipeek 的安装和配置 1.1 Omnipeek 安装 双击 setup.exe 进行安装 1.2 注册 注册时&#xff0c;版本写 71 &#xff0c;产生序列号和…

代码随想录算法训练营第36期 last day

最后一次更新&#xff0c;之后去复习专业课和简历 583两个字符串的删除操作 自己做出来了&#xff1a; Code: class Solution {public://找到公共子序列的最大长度dp 最小步数串1.size-dp串2.size-dp int minDistance(string word1, string word2) { vector<v…

Axios 请求响应拦截器 每次只发送一次请求封装

import axios from "axios"; import general from "/utils/general";const request axios.create({baseURL:general.serverUrl })const requestMap new Map() //保存每一次请求request.interceptors.request.use(req>{let oldRequest requestMap.get(re…

解决帝国cms栏目管理拼音乱码的问题

帝国CMS7.5版本utf-8版网站后台增加栏目生成乱码的问题怎么解决 1、需要改一个函数&#xff0c;并且增加一个处理文件&#xff0c;方法如下&#xff1a; 修改e/class/connect.php文件&#xff0c;找到ReturnPinyinFun函数&#xff0c;如未修改文件在4533-4547行&#xff0c;将…

sockjs-client和stompjs连接websocket服务被拒绝导致vue项目崩溃问题

1、前端连接服务器代码demo&#xff1a; // 引入stomp.js库 import SockJS from sockjs-client; import Stomp from stompjs;// WebSocket服务器地址 const ws new SockJS(http://localhost:8080/my-endpoint);// 初始化STOMP客户端 const stompClient Stomp.over(ws);// 连…

如何判断 NaN的方法?

判断数据类型的方法在JavaScript中有几种&#xff0c;主要包括&#xff1a; typeof 操作符&#xff1a;用于返回一个变量或表达式的数据类型的字符串表示。 typeof 42; // "number"typeof "Hello"; // "string"typeof true; // "bool…

node 中间件使用例子

NodeJS在中间件领域有着较为广泛的应用&#xff0c;他能做一些中间层事件&#xff0c;把服务端一部分的代码抽出来&#xff0c;减少处理冗余事情付出的代价&#xff0c;同时让服务真正做业务处理而不用关心页面的事情 常见的应用场景有&#xff1a; 跨域&#xff1a;解决跨域问…

二叉树左右树交换

leetcode 226题 翻转二叉树 题目描述 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3]…

背就有效!2024下《系统架构设计师》50个高频考点汇总

宝子们&#xff01;上半年软考已经结束一段时间了&#xff0c;准备备考下半年软考高级-系统架构设计师的小伙伴可以开始准备了&#xff0c;毕竟高级科目的难度可是不低的&#xff0c;相信参加过上半年架构的小伙伴深有体会。 这里给大家整理了50个高频考点&#xff0c;涵盖全书…

node更改npm缓存存储位置-并配置环境变量

更改缓存位置 node安装完成之后,在安装目录中新建一个存放缓存的文件夹node_cache 此时这个文件夹必须使用管理员权限才能更改,这使得命令行下使用npm进行下载的时候总是报权限不足的错误:permit 解决办法: 右键 -> 属性 -> 安全 -> 编辑 -> 选择user -> …

【Linux】进程_3

文章目录 五、进程3. 进程4. 进程状态 未完待续 五、进程 3. 进程 在当前&#xff0c;我们只能通过执行可执行程序来让操作系统帮我们启动进程&#xff0c;那我们如何使用代码来自己启动进程呢&#xff1f;我们可以使用 fork() 函数。作用是创建子进程。 我们创建一个程序来…

字节扣子搭建大模型擂台:匿名PK效果,用户当裁判,跑分时代要结束了

字节跳动的扣子&#xff08;coze.cn&#xff09;&#xff0c;给国产大模型们组了个大局—— 在同一个“擂台”上&#xff0c;两个大模型为一组&#xff0c;直接以匿名的方式PK效果&#xff01; 例如我们对两位参赛“选手”同时提问今年高考的题目&#xff1a; 阅读下面的材料&…

探索数字化转型:提升企业客户服务竞争力的策略

当前&#xff0c;数字经济已成为引领经济发展的“主引擎”。在这一背景下&#xff0c;客户服务领域也在发生着深刻变化&#xff0c;传统的以客服热线、人工客服为核心的客户服务模式已不能满足企业发展的需要&#xff0c;而数字化转型成为企业寻求突破的必然选择。 企业可利用大…

elementui table超出两行显示...鼠标已入tip显示

elementui el-table超出两行显示…鼠标已入tip显示 方式一 <el-table-column label"描述"prop"note"class-name"myNoteBox"><template slot-scope"scope"><!-- tips悬浮提示 --><el-tooltip placement"to…

OpenAI把GPT-4原始版给了他们:研究不微调只靠提示词能走多远

除了OpenAI自己&#xff0c;居然还有别人能用上GPT-4-Base版&#xff1f;&#xff1f; 也就是未经微调的预训练版&#xff0c;还不会对话聊天&#xff0c;只会补全句子的模型。 EPFL&#xff08;瑞士洛桑联邦理工&#xff09;团队申请到了访问权限&#xff0c;用于研究**“上…

某文旅集团定岗定编项目成功案例纪实

——加强一专多能培训&#xff0c;增加人员履职&#xff0c;提高工作饱和度 【客户行业】文旅行业&#xff1b;国有企业 【问题类型】定岗定编 【客户背景】 北方某一线城市的文旅集团&#xff0c;是国资委下属的一家企业&#xff0c;主营业务包括&#xff1a;出租商业用房…