撥打電話
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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
callback | AsyncCallback | 是 | 回調(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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
options | [DialOptions] | 是 | 通話參數(shù),選擇為語音通話還是視頻通話。 |
callback | AsyncCallback | 是 | 回調(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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
callback | AsyncCallback | 是 | 以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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
返回值:
類型 | 說明 |
---|---|
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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調(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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<[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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
callback | AsyncCallback | 是 | 回調(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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
options | [EmergencyNumberOptions] | 是 | 電話號碼參數(shù)。 |
callback | AsyncCallback | 是 | 回調(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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
callback | AsyncCallback | 是 | 回調(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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
options | [NumberFormatOptions] | 是 | 格式化參數(shù),如國家碼。 |
callback | AsyncCallback | 是 | 回調(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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
countryCode | string | 是 | 國家碼,支持所有國家碼,如:中國(CN)。 |
callback | AsyncCallback | 是 | 回調(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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
countryCode | string | 是 | 國家碼,支持所有國家碼,如:中國(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ù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
extras | boolean | 否 | 根據(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_IDLE | 0 | 表示沒有正在進(jìn)行的呼叫。 |
CALL_STATE_RINGING | 1 | 表示來電正在振鈴或等待。 |
CALL_STATE_OFFHOOK | 2 | 表示至少有一個(gè)呼叫處于撥號、通話中或呼叫保持狀態(tài),并且沒有新的來電振鈴或等待。 |
EmergencyNumberOptions7+
判斷是否是緊急電話號碼的可選參數(shù)。
系統(tǒng)能力 :以下各項(xiàng)對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.CallManager。
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
slotId | number | 否 | 卡槽ID: - 卡槽1為0 。 - 卡槽2為1 。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
NumberFormatOptions7+
格式化號碼的可選參數(shù)。
系統(tǒng)能力 :以下各項(xiàng)對應(yīng)的系統(tǒng)能力均為SystemCapability.Telephony.CallManager。
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
countryCode | string | 否 | 國家碼,支持所有國家的國家碼,如:中國(CN)。默認(rèn)為:CN。 |
-
API
+關(guān)注
關(guān)注
2文章
1501瀏覽量
62033 -
電話
+關(guān)注
關(guān)注
0文章
135瀏覽量
25807 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2352瀏覽量
42863
發(fā)布評論請先 登錄
相關(guān)推薦
評論