0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā)電話服務(wù):【@ohos.telephony.call (撥打電話)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-15 09:13 ? 次閱讀

撥打電話

call模塊提供呼叫管理功能,包括撥打電話、跳轉(zhuǎn)到撥號界面、獲取通話狀態(tài)、格式化電話號碼等。

如需訂閱通話狀態(tài)請使用[observer.on('callStateChange')]

說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點(diǎn)擊或者復(fù)制轉(zhuǎn)到。
本模塊首批接口從API version 6開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。

導(dǎo)入模塊

import call from '@ohos.telephony.call';

call.dial

dial(phoneNumber: string, callback: AsyncCallback): void

撥打電話。使用callback異步回調(diào)。

需要權(quán)限 :ohos.permission.PLACE_CALL,該權(quán)限為系統(tǒng)權(quán)限

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù)

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
callbackAsyncCallback回調(diào)函數(shù),返回true為成功,false為失敗。

示例:

call.dial("138xxxxxxxx", (err, data) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

call.dial

dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback): void

撥打電話,可設(shè)置通話參數(shù)。使用callback異步回調(diào)。

需要權(quán)限 :ohos.permission.PLACE_CALL,該權(quán)限為系統(tǒng)權(quán)限

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
options[DialOptions]通話參數(shù),選擇為語音通話還是視頻通話。
callbackAsyncCallback回調(diào)函數(shù),返回true為成功,false為失敗。

示例:

call.dial("138xxxxxxxx", {
    extras: false
}, (err, data) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

call.dial

dial(phoneNumber: string, options?: DialOptions): Promise

撥打電話,可設(shè)置通話參數(shù)。使用Promise異步回調(diào)。

需要權(quán)限 :ohos.permission.PLACE_CALL,該權(quán)限為系統(tǒng)權(quán)限

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
options[DialOptions]通話參數(shù),選擇為語音通話還是視頻通話。

返回值:

類型說明
Promise以Promise形式返回?fù)艽螂娫挼慕Y(jié)果,返回true為成功,false為失敗。

示例:

let promise = call.dial("138xxxxxxxx", {
    extras: false
});
promise.then(data = > {
    console.log(`dial success, promise: data- >${JSON.stringify(data)}`);
}).catch(err = > {
    console.error(`dial fail, promise: err- >${JSON.stringify(err)}`);
});

call.makeCall7+

makeCall(phoneNumber: string, callback: AsyncCallback): void

跳轉(zhuǎn)到撥號界面,并顯示待撥出的號碼。使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.Applications.Contacts

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
callbackAsyncCallback以callback形式異步返回跳轉(zhuǎn)撥號界面的結(jié)果。

示例:

call.makeCall("138xxxxxxxx", err = > { 
    console.log(`makeCall callback: err- >${JSON.stringify(err)}`); 
});

call.makeCall7+

makeCall(phoneNumber: string): Promise

跳轉(zhuǎn)到撥號界面,并顯示待撥出的號碼。使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.Applications.Contacts

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。

返回值:

類型說明
Promise以Promise形式異步返回?fù)芴柕慕Y(jié)果。

示例:

let promise = call.makeCall("138xxxxxxxx"); 
promise.then(() = > { 
    console.log(`makeCall success`); 
}).catch(err = > { 
    console.error(`makeCall fail, promise: err- >${JSON.stringify(err)}`); 
});

call.hasCall

hasCall(callback: AsyncCallback): void

判斷是否存在通話。使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
callbackAsyncCallback回調(diào)函數(shù)。返回true表示當(dāng)前存在通話,false表示當(dāng)前不存在通話。

示例:

call.hasCall((err, data) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

call.hasCall

hasCall(): Promise

判斷是否存在通話。使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

返回值:

類型說明
Promise以Promise形式異步返回判斷是否存在通話。

示例:

let promise = call.hasCall();
promise.then(data = > {
    console.log(`hasCall success, promise: data- >${JSON.stringify(data)}`);
}).catch(err = > {
    console.error(`hasCall fail, promise: err- >${JSON.stringify(err)}`);
});

call.getCallState

getCallState(callback: AsyncCallback): void

獲取當(dāng)前通話狀態(tài)。使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
callbackAsyncCallback<[CallState]>回調(diào)函數(shù),異步返回獲取到的通話狀態(tài)。

示例:

call.getCallState((err, data) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

call.getCallState

getCallState(): Promise

獲取當(dāng)前通話狀態(tài)。使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

返回值:

類型說明
Promise<[CallState]>以Promise形式異步返回獲取到的通話狀態(tài)。

示例:

let promise = call.getCallState();
promise.then(data = > {
    console.log(`getCallState success, promise: data- >${JSON.stringify(data)}`);
}).catch(err = > {
    console.error(`getCallState fail, promise: err- >${JSON.stringify(err)}`);
});

call.hasVoiceCapability7+

hasVoiceCapability(): boolean

檢查當(dāng)前設(shè)備是否具備語音通話能力。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

返回值:

類型說明
boolean返回true表示設(shè)備具備語音通話能力,返回false表示設(shè)備不具備語音通話能力。
let result = call.hasVoiceCapability(); 
console.log(`hasVoiceCapability: ${JSON.stringify(result)}`);

call.isEmergencyPhoneNumber7+

isEmergencyPhoneNumber(phoneNumber: string, callback: AsyncCallback): void

判斷是否是緊急電話號碼。使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
callbackAsyncCallback回調(diào)函數(shù)。返回true表示是緊急電話號碼,返回false表示不是緊急電話號碼。

示例:

call.isEmergencyPhoneNumber("138xxxxxxxx", (err, data) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

call.isEmergencyPhoneNumber7+

isEmergencyPhoneNumber(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback): void

根據(jù)電話號碼參數(shù),判斷是否是緊急電話號碼。使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
options[EmergencyNumberOptions]電話號碼參數(shù)。
callbackAsyncCallback回調(diào)函數(shù)。返回true表示是緊急電話號碼,返回false表示不是緊急電話號碼。

示例:

call.isEmergencyPhoneNumber("112", {slotId: 1}, (err, value) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

call.isEmergencyPhoneNumber7+

isEmergencyPhoneNumber(phoneNumber: string, options?: EmergencyNumberOptions): Promise

根據(jù)電話號碼參數(shù),判斷是否是緊急電話號碼。使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
options[EmergencyNumberOptions]電話號碼參數(shù)。

返回值:

類型說明
Promise以Promise形式異步返回判斷是否是緊急電話號碼的結(jié)果。

示例:

let promise = call.isEmergencyPhoneNumber("138xxxxxxxx", {slotId: 1});
promise.then(data = > {
    console.log(`isEmergencyPhoneNumber success, promise: data- >${JSON.stringify(data)}`);
}).catch(err = > {
    console.error(`isEmergencyPhoneNumber fail, promise: err- >${JSON.stringify(err)}`);
});

call.formatPhoneNumber7+

formatPhoneNumber(phoneNumber: string, callback: AsyncCallback): void

格式化電話號碼。使用callback異步回調(diào)。

電話號碼格式化后為標(biāo)準(zhǔn)數(shù)字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
callbackAsyncCallback回調(diào)函數(shù),返回格式化電話號碼的結(jié)果。

示例:

call.formatPhoneNumber("138xxxxxxxx", (err, data) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

call.formatPhoneNumber7+

formatPhoneNumber(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback): void

格式化電話號碼,可設(shè)置格式化參數(shù)。使用callback異步回調(diào)。

電話號碼格式化后為標(biāo)準(zhǔn)數(shù)字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
options[NumberFormatOptions]格式化參數(shù),如國家碼。
callbackAsyncCallback回調(diào)函數(shù),返回格式化電話號碼的結(jié)果。

示例:

call.formatPhoneNumber("138xxxxxxxx",{
    countryCode: "CN"
}, (err, data) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

call.formatPhoneNumber7+

formatPhoneNumber(phoneNumber: string, options?: NumberFormatOptions): Promise

格式化電話號碼,可設(shè)置格式化參數(shù)。使用Promise異步回調(diào)。

電話號碼格式化后為標(biāo)準(zhǔn)數(shù)字字串,例如:”138 xxxx xxxx“、”0755 xxxx xxxx“。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
options[NumberFormatOptions]格式化參數(shù),如國家碼。

返回值:

類型說明
Promise以Promise形式異步返回格式化電話號碼的結(jié)果。

示例:

let promise = call.formatPhoneNumber("138xxxxxxxx", {
    countryCode: "CN"
});
promise.then(data = > {
    console.log(`formatPhoneNumber success, promise: data- >${JSON.stringify(data)}`);
}).catch(err = > {
    console.error(`formatPhoneNumber fail, promise: err- >${JSON.stringify(err)}`);
});

call.formatPhoneNumberToE1647+

formatPhoneNumberToE164(phoneNumber: string, countryCode: string, callback: AsyncCallback): void

將電話號碼格式化為E.164表示形式。使用callback異步回調(diào)。

待格式化的電話號碼需要與傳入的國家碼相匹配,如中國電話號碼需要傳入國家碼CN,否則格式化后的電話號碼為null。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
countryCodestring國家碼,支持所有國家碼,如:中國(CN)。
callbackAsyncCallback回調(diào)函數(shù),返回將電話號碼格式化為E.164表示形式的結(jié)果。

示例:

call.formatPhoneNumberToE164("138xxxxxxxx",{
    countryCode: "CN"
}, (err, data) = > {
    console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});

call.formatPhoneNumberToE1647+

formatPhoneNumberToE164(phoneNumber: string, countryCode: string): Promise

將電話號碼格式化為E.164表示形式。使用Promise異步回調(diào)。

待格式化的電話號碼需要與傳入的國家碼相匹配,如中國電話號碼需要傳入國家碼CN,否則格式化后的電話號碼為null。

支持所有國家碼。

系統(tǒng)能力 :SystemCapability.Telephony.CallManager

參數(shù):

參數(shù)名類型必填說明
phoneNumberstring電話號碼。
countryCodestring國家碼,支持所有國家碼,如:中國(CN)。

返回值:

類型說明
Promise以Promise形式異步返回將電話號碼格式化為E.164表示形式的結(jié)果。

示例:

let promise = call.formatPhoneNumberToE164("138xxxxxxxx", {
    countryCode: "CN"
});
promise.then(data = > {
    console.log(`formatPhoneNumberToE164 success, promise: data- >${JSON.stringify(data)}`);
}).catch(err = > {
    console.error(`formatPhoneNumberToE164 fail, promise: err- >${JSON.stringify(err)}`);
});

DialOptions

撥打電話的可選參數(shù)。

系統(tǒng)能力 :以下各項(xiàng)對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.CallManager。

參數(shù)名類型必填說明
extrasboolean根據(jù)extras的值判斷是否為視頻通話,默認(rèn)為語音通話。 - true:視頻通話。 - false:語音通話。

CallState

通話狀態(tài)碼。

系統(tǒng)能力 :以下各項(xiàng)對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.CallManager。

名稱說明
CALL_STATE_UNKNOWN-1無效狀態(tài),當(dāng)獲取呼叫狀態(tài)失敗時(shí)返回。
CALL_STATE_IDLE0表示沒有正在進(jìn)行的呼叫。
CALL_STATE_RINGING1表示來電正在振鈴或等待。
CALL_STATE_OFFHOOK2表示至少有一個(gè)呼叫處于撥號、通話中或呼叫保持狀態(tài),并且沒有新的來電振鈴或等待。

EmergencyNumberOptions7+

判斷是否是緊急電話號碼的可選參數(shù)。

系統(tǒng)能力 :以下各項(xiàng)對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.CallManager。

參數(shù)名類型必填說明
slotIdnumber卡槽ID: - 卡槽1為0。 - 卡槽2為1。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

新文檔.png

NumberFormatOptions7+

格式化號碼的可選參數(shù)。

系統(tǒng)能力 :以下各項(xiàng)對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.CallManager。

參數(shù)名類型必填說明
countryCodestring國家碼,支持所有國家的國家碼,如:中國(CN)。默認(rèn)為:CN。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1501

    瀏覽量

    62033
  • 電話
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    25807
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2352

    瀏覽量

    42863
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙實(shí)戰(zhàn)應(yīng)用開發(fā):【撥打電話】功能

    概述 本示例通過輸入電話,進(jìn)行電話撥打,及電話相關(guān)信息的顯示。 樣例展示 涉及OpenHarmony技術(shù)特性 網(wǎng)絡(luò)通信 基礎(chǔ)信息 撥打電話
    發(fā)表于 03-04 20:22

    鴻蒙原生應(yīng)用元服務(wù)開發(fā)-WEB跨應(yīng)用跳轉(zhuǎn)

    web_webview from \'@ohos.web.webview\'; import call from \'@ohos.telephony.call\'; @Entry
    發(fā)表于 05-27 15:06

    基于鴻蒙Next模擬電話通訊錄及電話撥打

    一、介紹 基于鴻蒙Next模擬電話通訊錄,可以撥打電話,刪除電話等二、場景需求 客戶服務(wù)、業(yè)務(wù)咨詢、回訪處理、溝通交流、信息交流等等 三、業(yè)
    發(fā)表于 08-27 15:24

    鴻蒙可以撥打電話了!#鴻蒙

    嵌入式電話鴻蒙HarmonyOS行業(yè)芯事經(jīng)驗(yàn)分享
    連志安
    發(fā)布于 :2022年04月03日 17:00:07

    打電話自動開啟網(wǎng)絡(luò)的軟件

    大家好朋友們有誰知道能撥打電話的時(shí)候手機(jī)自動開啟網(wǎng)絡(luò)的軟件啊謝謝大家十萬火急的要
    發(fā)表于 04-02 06:18

    急求 電話按鍵撥號撥打電話程序

    急求 電話按鍵撥號撥打電話程序
    發(fā)表于 04-02 09:04

    通過STM32控制GSM撥打電話不正常

    我這個(gè)東西是使用STM32去控制GSM模塊(TC35I模塊)撥打電話,通過串口1去控制GSM模塊實(shí)現(xiàn)相關(guān)的功能,基本類似于提供的例程里的實(shí)驗(yàn)3 串口實(shí)驗(yàn)?,F(xiàn)在的情況是,使用上位機(jī)直接去控制GSM模塊
    發(fā)表于 02-14 04:44

    SIM800C撥打電話回音嚴(yán)重

    1.用SIM800C撥打電話有回音,硬件連接方面是一個(gè)喇叭跟麥克距離5cm左右;撥打手機(jī)后,在手機(jī)里說一句手機(jī)聽筒也會重復(fù)一句。2.配置一下指令也有回音,沒改善AT+CHF=1,2AT+CHFA=2AT+ECHO=1,x,x,x,x,1 x表示不會配置,寫的最大值求大神指
    發(fā)表于 06-04 04:36

    #DAYU200# OpenHarmony跳轉(zhuǎn)撥號界面

    ohos.permission.PLACE_CALL,建議應(yīng)用使用makeCall(),跳轉(zhuǎn)到撥號界面,并顯示撥號的號碼,當(dāng)開發(fā)者調(diào)用makeCall接口時(shí),設(shè)備會自動跳轉(zhuǎn)到撥號界面。和正常撥打電話一樣,用戶可以選擇卡1或
    發(fā)表于 09-21 16:04

    HarmonyOS應(yīng)用API-撥打電話

    1.import需要的模塊。// import需要的模塊import call from '@ohos.telephony.call';import observer from
    發(fā)表于 10-14 09:45

    在DAYU200上實(shí)現(xiàn)OpenHarmony跳轉(zhuǎn)撥號界面

    網(wǎng)絡(luò)信號信息開發(fā)指導(dǎo)。直接撥打電話需要提供系統(tǒng)權(quán)限ohos.permission.PLACE_CALL,在這里建議應(yīng)用使用makeCall(),跳轉(zhuǎn)到撥號界面,并顯示撥號的號碼,當(dāng)開發(fā)
    發(fā)表于 10-19 11:39

    HarmonyOS應(yīng)用開發(fā)JSAPI-js撥打電話call

    ="capsule" class="btn" onclick="call">撥打電話</button>
    發(fā)表于 11-21 10:52

    使用Android 12撥打電話是否需要額外購買許可證?

    我正在 iMX8QM EVK 板上進(jìn)行開發(fā)。我在主板上運(yùn)行 Android 12。使用 Android 12 撥打電話是否需要額外購買許可證?
    發(fā)表于 04-10 12:07

    iphone常見軟件故障之-外地出差無法撥打電話

    iphone常見軟件故障之-外地出差無法撥打電話 這個(gè)問題一般很少見,不過有蘋果用戶反映我們就稍微提一下,如果你遇到這樣的問
    發(fā)表于 02-01 10:32 ?2875次閱讀

    如何使用GPRS模塊接打電話KINGCOMTEKG系列電話應(yīng)用指導(dǎo)

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用GPRS模塊接打電話KINGCOMTEKG系列電話應(yīng)用指導(dǎo)。
    發(fā)表于 12-03 17:06 ?9次下載
    如何使用GPRS模塊接<b class='flag-5'>打電話</b>KINGCOMTEKG系列<b class='flag-5'>電話</b>應(yīng)用指導(dǎo)