HarmonyOS实战应用开发:【拨打电话】功能

概述

本示例通过输入电话,进行电话拨打,及电话相关信息的显示。

样例展示

涉及OpenHarmony技术特性

网络通信

基础信息

在这里插入图片描述

拨打电话

介绍

本示例使用call相关接口实现了拨打电话并显示电话相关信息的功能

效果预览

在这里插入图片描述

使用说明

1.输入电话号码后,点击电话按钮,进行拨打电话。

2.拨打电话后文本框会显示拨打是否成功,是否存在通话,通话状态,是否紧急号码,格式化后的电话号码。

工程目录

entry/src/main/ets/
|---common
|   |---CallView.ets                   // 电话API
|---entryability
|   |---EntryAbility.ts
|---model
|   |---Logger.ts                      // 日志工具
|---pages
|   |---Index.ets                      // 首页

具体实现

该示例展示拨打电话功能,dial方法拨打电话,可设置通话参数,hasCall方法判断是否存在通话,getCallState方法获取当前通话状态,isEmergencyPhoneNumber方法判断是否是紧急电话号码,formatPhoneNumber方法格式化电话号码,formatPhoneNumberToE164方法将电话号码格式化为E.164表示形式。

源码链接:[CallView.ets]

/*

 * Copyright (c) 2022-2023 Huawei 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.

 */



import Logger from '../model/Logger'

import call from '@ohos.telephony.call'



const TAG: string = `[CallView]`



@Component

export struct CallView {

  private on: Resource = $r('app.media.call_on')

  private off: Resource = $r('app.media.call_off')

  @State src: Resource = this.off

  @Link input: string

  @Link output: string



  build() {

    Column() {

      Image(this.src)

        .id('callImg')

        .width(70)

        .height(70)

        .onClick(() => {

          if (this.src == this.on) {

            this.src = this.off

          } else {

            this.output = ''

            this.src = this.on

            call.dialCall(this.input, (err, data) => {

              this.output = this.output + `dial: ${JSON.stringify(data)}` + '\\n'

              Logger.info(`${TAG}, callback: dial err->${JSON.stringify(err)} data->${JSON.stringify(data)}`)

            })



            call.hasCall((err, data) => {

              this.output = this.output + `hasCall: ${JSON.stringify(data)}` + '\\n'

              Logger.info(`${TAG}, callback: hasCall err->${JSON.stringify(err)} data->${JSON.stringify(data)}`)

            })



            call.getCallState((err, data) => {

              this.output = this.output + `getCallState: ${JSON.stringify(data)}` + '\\n'

              Logger.info(`${TAG}, callback: getCallState err->${JSON.stringify(err)} data->${JSON.stringify(data)}`)

            })



            call.isEmergencyPhoneNumber(this.input, (err, data) => {

              this.output = this.output + `isEmergencyPhoneNumber: ${JSON.stringify(data)}` + '\\n'

              Logger.info(`${TAG}, callback: isEmergencyPhoneNumber err->${JSON.stringify(err)} data->${JSON.stringify(data)}`)

            })



            call.formatPhoneNumber(this.input, (err, data) => {

              this.output = this.output + `formatPhoneNumber: ${JSON.stringify(data)}` + '\\n'

              Logger.info(`${TAG}, callback: formatPhoneNumber err->${JSON.stringify(err)} data->${JSON.stringify(data)}`)

            })



            call.formatPhoneNumberToE164(this.input, "CN", (err, data) => {

              this.output = this.output + `formatPhoneNumberToE164: ${JSON.stringify(data)}` + '\\n'

              Logger.info(`${TAG}, callback: formatPhoneNumberToE164 err->${JSON.stringify(err)} data->${JSON.stringify(data)}`)

            })

          }

        })

        .onFinish(() => {

          this.src = this.off

        })

    }

  }

}

写在最后

有很多小伙伴不知道该从哪里开始学习鸿蒙开发技术?也不知道鸿蒙开发的知识点重点掌握的又有哪些?自学时频繁踩坑,导致浪费大量时间。结果还是一知半解。所以有一份实用的鸿蒙(HarmonyOS NEXT)全栈开发资料用来跟着学习是非常有必要的。

获取完整版高清学习资料,请点击→鸿蒙全栈开发学习资料(安全链接,请放心点击)

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了

最新鸿蒙全栈开发学习线路在这里插入图片描述

鸿蒙HarmonyOS开发教学视频

在这里插入图片描述

大厂面试真题

在这里插入图片描述

在这里插入图片描述

鸿蒙OpenHarmony源码剖析

在这里插入图片描述

这份资料能帮住各位小伙伴理清自己的学习思路,更加快捷有效的掌握鸿蒙开发的各种知识。有需要的小伙伴自行领取,,先到先得~无套路领取!!

获取这份完整版高清学习资料,请点击→鸿蒙全栈开发学习资料(安全链接,请放心点击)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值