OpenHarmony如何調(diào)用電話服務API撥打電話
OpenHarmony電話服務開發(fā)
電話服務系統(tǒng)提供了一系列的API用于撥打電話、獲取無線蜂窩網(wǎng)絡和SIM卡相關信息。
應用可以通過調(diào)用API來獲取當前注冊網(wǎng)絡名稱、網(wǎng)絡服務狀態(tài)、信號強度以及SIM卡的相關信息,具體可參考獲取當前蜂窩網(wǎng)絡信號信息開發(fā)指導。
直接撥打電話需要系統(tǒng)權限ohos.permission.PLACE_CALL,建議應用使用makeCall(),跳轉到撥號界面,并顯示撥號的號碼,具體可查看下面的演示。
OpenHarmony跳轉撥號界面
當應用需要跳轉到撥號界面,并顯示撥號的號碼時,大家就可以來看這篇文章,當開發(fā)者調(diào)用makeCall接口時,設備會自動跳轉到撥號界面。和正常撥打電話一樣,用戶可以選擇卡1或卡2撥出。
先來看一下實現(xiàn)的效果。
接口說明
call模塊為開發(fā)者提供呼叫管理功能。observer模塊為開發(fā)者提供通話業(yè)務狀態(tài)訂閱和取消訂閱功能。
- call.hasVoiceCapability():能力獲取,表示是否具有語音功能。
- call.makeCall()跳轉撥號界面,跳轉到撥號界面,并顯示撥號的號碼。
- observer.on(‘callStateChange’):訂閱通話業(yè)務狀態(tài)變化,ohos.permission.READ_CALL_LOG (獲取通話號碼需要該權限)
- observer.off(‘callStateChange’):取消訂閱通話業(yè)務狀態(tài)變化.
開發(fā)步驟
1.import需要的模塊。
// import需要的模塊 import call from '@ohos.telephony.call'; import observer from '@ohos.telephony.observer';
2.調(diào)用hasVoiceCapability()接口獲取當前設備呼叫能力,如果支持繼續(xù)下一步;如果不支持則無法發(fā)起呼叫。
// 調(diào)用查詢能力接口 let isSupport = call.hasVoiceCapability(); if (!isSupport) { console.log("not support voice capability, return."); return; }
3.跳轉到撥號界面,并顯示撥號的號碼。
// 如果設備支持呼叫能力,則繼續(xù)跳轉到撥號界面,并顯示撥號的號碼 call.makeCall("13xxxx", (err)=> { if (!err) { console.log("make call success."); } else { console.log("make call fail, err is:" + JSON.stringify(err)); } });
4.(可選)訂閱通話業(yè)務狀態(tài)變化。
// 訂閱通話業(yè)務狀態(tài)變化(可選) observer.on("callStateChange", (data) => { console.log("call state change, data is:" + JSON.stringify(data)); });
5.取消訂閱通話業(yè)務狀態(tài)變。
// 取消訂閱通話業(yè)務狀態(tài)變 observer.off("callStateChange", (data) => { console.log("call state change, data is:" + JSON.stringify(data)); });
完畢
最后附上完整代碼:
/* * Copyright (c) 2022 JianGuo 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. */ /** * @ProjectName : nutsStudy * @FileName : call * @Description : 文件描述 */ // import需要的模塊 import call from '@ohos.telephony.call'; import observer from '@ohos.telephony.observer'; @Entry @Component struct CAllTest{ build(){ Column(){ Button("打電話").width(200).height(80) .fontSize(30).fontColor(Color.Orange).onClick(()=>{ // 調(diào)用查詢能力接口 let isSupport = call.hasVoiceCapability(); if (!isSupport) { console.info(" support voice capability, return"); return; } // 如果設備支持呼叫能力,則繼續(xù)跳轉到撥號界面,并顯示撥號的號碼 call.makeCall("17752170152", (err)=> { if (!err) { console.info(" make call success."); } else { console.info("make call fail, err is:" + JSON.stringify(err)); } }); }) }.width("100%").height("100%").justifyContent(FlexAlign.Center) } }
到此這篇關于OpenHarmony如何調(diào)用電話服務API撥打電話的文章就介紹到這了,更多相關OpenHarmony撥打電話內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android應用開發(fā)之簡易、大氣音樂播放器實現(xiàn)專輯倒影效果
這篇文章主要介紹了Android應用開發(fā)之簡單、大氣音樂播放器實現(xiàn)專輯倒影效果,對android音樂播放器感興趣的朋友可以參考下2015-10-10Android P實現(xiàn)靜默安裝的方法示例(官方Demo)
這篇文章主要介紹了Android P實現(xiàn)靜默安裝,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02iOS開發(fā)中TableView類似QQ分組的折疊與展開效果
這篇文章主要介紹了iOS開發(fā)中TableView類似QQ分組的折疊與展開效果,其實要做這個效果我先想到的是在tableView中再嵌套多個tableView。下面通過本文給大家分享實現(xiàn)思路,需要的朋友可以參考下2016-12-12Android開發(fā)之ProgressDialog進度對話框用法示例
這篇文章主要介紹了Android開發(fā)之ProgressDialog進度對話框用法,簡單介紹了ProgressDialog進度對話框常見函數(shù)功能,并結合實例形式分析了ProgressDialog組件創(chuàng)建及使用進度對話框相關操作技巧,需要的朋友可以參考下2019-03-03android通過gps獲取定位的位置數(shù)據(jù)和gps經(jīng)緯度
這篇文章主要介紹了android通過gps獲取定位的位置數(shù)據(jù)示例,大家參考使用吧2014-01-01Android基于ViewPager Fragment實現(xiàn)選項卡
這篇文章主要介紹了Android基于ViewPager Fragment實現(xiàn)選項卡的相關資料,需要的朋友可以參考下2015-11-11基于Manifest.xml中不要出現(xiàn)重復的uses permission的說明
本篇文章對Manifest.xml中不要出現(xiàn)重復的uses permission進行了介紹。需要的朋友參考下2013-05-05