电话服务开发概述

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

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

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

约束与限制

搭载设备需要支持以下硬件:

可以进行独立蜂窝通信的 Modem 以及 SIM 卡。

跳转拨号界面

当应用需要跳转到拨号界面,并显示拨号的号码时,使用本业务。当开发者调用 makeCall 接口时,设备会自动跳转到拨号界面。和正常拨打电话一样,用户可以选择音频或视频呼叫,卡 1 或卡 2 拨出。

接口说明

call 模块为开发者提供呼叫管理功能。observer 模块为开发者提供订阅和取消订阅通话业务状态的功能。具体接口说明如下表。

开发步骤

  1. import 需要的模块。

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

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

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

// 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 模块为开发者提供蜂窝网络状态订阅和取消订阅功能。具体接口说明如下表。

开发步骤

  1. import 需要的模块。

  2. 调用 getSignalInformation()方法,返回所有 SignalInformation 列表。

  3. 遍历 SignalInformation 数组,并分别根据不同的 signalType 得到不同制式的信号强度。

  4. 订阅蜂窝网络信号变化(可选)。

    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 电话服务开发指导的更多相关文章

  1. 【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发

    <ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-tr ...

  2. HarmonyOS三方件开发指南(16)-VideoCache 视频缓存

    目录: 1.引言 2.功能介绍 3.VideoCache使用指南 4.VideoCache开发指南 5.<HarmonyOS三方件开发指南>系列文章合集 引言 对于视频播放器这个app大家 ...

  3. 大规模web 服务开发技术

    <大规模web 服务开发技术> 是一本讲解大型Web 应用的入门级书籍,能够让我们接触到大应用的知识点. 目录如下: 第1章  大规模Web服务的开发定位——掌握整体第2章  大规模数据处 ...

  4. IOS 在不打开电话服务的时候,可以响应服务器的推送消息,从而接收服务器的推送消息

    在做即时通讯(基于xmpp框架)的时候遇到这样一个问题,就是在真机测试的时候,你按Home键返回桌面,在你返回桌面的时候,这是你的程序的挂起状态的,在你挂起的时候, 相当于你的程序是死的,程序的所有进 ...

  5. ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器

    ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器一:闲谈一下:1.现在任务跟踪管理系统已经开发快要结束了,抽一点时间来写一下,想一想自己就有成就感啊!!  ...

  6. WCF服务开发与调用的完整示例

    WCF服务开发与调用的完整示例 开发工具:VS2008 开发语言:C# 开发内容:简单的权限管理系统 第一步.建立WCF服务库 点击确定,将建立一个WCF 服务库示例程序,自动生成一个包括IServi ...

  7. delphi 10 seattle 安卓服务开发(二)

    关于delphi 10 移动服务开发的几张图

  8. 北京联想招聘-java 云服务开发工程师 加入qq 群:220486180 或者直接在此 留言咨询

     Position Title: 云服务开发工程师 Experience Required:  3 - 5 Years 负责联想企业网盘服务端开发  Position Requirements  1. ...

  9. (转)在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送

    在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送 From: http://saeapns.sinaapp.com/doc.html 1,在 ...

  10. 大规模web服务开发技术

    大规模web服务开发技术 总评        这本书是日本一个叫hatena的大型网站的CTO写的,通过hatena网站从小到大的演进来反应一个web系统从小到大过程中的各种系统和技术架构变迁,比较接 ...

随机推荐

  1. 手把手教你python数据处理项目——探索ebay汽车销售数据

      探索Ebay汽车销售数据 一.实验目的 1. 熟悉清理数据的流程: 2. 分析Ebay二手车销售数据: 3. 了解jupyter notebook为pandas提供的一些独特特性. 二.实验开发环 ...

  2. Kotlin扩展函数与属性原理解析

    一.扩展函数 扩展函数可以方便地给现有类增加属性和方法而不改动类地代码. 二.原理 fun String.addTo(s: String): String{ return this + s } 反编译 ...

  3. 从华为WeAutomate数字机器人论坛,看政企领域的“政务新智理”

    从华为WeAutomate数字机器人论坛,看政企领域的"政务新智理" 从政务治理到"政务新智理",华为WeAutomate在政务领域的思考与实践 华为WeAut ...

  4. Cordon、Drain、污点与容忍度、亲和性与反亲和性

    在Kubernetes(K8s)中,Cordon.Drain.污点与容忍度.亲和性与反亲和性都是与资源管理和调度相关的概念.下面是对这些概念的详细解释: Cordon(封锁.警戒): Cordon是一 ...

  5. electron 下网页获取 micphone 权限

    网页获取麦克风或摄像头权限我们只需调用 navigator.mediaDevices.getUserMedia 方法就可唤起浏览器用户授权 const useMicphone = async () = ...

  6. 记一次maven不下来的经历

    起因:自己手动搭建个项目,参考公司项目使用了很多依赖,但是当自己maven时候发现一个依赖怎么也down不下来,就此展开了一番折腾 这个依赖叫 <dependency> <group ...

  7. STM32 HAL 使用串口IDLE中断+DMA实现收发

    STM32 HAL 使用串口IDLE中断+DMA实现收发 cubeMX配置 mx配置如下(省去系统时钟,烧录口,工程属性配置) 注意:这里关闭 Force DMA channels Interrupt ...

  8. 打造餐饮+元宇宙新体验!实时云渲染赋能DQverse未来世界

    随着元宇宙的迅猛发展,实体餐饮产业与虚拟元宇宙之间的交汇愈发频繁.诸如海底捞.奈雪的茶.星巴克.王老吉.肯德基等知名餐饮品牌纷纷加大对元宇宙领域的投资与布局. 图源网络 最初只是线上虚拟餐厅的概念,如 ...

  9. 深入分析Java中的PriorityQueue底层实现与源码

    本文分享自华为云社区<滚雪球学Java(70):深入理解Java中的PriorityQueue底层实现与源码分析>,作者: bug菌. 环境说明:Windows 10 + IntelliJ ...

  10. 记录--WebSocket 原理

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.什么是WebSocket WebSocket 是一种在单个TCP连接上进行全双工通信的协议.WebSocket 使得客户端和服务器之间 ...