HarmonyOS 电话服务开发指导
电话服务开发概述
HarmonyOS 电话服务系统提供了一系列的 API 用于拨打电话、获取无线蜂窝网络和 SIM 卡相关信息。
应用可以通过调用 API 来获取当前注册网络名称、网络服务状态、信号强度以及 SIM 卡的相关信息,具体可参考获取当前蜂窝网络信号信息开发指导。
直接拨打电话需要系统权限 ohos.permission.PLACE_CALL,建议应用使用 makeCall(),跳转到拨号界面,并显示拨号的号码,具体可参考跳转拨号界面开发指导。
约束与限制
搭载设备需要支持以下硬件:
可以进行独立蜂窝通信的 Modem 以及 SIM 卡。
跳转拨号界面
当应用需要跳转到拨号界面,并显示拨号的号码时,使用本业务。当开发者调用 makeCall 接口时,设备会自动跳转到拨号界面。和正常拨打电话一样,用户可以选择音频或视频呼叫,卡 1 或卡 2 拨出。
接口说明
call 模块为开发者提供呼叫管理功能。observer 模块为开发者提供订阅和取消订阅通话业务状态的功能。具体接口说明如下表。

开发步骤
import 需要的模块。
调用 hasVoiceCapability()接口获取当前设备呼叫能力,如果支持继续下一步;如果不支持则无法发起呼叫。
跳转到拨号界面,并显示拨号的号码。
(可选)订阅通话业务状态变化。
// import需要的模块
import call from '@ohos.telephony.call';
import observer from '@ohos.telephony.observer'; // 调用查询能力接口
let isSupport = call.hasVoiceCapability();
if (!isSupport) {
console.log("not support voice capability, return.");
return;
}
// 如果设备支持呼叫能力,则继续跳转到拨号界面,并显示拨号的号码
call.makeCall("13xxxx", (err)=> {
if (!err) {
console.log("make call success.");
} else {
console.log("make call fail, err is:" + JSON.stringify(err));
}
});
// 订阅通话业务状态变化(可选)
observer.on("callStateChange", (data) => {
console.log("call state change, data is:" + JSON.stringify(data));
});
获取当前蜂窝网络信号信息
场景介绍
应用通常需要获取用户所在蜂窝网络下信号信息,以便获取当前驻网质量。开发者可以通过本业务,获取到用户指定 SIM 卡当前所在网络下的信号信息。
接口说明
radio 模块提供了获取当前网络信号信息的方法。observer 模块为开发者提供蜂窝网络状态订阅和取消订阅功能。具体接口说明如下表。

