Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OpenHarmony一键呼叫

OpenHarmony一键呼叫

作者头像
徐建国
发布于 2022-12-05 07:13:20
发布于 2022-12-05 07:13:20
82900
代码可运行
举报
文章被收录于专栏:个人路线个人路线
运行总次数:0
代码可运行

OpenHarmony电话服务开发

电话服务系统提供了一系列的API用于拨打电话、获取无线蜂窝网络和SIM卡相关信息。

应用可以通过调用API来获取当前注册网络名称、网络服务状态、信号强度以及SIM卡的相关信息,具体可参考获取当前蜂窝网络信号信息开发指导。

直接拨打电话需要系统权限ohos.permission.PLACE_CALL,建议应用使用makeCall(),跳转到拨号界面,并显示拨号的号码,具体可查看下面的演示。

OpenHarmony跳转拨号界面

当应用需要跳转到拨号界面,并显示拨号的号码时,大家就可以来看这篇文章,当开发者调用makeCall接口时,设备会自动跳转到拨号界面。和正常拨打电话一样,用户可以选择卡1或卡2拨出。

先来看一下实现的效果。

接口说明

call模块为开发者提供呼叫管理功能。observer模块为开发者提供通话业务状态订阅和取消订阅功能。

  • call.hasVoiceCapability():能力获取,表示是否具有语音功能。
  • call.makeCall()跳转拨号界面,跳转到拨号界面,并显示拨号的号码。
  • observer.on(‘callStateChange’):订阅通话业务状态变化,ohos.permission.READ_CALL_LOG (获取通话号码需要该权限)
  • observer.off(‘callStateChange’):取消订阅通话业务状态变化.

开发步骤

1.import需要的模块。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// import需要的模块
import call from '@ohos.telephony.call';
import observer from '@ohos.telephony.observer';

2.调用hasVoiceCapability()接口获取当前设备呼叫能力,如果支持继续下一步;如果不支持则无法发起呼叫。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 调用查询能力接口
let isSupport = call.hasVoiceCapability();
if (!isSupport) {
    console.log("not support voice capability, return.");
    return;
}

3.跳转到拨号界面,并显示拨号的号码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 如果设备支持呼叫能力,则继续跳转到拨号界面,并显示拨号的号码
call.makeCall("13xxxx", (err)=> {
    if (!err) {
        console.log("make call success.");
    } else {
        console.log("make call fail, err is:" + JSON.stringify(err));
    }
});

4.(可选)订阅通话业务状态变化。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 订阅通话业务状态变化(可选)
observer.on("callStateChange", (data) => {
    console.log("call state change, data is:" + JSON.stringify(data));
});

5.取消订阅通话业务状态变。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 取消订阅通话业务状态变
observer.off("callStateChange", (data) => {
    console.log("call state change, data is:" + JSON.stringify(data));
});

完毕

最后附上完整代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
 * Copyright (c) 2022 JianGuo Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**     
  * @ProjectName : nutsStudy
  * @FileName :  call
  * @Author : 坚果
  * @Time : 2022/8/15 08:20
  * @Description : 文件描述 
 */
// import需要的模块
import call from '@ohos.telephony.call';
import observer from '@ohos.telephony.observer';
@Entry
@Component
struct CAllTest{
  build(){

    Column(){

      Button("打电话").width(200).height(80) .fontSize(30).fontColor(Color.Orange).onClick(()=>{
        // 调用查询能力接口
        let isSupport = call.hasVoiceCapability();
        if (!isSupport) {
          console.info(" support voice capability, return");
          return;
        }
        // 如果设备支持呼叫能力,则继续跳转到拨号界面,并显示拨号的号码
        call.makeCall("17752170152", (err)=> {
          if (!err) {
            console.info(" make call success.");

          } else {
            console.info("make call fail, err is:" + JSON.stringify(err));
          }
        });


      })

    }.width("100%").height("100%").justifyContent(FlexAlign.Center)


}
}

