HarmonyOS NEXT实战:拨打电话

简介: 本课程介绍如何在HarmonyOS SDK中使用Telephony Kit实现拨打电话功能。通过CallPhoneDemoPage示例,讲解如何输入电话号码并调用makeCall接口拨号,涉及call模块的使用及设备通话能力检测。

HarmonyOS Next实战##HarmonyOS SDK应用服务##教育

目标:输入电话号码,并拨打电话。

知识点:
Telephony Kit(蜂窝通信服务)提供一系列API帮助开发者开发通讯类应用,包括:

  • call模块(拨打电话):系统应用可以直接拨打电话,在应用界面显示通话;三方应用可以拉起系统电话应用,跳转至拨号界面,从而实现拨打电话的功能,具体可参考拨打电话开发指导。除此之外,应用还可以通过call模块,实现格式化电话号码、判断是否紧急号码等功能,详情请参考@ohos.telephony.call API参考。
  • sms模块(短信服务):应用可以实现创建、发送短信消息的功能,具体可参考发送短信开发指导。除此之外,应用还可以实现获取、设置短信服务中心地址,和检查当前设备是否具备短信发送和接收能力等功能,详情请参考@ohos.telephony.sms API参考。
  • radio模块(网络搜索):应用可以调用API获取当前注册网络名称、网络服务状态以及信号强度相关信息,详情请参考@ohos.telephony.radio API参考。
  • data模块(蜂窝数据):蜂窝数据是无线通讯技术标准的一种,从数据的传输到交换都采用分组技术(Packet Switch),能够为移动设备提供话音、数据、视频图像等业务,经常用于支持用户在智能设备上使用应用程序,以及在移动网络上浏览网页,详情请参考@ohos.telephony.data API参考。
  • sim模块(SIM卡管理):应用可以调用API获取SIM卡相关信息,如服务提供商、ISO(International Organization for Standardization,国际标准化组织)国家码、归属PLMN(Public Land Mobile Network,公共陆地移动网络)号等,详情请参考@ohos.telephony.sim API参考。

使用makeCall拨打电话

  1. 导入call和observer模块。
  2. 调用hasVoiceCapability,确认当前设备是否支持拨号。
  3. 调用makeCall接口,跳转到拨号界面并显示待拨号的号码。

实战:CallPhoneDemoPage

import {
    call, observer } from '@kit.TelephonyKit';
import {
    BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct CallPhoneDemoPage {
   
  @State message: string = 'Hello World';
  @State phone: string = ''

  build() {
   
    Column({
    space: 10 }) {
   
      Text('拨打电话Demo')
      TextInput({
    placeholder: '请输入要拨打的电话' })
        .type(InputType.PhoneNumber)
        .onChange((value) => {
   
          this.phone = value
        })
      Button('拨号')
        .onClick(() => {
   
          // 调用查询能力接口
          let isSupport = call.hasVoiceCapability();
          if (isSupport) {
   
            // 如果设备支持呼叫能力,则继续跳转到拨号界面,并显示拨号的号码
            call.makeCall(this.phone, (err: BusinessError) => {
   
              if (!err) {
   
                console.log("make call success.");
              } else {
   
                console.log("make call fail, err is:" + JSON.stringify(err));
              }
            });

            // 订阅通话业务状态变化(可选)
            class SlotId {
   
              slotId: number = 0
            }

            class CallStateCallback {
   
              state: call.CallState = call.CallState.CALL_STATE_UNKNOWN;
              number: string = "";
            }

            let slotId: SlotId = {
    slotId: 0 }
            observer.on("callStateChange", slotId, (data: CallStateCallback) => {
   
              console.log("call state change, data is:" + JSON.stringify(data));
            });
          }
        })
    }
    .height('100%')
    .width('100%')
    .padding({
    left: 20, right: 20 })
  }
}
目录
相关文章
|
4月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
3月前
|
移动开发 前端开发 JavaScript
鸿蒙NEXT时代你所不知道的全平台跨端框架:CMP、Kuikly、Lynx、uni-app x等
本篇基于当前各大活跃的跨端框架的现状,对比当前它们的情况和未来的可能,帮助你在选择框架时更好理解它们的特点和差异。
312 0
|
4月前
|
安全 API 开发工具
【HarmonyOS NEXT】一键扫码功能
这些Kit为我们应用开发提升了极大地效率。很多简单的功能,如果不需要太深的定制化需求,直接调用kit提供的API就可以实现,在android或者ios上需要很多代码才能实现的功能效果。
119 0
HarmonyOS NEXT仓颉开发语言实战案例:电影App
周末好!本文分享使用仓颉语言重构ArkTS实现的电影App案例,对比两者在UI布局、组件写法及语法差异。内容包括页面结构、列表分组、分类切换与电影展示等。通过代码演示仓颉在HarmonyOS开发中的应用。##仓颉##ArkTS##HarmonyOS开发
|
4月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:健身App
本期分享一个健身App首页的布局实现,顶部采用Stack容器实现重叠背景与偏移效果,列表部分使用List结合Scroll实现可滚动内容。代码结构清晰,适合学习HarmonyOS布局技巧。
HarmonyOS NEXT仓颉开发语言实战案例:小而美的旅行App
本文分享了一个旅行App首页的设计与实现,使用List容器搭配Row、Column布局完成个人信息、功能列表及推荐模块的排版,详细展示了HarmonyOS下的界面构建技巧。
|
18天前
|
存储 缓存 5G
鸿蒙 HarmonyOS NEXT端云一体化开发-云存储篇
本文介绍用户登录后获取昵称、头像的方法,包括通过云端API和AppStorage两种方式,并实现上传头像至云存储及更新用户信息。同时解决图片缓存问题,添加上传进度提示,支持自动登录判断,提升用户体验。
90 0
|
18天前
|
存储 负载均衡 数据库
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇
本文介绍基于华为AGC的端云一体化开发流程,涵盖项目创建、云函数开通、应用配置及DevEco集成。重点讲解云函数的编写、部署、调用与传参,并涉及环境变量设置、负载均衡、重试机制与熔断策略等高阶特性,助力开发者高效构建稳定云端服务。
178 0
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇
|
18天前
|
存储 JSON 数据建模
鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇
云数据库采用存储区、对象类型、对象三级结构,支持灵活的数据建模与权限管理,可通过AGC平台或本地项目初始化,实现数据的增删改查及端侧高效调用。
50 0
|
18天前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
150 0
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例