HarmonyOS電話服務開發指導
電話服務開發概述
H armonyOS 電話服務系統提供了一系列的API用於 撥打電話 、獲取 無線蜂窩網路 和 SIM卡 相關資訊。
應用可以透過呼叫API來獲取當前註冊網路名稱、網路服務狀態、訊號強度以及SIM卡的相關資訊,具體可參考 獲取當前蜂窩網路訊號資訊 開發指導。
直接撥打電話需要系統許可權ohos.permission.PLACE_CALL,建議應用使用makeCall(),跳轉到撥號介面,並顯示撥號的號碼,具體可參考 跳轉撥號介面 開發指導。
約束與限制
搭載裝置需要支援以下硬體:
可以進行獨立蜂窩通訊的Modem以及SIM卡。
跳轉撥號介面
當應用需要跳轉到撥號介面,並顯示撥號的號碼時,使用本業務。當開發者呼叫makeCall介面時,裝置會自動跳轉到撥號介面。和正常撥打電話一樣,使用者可以選擇音訊或影片呼叫,卡1或卡2撥出。
介面說明
call模組為開發者提供呼叫管理功能。observer模組為開發者提供訂閱和取消訂閱通話業務狀態的功能。具體介面說明如下表。
功能分類 |
介面名 |
描述 |
所需許可權 |
能力獲取 |
call.hasVoiceCapability() |
是否具有語音功能 |
無 |
跳轉撥號介面 |
call.makeCall() |
跳轉到撥號介面,並顯示撥號的號碼 |
無 |
訂閱通話業務狀態變化 |
observer.on('callStateChange') |
訂閱通話業務狀態變化 |
ohos.permission.READ_CALL_LOG (獲取通話號碼需要該許可權) |
取消訂閱通話業務狀態變化 |
observer.off('callStateChange') |
取消訂閱通話業務狀態變化 |
無 |
開發步驟
1. import需要的模組。
2. 呼叫hasVoiceCapability()介面獲取當前裝置呼叫能力,如果支援繼續下一步;如果不支援則無法發起呼叫。
3. 跳轉到撥號介面,並顯示撥號的號碼。
4. (可選)訂閱通話業務狀態變化。
// import需要的模組
import
call
from
'@ohos.telephony.call'
;
import
observer
from
'@ohos.telephony.observer'
;
// 呼叫查詢能力介面
let
isSupport
=
call
.
hasVoiceCapability
();
if
(
!
isSupport
)
{
console
.
log
(
"not support voice capability, return."
);
return
;
}
// 如果裝置支援呼叫能力,則繼續跳轉到撥號介面,並顯示撥號的號碼
call
.
makeCall
(
"13xxxx"
,
(
err
)
=>
{
if
(
!
err
)
{
console
.
log
(
"make call success."
);
}
else
{
console
.
log
(
"make call fail, err is:"
+
JSON
.
stringify
(
err
));
}
});
// 訂閱通話業務狀態變化(可選)
observer
.
on
(
"callStateChange"
,
(
data
)
=>
{
console
.
log
(
"call state change, data is:"
+
JSON
.
stringify
(
data
));
});
獲取當前蜂窩網路訊號資訊
場景介紹
應用通常需要獲取使用者所在蜂窩網路下訊號資訊,以便獲取當前駐網質量。開發者可以透過本業務,獲取到使用者指定SIM卡當前所在網路下的訊號資訊。
介面說明
radio模組提供了獲取當前網路訊號資訊的方法。observer模組為開發者提供蜂窩網路狀態訂閱和取消訂閱功能。具體介面說明如下表。
功能分類 |
介面名 |
描述 |
所需許可權 |
訊號強度資訊 |
radio.getSignalInformation () |
獲取當前註冊蜂窩網路訊號強度資訊 |
無 |
訂閱蜂窩網路訊號變化 |
observer.on('signalInfoChange') |
訂閱蜂窩網路訊號變化 |
無 |
取消訂閱蜂窩網路訊號變化 |
observer.off('signalInfoChange') |
取消訂閱蜂窩網路訊號變化 |
無 |
開發步驟
1. import需要的模組。
2. 呼叫getSignalInformation()方法,返回所有SignalInformation列表。
3. 遍歷SignalInformation陣列,並分別根據不同的signalType得到不同制式的訊號強度。
4. 訂閱蜂窩網路訊號變化(可選)。
import radio from '@ohos.telephony.radio'
import observer from '@ohos.telephony.observer';
// 以獲取卡1的訊號強度為例
let slotId = 0;
radio.getSignalInformation(slotId, (err, data) => {
if (!err) {
console.log("get signal information success.");
// 遍歷陣列,輸出不同網路制式下的訊號強度
for (let j = 0; j < data.length; j++) {
console.log("type:" + data[j].signalType + ", level:" + data[j].signalLevel);
}
} else {
console.log("get signal information fail, err is:" + JSON.stringify(err));
}
});
// 訂閱蜂窩網路訊號變化(可選)
observer.on("signalInfoChange", (data) => {
console.log("signal info change, data is:" + JSON.stringify(data));
});
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70009402/viewspace-2992181/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HarmonyOS 裝置管理開發:USB 服務開發指導
- HarmonyOS:NativeWindow 開發指導
- HarmonyOS CPU與I/O密集型任務開發指導
- HarmonyOS 位置服務開發指南
- HarmonyOS 應用事件打點開發指導事件
- HarmonyOS音訊開發指導:使用AudioRenderer開發音訊播放功能音訊
- HarmonyOS音訊開發指導:使用OpenSL ES開發音訊播放功能音訊
- HarmonyOS:Neural Network Runtime 對接 AI 推理框架開發指導AI框架
- 設計和架構:業務開發指導原則架構
- HarmonyOS SDK實況窗服務
- Native API 在 HarmonyOS 應用工程中的使用指導API
- 汽車電子電氣架構開發諮詢服務架構
- HarmonyOS UI 開發UI
- ? 前端開發行為指導規範前端
- java web開發之上機指導(2)JavaWeb
- HarmonyOS 後臺任務管理開發指南上線!
- 服務指紋分析
- 電信VoLTE通話服務今日開始試商用 掉線率接近於零
- 整車電效能裝置開發及測試服務
- [提問交流]開發問題求指導
- 特靈空調售後服務電話(全國24小時客服服務熱線)
- 哪裡有開電子產品發票_開票服務大廳
- 音訊編輯服務UI SDK接入指導及常見問題音訊UI
- HarmonyOS:使用本地真機執行應用/服務
- HarmonyOS開發:HarmonyOS Next 版模擬器使用指南
- HarmonyOS快速開發入門
- 家政服務app開發功能APP
- 開利空調全國售後服務電話官方24小時客服熱線號碼
- Metrics-服務指標度量指標
- ThinkPHP5.1 接入阿里雲簡訊服務 (原大魚最新版) 指導PHP阿里
- HarmonyOS Next後臺任務開發入門:背景與基本任務型別型別
- 如何基於 k8s 開發高可靠服務?容器雲牛人有話說K8S
- 哪裡有開工程服務費發票_開票服務大廳
- 哪裡有開會議服務費發票_開票服務大廳
- 哪裡有開服務會議費發票_開票服務大廳
- 阿里雲智慧對話分析服務阿里
- 4_webflux服務端開發WebUX服務端
- 2 面向服務的開發方法