什么是網(wǎng)站排名優(yōu)化百度關(guān)鍵詞挖掘工具
文章目錄
- 一、call模塊(撥打電話)
- 1、使用makeCall撥打電話
- 2、獲取當(dāng)前通話狀態(tài)
- 3、判斷是否存在通話
- 4、檢查當(dāng)前設(shè)備是否具備語音通話能力
- 二、sms模塊(短信服務(wù))
- 1、創(chuàng)建短信
- 2、發(fā)送短信
- 三、radio模塊(網(wǎng)絡(luò)搜索)
- 1、獲取網(wǎng)絡(luò)狀態(tài)
- 四、data模塊(蜂窩數(shù)據(jù))
- 1、檢查蜂窩數(shù)據(jù)業(yè)務(wù)是否啟用
- 2、獲取蜂窩數(shù)據(jù)業(yè)務(wù)的上下行狀態(tài)
- 五、sim模塊(SIM卡管理)
- 六、observer訂閱管理
- 1、網(wǎng)絡(luò)狀態(tài)變化
- 2、信號(hào)狀態(tài)變化
- 3、通話狀態(tài)變化
- 4、蜂窩數(shù)據(jù)鏈路連接狀態(tài)
- 5、sim狀態(tài)更改
一、call模塊(撥打電話)
系統(tǒng)應(yīng)用可以直接撥打電話,在應(yīng)用界面顯示通話;三方應(yīng)用可以拉起系統(tǒng)電話應(yīng)用,跳轉(zhuǎn)至撥號(hào)界面,從而實(shí)現(xiàn)撥打電話的功能。除此之外,應(yīng)用還可以通過call模塊,實(shí)現(xiàn)格式化電話號(hào)碼、判斷是否緊急號(hào)碼等功能。
1、使用makeCall撥打電話
-
導(dǎo)入call和observer模塊。
-
調(diào)用hasVoiceCapability,確認(rèn)當(dāng)前設(shè)備是否支持撥號(hào)。
-
調(diào)用makeCall接口,跳轉(zhuǎn)到撥號(hào)界面并顯示待撥號(hào)的號(hào)碼。
-
訂閱通話業(yè)務(wù)狀態(tài)變化。
// import需要的模塊import { call, observer } from '@kit.TelephonyKit';import { BusinessError } from '@kit.BasicServicesKit';// 調(diào)用查詢能力接口let isSupport = call.hasVoiceCapability();if (isSupport) {// 如果設(shè)備支持呼叫能力,則繼續(xù)跳轉(zhuǎn)到撥號(hào)界面,并顯示撥號(hào)的號(hào)碼call.makeCall("13xxxx", (err: BusinessError) => {if (!err) {console.log("make call success.");} else {console.log("make call fail, err is:" + JSON.stringify(err));}});// 訂閱通話業(yè)務(wù)狀態(tài)變化(可選)class SlotId {slotId: number = 0}class CallStateCallback {state: call.CallState = call.CallState.CALL_STATE_UNKNOWN;number: string = "";}let slotId: SlotId = {slotId: 0}observer.on("callStateChange", slotId, (data: CallStateCallback) => {console.log("call state change, data is:" + JSON.stringify(data));});}
2、獲取當(dāng)前通話狀態(tài)
let callState: call.CallState = call.getCallStateSync();
console.log(`the call state is:` + callState);
返回值:
名稱 | 值 | 說明 |
---|---|---|
CALL_STATE_UNKNOWN | -1 | 無效狀態(tài),當(dāng)獲取呼叫狀態(tài)失敗時(shí)返回。 |
CALL_STATE_IDLE | 0 | 表示沒有正在進(jìn)行的呼叫。 |
CALL_STATE_RINGING | 1 | 表示來電正在振鈴或等待。 |
CALL_STATE_OFFHOOK | 2 | 表示至少有一個(gè)呼叫處于撥號(hào)、通話中或呼叫保持狀態(tài),并且沒有新的來電振鈴或等待。 |
CALL_STATE_ANSWERED | 3 | 表示來電已經(jīng)接聽。 |
3、判斷是否存在通話
let hasCall: boolean = call.hasCallSync();
console.log(`hasCallSync success, has call is ` + hasCall);
返回值:
類型 | 說明 |
---|---|
boolean | 返回判斷是否存在通話。返回true表示當(dāng)前存在通話,false表示當(dāng)前不存在通話。 |
4、檢查當(dāng)前設(shè)備是否具備語音通話能力
let result: boolean = call.hasVoiceCapability();
console.log(`hasVoiceCapability: ${JSON.stringify(result)}`);
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示設(shè)備具備語音通話能力,返回false表示設(shè)備不具備語音通話能力。 |
二、sms模塊(短信服務(wù))
應(yīng)用可以實(shí)現(xiàn)創(chuàng)建、發(fā)送短信消息的功能。除此之外,應(yīng)用還可以實(shí)現(xiàn)獲取、設(shè)置短信服務(wù)中心地址,和檢查當(dāng)前設(shè)備是否具備短信發(fā)送和接收能力等功能。
1、創(chuàng)建短信
import { sms } from '@kit.TelephonyKit';
import { BusinessError } from '@kit.BasicServicesKit';const specification: string = '3gpp';
// 以數(shù)組的形式顯示協(xié)議數(shù)據(jù)單元(PDU),類型為number。
const pdu: Array<number> = [0x01, 0x00, 0x05, 0x81, 0x01, 0x80, 0xF6, 0x00, 0x00, 0x05, 0xE8, 0x32, 0x9B, 0xFD, 0x06];
sms.createMessage(pdu, specification).then((data: sms.ShortMessage) => {console.log(`createMessage success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {console.error(`createMessage failed, promise: err->${JSON.stringify(err)}`);
});
2、發(fā)送短信
import { sms } from '@kit.TelephonyKit';
import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';// 短信發(fā)送結(jié)果回調(diào)
let sendCallback: AsyncCallback<sms.ISendShortMessageCallback> = (err: BusinessError, data: sms.ISendShortMessageCallback) => {console.log(`sendCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
};// 短信送達(dá)結(jié)果回調(diào)
let deliveryCallback: AsyncCallback<sms.IDeliveryShortMessageCallback> = (err: BusinessError, data: sms.IDeliveryShortMessageCallback) => {console.log(`deliveryCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
};// 發(fā)送短信的參數(shù)
let options: sms.SendMessageOptions = {slotId: 0,content: '短信內(nèi)容',destinationHost: '+861xxxxxxxxxx',serviceCenter: '+861xxxxxxxxxx',destinationPort: 1000,sendCallback: sendCallback,deliveryCallback: deliveryCallback
};// 使用Promise異步回調(diào)
let promise = sms.sendShortMessage(options);
promise.then(() => {console.log(`sendShortMessage success`);
}).catch((err: BusinessError) => {console.error(`sendShortMessage failed, promise: err->${JSON.stringify(err)}`);
});
發(fā)送短信的參數(shù)和回調(diào)
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
slotId | number | 是 | 用于發(fā)送短信的SIM卡槽ID: - 0:卡槽1 - 1:卡槽2 |
destinationHost | string | 是 | 短信的發(fā)送地址。 |
content | string,Array | 是 | 如果內(nèi)容是字符串,則這是一條文本短信。如果內(nèi)容是字節(jié)數(shù)組,則這是一條數(shù)據(jù)短信。 |
serviceCenter | string | 否 | 短信中心地址。默認(rèn)使用SIM卡中的短信中心地址。 |
destinationPort | number | 否 | 如果發(fā)送數(shù)據(jù)消息,destinationPort 是必需的。否則是可選的。 |
sendCallback | AsyncCallback | 否 | 短信發(fā)送結(jié)果回調(diào),返回短信發(fā)送的結(jié)果,發(fā)送數(shù)據(jù)短信時(shí),此項(xiàng)必填。 |
deliveryCallback | AsyncCallback | 否 | 短信送達(dá)結(jié)果回調(diào),返回短信遞送報(bào)告,發(fā)送數(shù)據(jù)短信時(shí),此項(xiàng)必填。 |
三、radio模塊(網(wǎng)絡(luò)搜索)
應(yīng)用可以調(diào)用API獲取當(dāng)前注冊網(wǎng)絡(luò)名稱、網(wǎng)絡(luò)服務(wù)狀態(tài)以及信號(hào)強(qiáng)度相關(guān)信息。
1、獲取網(wǎng)絡(luò)狀態(tài)
import { BusinessError } from '@kit.BasicServicesKit';let slotId: number = 0;
radio.getNetworkState(slotId).then((data: radio.NetworkState) => {console.log(`getNetworkState success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {console.error(`getNetworkState failed, promise: err->${JSON.stringify(err)}`);
});
返回值:
類型 | 說明 |
---|---|
NetworkState | 返回網(wǎng)絡(luò)狀態(tài)。 |
網(wǎng)絡(luò)注冊狀態(tài)。
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
longOperatorName | string | 是 | 注冊網(wǎng)絡(luò)的長運(yùn)營商名稱。 |
shortOperatorName | string | 是 | 注冊網(wǎng)絡(luò)的短運(yùn)營商名稱。 |
plmnNumeric | string | 是 | 注冊網(wǎng)絡(luò)的PLMN碼。 |
isRoaming | boolean | 是 | 是否處于漫游狀態(tài)。 |
regState | RegState | 是 | 設(shè)備的網(wǎng)絡(luò)注冊狀態(tài)。 |
cfgTech8 | RadioTechnology | 是 | 設(shè)備的無線接入技術(shù)。 |
nsaState | NsaState | 是 | 設(shè)備的NSA網(wǎng)絡(luò)注冊狀態(tài)。 |
isCaActive | boolean | 是 | CA的狀態(tài)。 |
isEmergency | boolean | 是 | 此設(shè)備是否只允許撥打緊急呼叫。 |
四、data模塊(蜂窩數(shù)據(jù))
蜂窩數(shù)據(jù)是無線通訊技術(shù)標(biāo)準(zhǔn)的一種,從數(shù)據(jù)的傳輸?shù)浇粨Q都采用分組技術(shù)(Packet Switch),能夠?yàn)橐苿?dòng)設(shè)備提供話音、數(shù)據(jù)、視頻圖像等業(yè)務(wù),經(jīng)常用于支持用戶在智能設(shè)備上使用應(yīng)用程序,以及在移動(dòng)網(wǎng)絡(luò)上瀏覽網(wǎng)頁。
1、檢查蜂窩數(shù)據(jù)業(yè)務(wù)是否啟用
import { data } from '@kit.TelephonyKit';
import { BusinessError } from '@kit.BasicServicesKit';data.isCellularDataEnabled().then((contextData: boolean) => {console.log(`isCellularDataEnabled success, promise: contextData->${JSON.stringify(contextData)}`);
}).catch((err: BusinessError) => {console.error(`isCellularDataEnabled fail, promise: err->${JSON.stringify(err)}`);
});
返回值:
類型 | 說明 |
---|---|
boolean | true:蜂窩數(shù)據(jù)業(yè)務(wù)已啟用。false:蜂窩數(shù)據(jù)業(yè)務(wù)已禁用。 |
2、獲取蜂窩數(shù)據(jù)業(yè)務(wù)的上下行狀態(tài)
import { data } from '@kit.TelephonyKit';
import { BusinessError } from '@kit.BasicServicesKit';data.getCellularDataFlowType().then((contextData: data.DataFlowType) => {console.log(`getCellularDataFlowType success, promise: contextData->${JSON.stringify(contextData)}`);
}).catch((err: BusinessError) => {console.error(`getCellularDataFlowType fail, promise: err->${JSON.stringify(err)}`);
});
返回值:
類型 | 說明 |
---|---|
DataFlowType | 蜂窩數(shù)據(jù)業(yè)務(wù)的上下行狀態(tài)。 |
蜂窩數(shù)據(jù)流類型。
名稱 | 值 | 說明 |
---|---|---|
DATA_FLOW_TYPE_NONE | 0 | 表示沒有上行或下行數(shù)據(jù)。 |
DATA_FLOW_TYPE_DOWN | 1 | 表示只有下行數(shù)據(jù)。 |
DATA_FLOW_TYPE_UP | 2 | 表示只有上行數(shù)據(jù)。 |
DATA_FLOW_TYPE_UP_DOWN | 3 | 表示有上下行數(shù)據(jù)。 |
DATA_FLOW_TYPE_DORMANT | 4 | 表示沒有上下行數(shù)據(jù),底層鏈路處于休眠狀態(tài)。 |
五、sim模塊(SIM卡管理)
應(yīng)用可以調(diào)用API獲取SIM卡相關(guān)信息,如服務(wù)提供商、ISO(International Organization for Standardization,國際標(biāo)準(zhǔn)化組織)國家碼、歸屬PLMN(Public Land Mobile Network,公共陸地移動(dòng)網(wǎng)絡(luò))號(hào)等。
六、observer訂閱管理
提供訂閱管理功能,可以訂閱/取消訂閱的事件包括:網(wǎng)絡(luò)狀態(tài)變化、信號(hào)狀態(tài)變化、通話狀態(tài)變化、蜂窩數(shù)據(jù)鏈路連接狀態(tài)、蜂窩數(shù)據(jù)業(yè)務(wù)的上下行數(shù)據(jù)流狀態(tài)、SIM狀態(tài)變化。
1、網(wǎng)絡(luò)狀態(tài)變化
observer.on('networkStateChange', (data: observer.NetworkState) => {console.log("on networkStateChange, data:" + JSON.stringify(data));
});
2、信號(hào)狀態(tài)變化
import { radio } from '@kit.TelephonyKit';observer.on('signalInfoChange', (data: Array<radio.SignalInformation>) => {console.log("on signalInfoChange, data:" + JSON.stringify(data));
});
3、通話狀態(tài)變化
observer.on('callStateChange', (data: observer.CallStateInfo) => {console.log("on callStateChange, data:" + JSON.stringify(data));
});
4、蜂窩數(shù)據(jù)鏈路連接狀態(tài)
observer.on('cellularDataConnectionStateChange', (data: observer.DataConnectionStateInfo) => {console.log("on cellularDataConnectionStateChange, data:" + JSON.stringify(data));
});
5、sim狀態(tài)更改
observer.on('simStateChange', (data: observer.SimStateData) => {console.log("on simStateChange, data:" + JSON.stringify(data));
});