感谢大家的支持。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HarmonyOS NEXT实战:拨打电话
##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##
中雨
2025/06/26
630
HarmonyOS 开发实践——常见预置应用的跳转方式
三方应用实际使用过程中,可能需要跳转到系统的预置应用进行一系列的操作,本文档提供了跳转各个预置应用的方法以及配置的参数
小帅聊鸿蒙
2024/11/18
1880
HarmonyOS 开发实践——常见预置应用的跳转方式
【愚公系列】2023年12月 HarmonyOS教学课程 056-Web组件(页面跳转和浏览记录)
页面跳转是指在浏览器中从当前页面跳转到另一个页面的操作。可以通过点击链接、输入网址、提交表单等方式实现页面跳转。
愚公搬代码
2025/06/02
960
【愚公系列】2023年12月 HarmonyOS教学课程 056-Web组件(页面跳转和浏览记录)
使用浏览器Web技术实现电话拨打功能:一步步指南(mod_cti基于FreeSWITCH)
在这个数字化的时代,我们的生活已经被各种应用程序和在线服务所包围。我们通过电子邮件、社交媒体、在线购物等方式进行沟通和交流。然而,有一种方式,尽管已经存在了一段时间,但仍然被许多人忽视,那就是通过浏览器Web拨打电话。这种方式不仅方便快捷,而且能够打破传统的通信模式,连接无限可能。
用户10792926
2023/10/30
3.4K0
uniappx使用 UTS 调用鸿蒙原生 API
在鸿蒙开发的广阔天地中,UTS(Unified Type System)正以其简洁高效的特性,为开发者带来全新的开发体验。今天,我就来和大家分享一下,如何运用 UTS 轻松调用鸿蒙原生 API,实现各种实用功能。
徐建国
2025/06/08
1210
uniappx使用 UTS 调用鸿蒙原生 API
鸿蒙5开发宝藏案例分享---自由流转的拖拽多屏联动
大家好呀~,今天在扒拉鸿蒙文档的时候,突然发现官方竟然藏了一堆超实用的开发案例!😱 之前总觉得鸿蒙生态资料少,结果这些案例简直就是“新手村外挂”啊!立马熬夜整理了一波,全是真实开发中高频用到的功能,附带代码+讲解,看完直接起飞!🛫
陈杨
2025/06/03
1330
Android Intent用法全面详解
朋友们在开发的时候对Intent肯定并不陌生,下面总结了一下Intent除了用在activity之间的跳转,还可以        在哪些地方使用: 1.显示网页
再见孙悟空_
2023/02/10
6910
自学记录:用HarmonyOS API 13实现VoIP通话功能
今天本来没啥活,我刚弄了杯咖啡咖啡,翻看着技术博客。突然,老板走过来拍了拍我的肩膀,说:“我们有个新需求,你来负责吧。项目里需要一个VoIP通话功能,用最新的HarmonyOS API 13实现,尽快搞定,客户下周要看Demo。”
李游Leo
2024/12/25
2010
自学记录:用HarmonyOS API 13实现VoIP通话功能
【愚公系列】2023年12月 HarmonyOS教学课程 047-Stage模型(开发卡片事件)
HarmonyOS元服务卡片页面(Metaservice Card Page)是指在HarmonyOS系统中,用于展示元服务的页面界面。元服务是指一组提供特定功能或服务的组件,例如天气服务、音乐播放服务等。元服务卡片页面可以显示元服务的相关信息和操作选项,用户可以通过点击卡片页面上的按钮或交互元素来使用相关的元服务功能。元服务卡片页面提供了一种快速访问和使用元服务的方式,方便用户进行各种操作和任务。
愚公搬代码
2025/06/02
850
【愚公系列】2023年12月 HarmonyOS教学课程 047-Stage模型(开发卡片事件)
Uniapp、Html5plus、Native.js开发记录
Android的四大组件之一的Activity(活动):Activity是一个应用程序的组件,他在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作, 比如打电话,照相,发送邮件,或者显示一个地图!Activity可以理解成一个绘制用户界面的窗口, 而这个窗口可以填满整个屏幕,也可能比屏幕小或者浮动在其他窗口的上方!
房东的狗丶
2023/02/17
3.3K0
HarmonyOS 开发实践 —— 基于短距离通信的BLE蓝牙扫描
蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的BLE蓝牙称为低功耗蓝牙。BLE模块提供了对蓝牙操作和管理的方法。
小帅聊鸿蒙
2024/11/27
2960
HarmonyOS 开发实践 —— 基于短距离通信的BLE蓝牙扫描
Android自动化测试中电话的操作技巧
adb(Android Debug Bridge)是Android调试桥的缩写,它提供了一系列命令,可用于控制Android设备或模拟器。利用adb,我们可以通过命令行实现自动化拨打电话等操作。
测试开发囤货
2023/08/08
1.6K1
Android自动化测试中电话的操作技巧
Android 电话自己主动接听和挂断具体解释「建议收藏」
详细分三步: (1)ITelephony.aidl ,必须新建com.android.internal.telephony包并放入ITelephony.aidl文件(构建后在gen下有ITelephony.java文件,这是aidl生成的接口),文件内容例如以下: package com.android.internal.telephony; interface ITelephony{ boolean endCall(); void answerRingingCall(); } (2)在须要的类中加入例如以下方法,代码例如以下(通过反射获取电话接口的实例)
全栈程序员站长
2022/07/08
1.2K0
通过呼叫中心件实现客户端分机互打(mod_cti基于FreeSWITCH)
随着现代企业的发展,通讯设备占据了越来越重要的地位。在这个设备中,分机无疑是必不可少的一部分。而分机之间互相打电话,也是企业内部生产、管理和沟通的常见现象。
用户10792926
2023/10/16
1.1K0
通过呼叫中心件实现客户端分机互打(mod_cti基于FreeSWITCH)
讲解呼叫中心中间件如何实现“长签”功能(mod_cti基于FreeSWITCH)
本文主要讲述呼叫中心中间件中的“长签”功能是什么?以及在顶顶通呼叫中心中间件如何实现“长签”这一功能。
HY_18270073585
2023/10/30
4810
OpenHarmony版本的APP如何切换横竖屏?
在日常开发中,大多APP可能根据实际情况直接将APP的界面方向固定,或竖屏或横屏。但在使用过程中,我们还是会遇到横竖屏切换的功能需求,可能是通过物理重力感应触发,也有可能是用户手动触发。所以本文主要带大家了解在OpenAtom OpenHarmony(以下简称“OpenHarmony”)应用开发的过程中,如何在Stage模型和FA模型下使用对应的接口去完成横竖屏的切换。
小帅聊鸿蒙
2025/04/27
1280
OpenHarmony版本的APP如何切换横竖屏?
【愚公系列】2023年12月 HarmonyOS教学课程 042-Stage模型(UIAbility组件)
HarmonyOS中的Stage模型是一种基于UIAbility组件的应用程序架构。UIAbility是HarmonyOS系统中用于构建用户界面的基本组件之一。它负责处理应用程序界面的显示和交互。
愚公搬代码
2025/06/02
850
【愚公系列】2023年12月 HarmonyOS教学课程 042-Stage模型(UIAbility组件)
Voice Lab 3-IPhone F
ip source-address 192.168.100.1 port 2000 //电话注册地址
py3study
2020/01/08
7620
Voice Lab 3-IPhone F
深入了解设备交互 API 如何改变我们的生活
设备交互是自动化测试工具与移动设备进行沟通和掌握的过程,它不仅限于基本的应用元素点击和输入等操作。
霍格沃兹测试开发Muller老师
2024/03/12
1680
【HarmonyOS Next】拒绝权限二次申请授权处理
当用户选择不允许后,再次向用户申请权限,该弹框就不会再显示。因为鸿蒙系统机制处理如此,为了避免骚扰用户。
GeorgeGcs
2025/03/24
2760
推荐阅读
相关推荐
HarmonyOS NEXT实战:拨打电话
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验