OpenHarmony跳轉撥號界面
當應用需要跳轉到撥號界面,并顯示撥號的號碼時,大家就可以來看這篇文章,當開發者調用makeCall接口時,設備會自動跳轉到撥號界面。和正常撥打電話一樣,用戶可以選擇卡1或卡2撥出。
先來看一下實現的效果。
![2](https://luckly007.oss-cn-beijing.aliyuncs.com/macimages/2.gif)
直接撥打電話需要系統權限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文章
3747瀏覽量
16588
發布評論請先 登錄
相關推薦
USB PPP撥號上網,看這篇!
![USB PPP<b class='flag-5'>撥號</b>上網,看這篇!](https://file1.elecfans.com/web3/M00/05/48/wKgZPGd-UUaATbi6AAJk_HIcUt0602.png)
鴻蒙原生頁面高性能解決方案上線OpenHarmony社區 助力打造高性能原生應用
第三屆OpenHarmony技術大會星光璀璨、致謝OpenHarmony社區貢獻者
基于ArkTS語言的OpenHarmony APP應用開發:HelloOpenharmony
![基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應用開發:Hello<b class='flag-5'>Openharmony</b>](https://file.elecfans.com/web2/M00/26/21/pYYBAGG5jjSALfrEAAAwAa9Oig8799.png)
基于ArkTS語言的OpenHarmony APP應用開發:HelloOpenharmony
4G卡插上無法正常撥號的解決辦法
鴻蒙原生應用元服務開發-WEB跨應用跳轉
STM32H743IIT6在SystemInit中跳轉到HardFault_Handler函數里面,為什么?
cybt413061連接HFP時,撥號操作未啟動的原因?
YouTube Premium新功能“精彩部分跳轉”上線,用戶喜好預測跳轉功能亮相
基于STM32G4的BOOT至APP跳轉問題排查與實戰指南
![基于STM32G4的BOOT至APP<b class='flag-5'>跳轉</b>問題排查與實戰指南](https://file1.elecfans.com/web2/M00/C3/B6/wKgZomXueiaAQtJkAAAY02P6M5E017.png)
評論