开发步骤
import 需要的模块。
调用 getSignalInformation()方法,返回所有 SignalInformation 列表。
遍历 SignalInformation 数组,并分别根据不同的 signalType 得到不同制式的信号强度。
订阅蜂窝网络信号变化(可选)。
import radio from '@ohos.telephony.radio'
import observer from '@ohos.telephony.observer'; // 以获取卡1的信号强度为例
let slotId = 0;
radio.getSignalInformation(slotId, (err, data) => {
if (!err) {
console.log("get signal information success.");
// 遍历数组,输出不同网络制式下的信号强度
for (let j = 0; j < data.length; j++) {
console.log("type:" + data[j].signalType + ", level:" + data[j].signalLevel);
}
} else {
console.log("get signal information fail, err is:" + JSON.stringify(err));
}
});
// 订阅蜂窝网络信号变化(可选)
observer.on("signalInfoChange", (data) => {
console.log("signal info change, data is:" + JSON.stringify(data));
});
HarmonyOS 电话服务开发指导的更多相关文章
- 【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发
<ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-tr ...
- HarmonyOS三方件开发指南(16)-VideoCache 视频缓存
目录: 1.引言 2.功能介绍 3.VideoCache使用指南 4.VideoCache开发指南 5.<HarmonyOS三方件开发指南>系列文章合集 引言 对于视频播放器这个app大家 ...
- 大规模web 服务开发技术
<大规模web 服务开发技术> 是一本讲解大型Web 应用的入门级书籍,能够让我们接触到大应用的知识点. 目录如下: 第1章 大规模Web服务的开发定位——掌握整体第2章 大规模数据处 ...
- IOS 在不打开电话服务的时候,可以响应服务器的推送消息,从而接收服务器的推送消息
在做即时通讯(基于xmpp框架)的时候遇到这样一个问题,就是在真机测试的时候,你按Home键返回桌面,在你返回桌面的时候,这是你的程序的挂起状态的,在你挂起的时候, 相当于你的程序是死的,程序的所有进 ...
- ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器
ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器一:闲谈一下:1.现在任务跟踪管理系统已经开发快要结束了,抽一点时间来写一下,想一想自己就有成就感啊!! ...
- WCF服务开发与调用的完整示例
WCF服务开发与调用的完整示例 开发工具:VS2008 开发语言:C# 开发内容:简单的权限管理系统 第一步.建立WCF服务库 点击确定,将建立一个WCF 服务库示例程序,自动生成一个包括IServi ...
- delphi 10 seattle 安卓服务开发(二)
关于delphi 10 移动服务开发的几张图
- 北京联想招聘-java 云服务开发工程师 加入qq 群:220486180 或者直接在此 留言咨询
Position Title: 云服务开发工程师 Experience Required: 3 - 5 Years 负责联想企业网盘服务端开发 Position Requirements 1. ...
- (转)在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送
在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送 From: http://saeapns.sinaapp.com/doc.html 1,在 ...
- 大规模web服务开发技术
大规模web服务开发技术 总评 这本书是日本一个叫hatena的大型网站的CTO写的,通过hatena网站从小到大的演进来反应一个web系统从小到大过程中的各种系统和技术架构变迁,比较接 ...
随机推荐
- 【Azure Redis 缓存】VM 里的 Redis 能直接迁移到 Azure Cache for Redis ? 需要改动代码吗?
问题描述 原来部署在VM 里的 Redis 能直接迁移到 Azure Cache for Redis? 需要改动代码吗? 问题解答 以上问题需要从两个方面来解答. 第一:VM中Redis的数据转移到 ...
- FreeRTOS教程1 基础知识
1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) Keil µVision5 IDE(MDK-Arm) 野火DAP仿真器 2.学 ...
- 来自 AI Secure 实验室的 LLM 安全排行榜简介
近来,LLM 已深入人心,大有燎原之势.但在我们将其应用于千行百业之前,理解其在不同场景下的安全性和潜在风险显得尤为重要.为此,美国白宫发布了关于安全.可靠.可信的人工智能的行政命令; 欧盟人工智能法 ...
- vue3 如果用ts,导出时候要用 defineComponent,这俩是配对的,为了类型的审查正确
vue3 如果用ts,导出时候要用 defineComponent,这俩是配对的,为了类型的审查正确
- C++容器、类型转换、异常与文件流操作
C++容器.类型转换.异常与文件流操作 目录 C++容器.类型转换.异常与文件流操作 容器 序列式容器/顺序容器 向量(vector) 列表 (list) 双端队列(deque) 栈(stack) 队 ...
- 除gRPC之外的另一个选择,IceRPC-支持QUIC
作者引言 自从19年开始接处到RPC,当时完全没有相关概念,接触到的都是http,tcp等,当时公司用的是zeroc出品的ice框架,对应rpc非常强大,跨平台,跨语言.可惜的国内并不是主流,主流是g ...
- 你是怎么理解ES6中 Generator的?使用场景?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.介绍 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同 回顾下上文提到的解决异步的手段: 回 ...
- 记录--Vue 右键菜单的秘密:自适应位置的实现方法
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 下图这个情景,你是否也遇到过? 当你右键点击网页上的某个元素时,弹出的菜单被屏幕边缘遮挡了,导致你无法看清或选择菜单项? 上图中右键菜单的 ...
- 【干货】Java开发者快速上手.NET指南
前言 前几天有小伙伴在技术群里发了一个微软官方出的:适用于Java开发人员的.NET快速入门免费电子书,今天大姚来分享一下Java开发者想要快速上手.NET有哪些教程和优质资料. 微软适用于Java开 ...
- objective-c之Class底层结构探索
isa 走位图 在讲 OC->Class 底层类结构之前,先看下下面这张图: 通过isa走位图 得出的结论是: 1,类,父类,元类都包含了 isa, superclass 2,对象isa指向类对 ...