电话服务开发概述

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. C++ //统计元素个数 //统计内置数据类型 //统计自定义数据类型

    1 //统计元素个数 2 3 #include<iostream> 4 #include<string> 5 #include<vector> 6 #include ...

  2. 如何获取拼多多推流码并使用OBS进行直播-疯狂URL

    简介 拼多多直播在PC端可以用多多视频|多多直播端进行开播,它的功能类似于常见的抖音直播助手和快手直播伴侣等等客户端.此教程测试时间 2023-7-12,第三方随时可能会升级,无法保证时效,建议不要升 ...

  3. XAF EFCore 示例

    前言 在DEV官方建议创建新的XAF项目推荐选择EFCore时,我也第一时间创建了XAF的EFCore项目,这也是我第一次创建这个类型的项目,之前一直使用XPO,避免不了要对比一下.如果熟悉XPO但不 ...

  4. java中webSocket发送图片文件数据非常慢

    一.问题由来 目前在开发的这个小程序中有一个功能需要和Unity客户端进行互动操作,互动的大致流程为在微信小程序中点击一个操作,发送一个HTTP请求, Java后台收到这个请求后,会给Unity客户端 ...

  5. folder-alias vscode左侧目录树 起别名 插件 (git decorations)

    folder-alias vscode左侧目录树 起别名 插件 插件 效果 不足 文件路径或目录路径中包含中文 会挂不上别名,纯英文路径没问题 有修改后,git会覆盖,不显示别名 个人意见 我的项目都 ...

  6. AutoFill Chrome插件 影响 Vue接口读取,导致页面卡死,caution: request is not finished yet!

    今天页面突然卡死了,也不知道是因为什么,直连服务器,能行,自己本机nginx的,系统访问某个特定的api就会卡死. 经过尝试,发现今天测试的AutoFill影响的.

  7. stm32文件系统读写操作调试总结

    一 问题 最近使用到了文件系统的读写,中间遇到了一些问题值得深思.   二 源码解析 创建文件: FRESULT res; do { sprintf(filename,"/sensor_si ...

  8. Access注入-偏移注入

    Access注入-偏移注入 1.偏移注入使用场景及方法 一.偏移注入使用场景及方法 偏移注入使用的场景 1)在sql注入时遇到无法查询数据库字段名时,比如系统自带的数据权限不够无法访问系统自带库 2) ...

  9. 智慧公安!3DCAT实时云渲染助力某公安机关打造数字孪生可视化系统

    近年来,随着大数据.数字孪生.云计算.人工智能等技术的飞速发展,数字化浪潮席卷全国各地公安系统.2022年全国公安工作会议中也提到,数字化改革是推动公安工作创新发展的大引擎.培育战斗力生成新的增长点. ...

  10. drf(路由)

    一 自动生成路由 基本使用 # 视图类,继承了ViewSetMixein,路由 # path('books/', views.BookViewSet.as_view(actions={'get': ' ...