OpenHarmony跳轉撥號界面
當應用需要跳轉到撥號界面,并顯示撥號的號碼時,大家就可以來看這篇文章,當開發者調用makeCall接口時,設備會自動跳轉到撥號界面。和正常撥打電話一樣,用戶可以選擇卡1或卡2撥出。
先來看一下實現的效果。
直接撥打電話需要系統權限ohos.permission.PLACE_CALL,建議應用使用makeCall(),跳轉到撥號界面,并顯示撥號的號碼。下面開始正文。
接口說明
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
));
});
最后附上完整代碼:
?
/**
*
* @FileName : call
* @Author : 堅果
* @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
(()
=>
{
// 調用查詢能力接口
let
isSupport
=
call
.
hasVoiceCapability
();
if
(
!
isSupport
) {
console
.
info
(
" support voice capability, return"
);
return
;
}
// 如果設備支持呼叫能力,則繼續跳轉到撥號界面,并顯示撥號的號碼
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
+關注
關注
25文章
3714瀏覽量
16257
發布評論請先 登錄
相關推薦
評論