欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OpenHarmony如何調(diào)用電話服務API撥打電話

 更新時間:2022年11月23日 09:32:02   作者:堅果的博客  
OpenHarmony3.1版本標準系統(tǒng)增加了通話相關的聯(lián)系人應用,來電應用等,在系統(tǒng)服務層面電話相關功能也比較完善,這篇文章主要介紹了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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論