撥打電話
call模塊提供呼叫管理功能,包括撥打電話、跳轉到撥號界面、獲取通話狀態、格式化電話號碼等。
如需訂閱通話狀態請使用[observer.on('callStateChange')
]
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點擊或者復制轉到。
本模塊首批接口從API version 6開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
導入模塊
import call from '@ohos.telephony.call';
call.dial
dial(phoneNumber: string, callback: AsyncCallback): void
撥打電話。使用callback異步回調。
需要權限 :ohos.permission.PLACE_CALL,該權限為系統權限
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
callback | AsyncCallback | 是 | 回調函數,返回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
撥打電話,可設置通話參數。使用callback異步回調。
需要權限 :ohos.permission.PLACE_CALL,該權限為系統權限
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
options | [DialOptions] | 是 | 通話參數,選擇為語音通話還是視頻通話。 |
callback | AsyncCallback | 是 | 回調函數,返回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
撥打電話,可設置通話參數。使用Promise異步回調。
需要權限 :ohos.permission.PLACE_CALL,該權限為系統權限
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
options | [DialOptions] | 是 | 通話參數,選擇為語音通話還是視頻通話。 |
返回值:
類型 | 說明 |
---|---|
Promise | 以Promise形式返回撥打電話的結果,返回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
跳轉到撥號界面,并顯示待撥出的號碼。使用callback異步回調。
系統能力 :SystemCapability.Applications.Contacts
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
callback | AsyncCallback | 是 | 以callback形式異步返回跳轉撥號界面的結果。 |
示例:
call.makeCall("138xxxxxxxx", err = > {
console.log(`makeCall callback: err- >${JSON.stringify(err)}`);
});
call.makeCall7+
makeCall(phoneNumber: string): Promise
跳轉到撥號界面,并顯示待撥出的號碼。使用Promise異步回調。
系統能力 :SystemCapability.Applications.Contacts
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
返回值:
類型 | 說明 |
---|---|
Promise | 以Promise形式異步返回撥號的結果。 |
示例:
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異步回調。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調函數。返回true表示當前存在通話,false表示當前不存在通話。 |
示例:
call.hasCall((err, data) = > {
console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});
call.hasCall
hasCall(): Promise
判斷是否存在通話。使用Promise異步回調。
系統能力 :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
獲取當前通話狀態。使用callback異步回調。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<[CallState]> | 是 | 回調函數,異步返回獲取到的通話狀態。 |
示例:
call.getCallState((err, data) = > {
console.log(`callback: err- >${JSON.stringify(err)}, data- >${JSON.stringify(data)}`);
});
call.getCallState
getCallState(): Promise
獲取當前通話狀態。使用Promise異步回調。
系統能力 :SystemCapability.Telephony.CallManager
返回值:
類型 | 說明 |
---|---|
Promise<[CallState]> | 以Promise形式異步返回獲取到的通話狀態。 |
示例:
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
檢查當前設備是否具備語音通話能力。
系統能力 :SystemCapability.Telephony.CallManager
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示設備具備語音通話能力,返回false表示設備不具備語音通話能力。 |
let result = call.hasVoiceCapability();
console.log(`hasVoiceCapability: ${JSON.stringify(result)}`);
call.isEmergencyPhoneNumber7+
isEmergencyPhoneNumber(phoneNumber: string, callback: AsyncCallback): void
判斷是否是緊急電話號碼。使用callback異步回調。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
callback | AsyncCallback | 是 | 回調函數。返回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
根據電話號碼參數,判斷是否是緊急電話號碼。使用callback異步回調。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
options | [EmergencyNumberOptions] | 是 | 電話號碼參數。 |
callback | AsyncCallback | 是 | 回調函數。返回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
根據電話號碼參數,判斷是否是緊急電話號碼。使用Promise異步回調。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
options | [EmergencyNumberOptions] | 是 | 電話號碼參數。 |
返回值:
類型 | 說明 |
---|---|
Promise | 以Promise形式異步返回判斷是否是緊急電話號碼的結果。 |
示例:
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異步回調。
電話號碼格式化后為標準數字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
callback | AsyncCallback | 是 | 回調函數,返回格式化電話號碼的結果。 |
示例:
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
格式化電話號碼,可設置格式化參數。使用callback異步回調。
電話號碼格式化后為標準數字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
options | [NumberFormatOptions] | 是 | 格式化參數,如國家碼。 |
callback | AsyncCallback | 是 | 回調函數,返回格式化電話號碼的結果。 |
示例:
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
格式化電話號碼,可設置格式化參數。使用Promise異步回調。
電話號碼格式化后為標準數字字串,例如:”138 xxxx xxxx“、”0755 xxxx xxxx“。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
options | [NumberFormatOptions] | 是 | 格式化參數,如國家碼。 |
返回值:
類型 | 說明 |
---|---|
Promise | 以Promise形式異步返回格式化電話號碼的結果。 |
示例:
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異步回調。
待格式化的電話號碼需要與傳入的國家碼相匹配,如中國電話號碼需要傳入國家碼CN,否則格式化后的電話號碼為null。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
countryCode | string | 是 | 國家碼,支持所有國家碼,如:中國(CN)。 |
callback | AsyncCallback | 是 | 回調函數,返回將電話號碼格式化為E.164表示形式的結果。 |
示例:
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異步回調。
待格式化的電話號碼需要與傳入的國家碼相匹配,如中國電話號碼需要傳入國家碼CN,否則格式化后的電話號碼為null。
支持所有國家碼。
系統能力 :SystemCapability.Telephony.CallManager
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
phoneNumber | string | 是 | 電話號碼。 |
countryCode | string | 是 | 國家碼,支持所有國家碼,如:中國(CN)。 |
返回值:
類型 | 說明 |
---|---|
Promise | 以Promise形式異步返回將電話號碼格式化為E.164表示形式的結果。 |
示例:
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
撥打電話的可選參數。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.CallManager。
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
extras | boolean | 否 | 根據extras的值判斷是否為視頻通話,默認為語音通話。 - true:視頻通話。 - false:語音通話。 |
CallState
通話狀態碼。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.CallManager。
名稱 | 值 | 說明 |
---|---|---|
CALL_STATE_UNKNOWN | -1 | 無效狀態,當獲取呼叫狀態失敗時返回。 |
CALL_STATE_IDLE | 0 | 表示沒有正在進行的呼叫。 |
CALL_STATE_RINGING | 1 | 表示來電正在振鈴或等待。 |
CALL_STATE_OFFHOOK | 2 | 表示至少有一個呼叫處于撥號、通話中或呼叫保持狀態,并且沒有新的來電振鈴或等待。 |
EmergencyNumberOptions7+
判斷是否是緊急電話號碼的可選參數。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.CallManager。
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
slotId | number | 否 | 卡槽ID: - 卡槽1為0 。 - 卡槽2為1 。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
NumberFormatOptions7+
格式化號碼的可選參數。
系統能力 :以下各項對應的系統能力均為SystemCapability.Telephony.CallManager。
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
countryCode | string | 否 | 國家碼,支持所有國家的國家碼,如:中國(CN)。默認為:CN。 |
-
API
+關注
關注
2文章
1501瀏覽量
62017 -
電話
+關注
關注
0文章
135瀏覽量
25805 -
鴻蒙
+關注
關注
57文章
2352瀏覽量
42858
發布評論請先 登錄
相關推薦
評論