OpenHarmony跳轉(zhuǎn)撥號(hào)界面
當(dāng)應(yīng)用需要跳轉(zhuǎn)到撥號(hào)界面,并顯示撥號(hào)的號(hào)碼時(shí),大家就可以來(lái)看這篇文章,當(dāng)開發(fā)者調(diào)用makeCall接口時(shí),設(shè)備會(huì)自動(dòng)跳轉(zhuǎn)到撥號(hào)界面。和正常撥打電話一樣,用戶可以選擇卡1或卡2撥出。
先來(lái)看一下實(shí)現(xiàn)的效果。
直接撥打電話需要系統(tǒng)權(quán)限ohos.permission.PLACE_CALL,建議應(yīng)用使用makeCall(),跳轉(zhuǎn)到撥號(hào)界面,并顯示撥號(hào)的號(hào)碼。下面開始正文。
接口說(shuō)明
call模塊為開發(fā)者提供呼叫管理功能。observer模塊為開發(fā)者提供通話業(yè)務(wù)狀態(tài)訂閱和取消訂閱功能。
call.hasVoiceCapability():能力獲取,表示是否具有語(yǔ)音功能。
call.makeCall()跳轉(zhuǎn)撥號(hào)界面,跳轉(zhuǎn)到撥號(hào)界面,并顯示撥號(hào)的號(hào)碼。
observer.on(‘callStateChange’):訂閱通話業(yè)務(wù)狀態(tài)變化,ohos.permission.READ_CALL_LOG (獲取通話號(hào)碼需要該權(quán)限)
observer.off(‘callStateChange’):取消訂閱通話業(yè)務(wù)狀態(tài)變化.
開發(fā)步驟
1.import需要的模塊。
// import需要的模塊
import
call
from
'@ohos.telephony.call'
;
import
observer
from
'@ohos.telephony.observer'
;
2.調(diào)用hasVoiceCapability()接口獲取當(dāng)前設(shè)備呼叫能力,如果支持繼續(xù)下一步;如果不支持則無(wú)法發(fā)起呼叫。
// 調(diào)用查詢能力接口
let
isSupport
=
call
.
hasVoiceCapability
();
if
(
!
isSupport
) {
console
.
log
(
"not support voice capability, return."
);
return
;
}
3.跳轉(zhuǎn)到撥號(hào)界面,并顯示撥號(hào)的號(hào)碼。
// 如果設(shè)備支持呼叫能力,則繼續(xù)跳轉(zhuǎn)到撥號(hào)界面,并顯示撥號(hào)的號(hào)碼
call
.
makeCall
(
"13xxxx"
, (
err
)
=>
{
if
(
!
err
) {
console
.
log
(
"make call success."
);
}
else
{
console
.
log
(
"make call fail, err is:"
+
JSON
.
stringify
(
err
));
}
});
4.(可選)訂閱通話業(yè)務(wù)狀態(tài)變化。
// 訂閱通話業(yè)務(wù)狀態(tài)變化(可選)
observer
.
on
(
"callStateChange"
, (
data
)
=>
{
console
.
log
(
"call state change, data is:"
+
JSON
.
stringify
(
data
));
});
5.取消訂閱通話業(yè)務(wù)狀態(tài)變。
// 取消訂閱通話業(yè)務(wù)狀態(tài)變
observer
.
off
(
"callStateChange"
, (
data
)
=>
{
console
.
log
(
"call state change, data is:"
+
JSON
.
stringify
(
data
));
});
最后附上完整代碼:
?
/**
*
* @FileName : call
* @Author : 堅(jiān)果
* @Time : 2022/8/15 08:20
* @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
;
}
// 如果設(shè)備支持呼叫能力,則繼續(xù)跳轉(zhuǎn)到撥號(hào)界面,并顯示撥號(hào)的號(hào)碼
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
+關(guān)注
關(guān)注
25文章
3741瀏覽量
16462
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論