天天看點

OpenHarmony跳轉撥号界面

作者“堅果,華為雲享專家,簽約作者,潤和軟體KOL專家,電子發燒友鴻蒙MVP,51CTO部落格專家部落客,阿裡雲部落格專家,開源項目gin-vue-admin成員之一。

OpenHarmony直接撥打電話需要系統權限ohos.permission.PLACE_CALL,建議應用使用makeCall(),跳轉到撥号界面,并顯示撥号的号碼,具體可看下面這個demo。

OpenHarmony跳轉撥号界面

當應用需要跳轉到撥号界面,并顯示撥号的号碼時,大家就可以來看這篇文章,當開發者調用makeCall接口時,裝置會自動跳轉到撥号界面。和正常撥打電話一樣,使用者可以選擇卡1或卡2撥出。

接口說明

call子產品為開發者提供呼叫管理功能。observer子產品為開發者提供通話業務狀态訂閱和取消訂閱功能。

  • call.hasVoiceCapability():能力擷取,表示是否具有語音功能。
  • call.makeCall()跳轉撥号界面,跳轉到撥号界面,并顯示撥号的号碼。
  • observer.on(‘callStateChange’):訂閱通話業務狀态變化,ohos.permission.READ_CALL_LOG (擷取通話号碼需要該權限)
  • observer.off(‘callStateChange’):取消訂閱通話業務狀态變化.

開發步驟

1.import需要的子產品。

// import需要的子產品
import call from '@ohos.telephony.call';
import observer from '@ohos.telephony.observer';      

2.調用hasVoiceCapability()接口擷取目前裝置呼叫能力,如果支援繼續下一步;如果不支援則無法發起呼叫。

// 調用查詢能力接口
let isSupport = call.hasVoiceCapability();
if (!isSupport) {
    console.log("not support voice capability, return.");
    return;      

3.跳轉到撥号界面,并顯示撥号的号碼。

// 如果裝置支援呼叫能力,則繼續跳轉到撥号界面,并顯示撥号的号碼
call.makeCall("13xxxx", (err)=> {
    if (!err) {
        console.log("make call success.");
    } else {
        console.log("make call fail, err is:" + JSON.stringify(err));
    }
});      

4.(可選)訂閱通話業務狀态變化。

// 訂閱通話業務狀态變化(可選)
observer.on("callStateChange", (data) => {
    console.log("call state change, data is:" + JSON.stringify(data));
});      

5.取消訂閱通話業務狀态變。

// 取消訂閱通話業務狀态變
observer.off("callStateChange", (data) => {
    console.log("call state change, data is:" + JSON.stringify(data));
});