广东知名网站,免费广告行业网站建设,怎么建立本地网站,网站模板下载器文章目录 一、call模块#xff08;拨打电话#xff09;1、使用makeCall拨打电话2、获取当前通话状态3、判断是否存在通话4、检查当前设备是否具备语音通话能力 二、sms模块#xff08;短信服务#xff09;1、创建短信2、发送短信 三、radio模块#xff08;网络搜索#x… 文章目录 一、call模块拨打电话1、使用makeCall拨打电话2、获取当前通话状态3、判断是否存在通话4、检查当前设备是否具备语音通话能力 二、sms模块短信服务1、创建短信2、发送短信 三、radio模块网络搜索1、获取网络状态 四、data模块蜂窝数据1、检查蜂窝数据业务是否启用2、获取蜂窝数据业务的上下行状态 五、sim模块SIM卡管理六、observer订阅管理1、网络状态变化2、信号状态变化3、通话状态变化4、蜂窝数据链路连接状态5、sim状态更改 一、call模块拨打电话
系统应用可以直接拨打电话在应用界面显示通话三方应用可以拉起系统电话应用跳转至拨号界面从而实现拨打电话的功能。除此之外应用还可以通过call模块实现格式化电话号码、判断是否紧急号码等功能。
1、使用makeCall拨打电话 导入call和observer模块。 调用hasVoiceCapability确认当前设备是否支持拨号。 调用makeCall接口跳转到拨号界面并显示待拨号的号码。 订阅通话业务状态变化。 // import需要的模块import { call, observer } from kit.TelephonyKit;import { BusinessError } from kit.BasicServicesKit;// 调用查询能力接口let isSupport call.hasVoiceCapability();if (isSupport) {// 如果设备支持呼叫能力则继续跳转到拨号界面并显示拨号的号码call.makeCall(13xxxx, (err: BusinessError) {if (!err) {console.log(make call success.);} else {console.log(make call fail, err is: JSON.stringify(err));}});// 订阅通话业务状态变化可选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、获取当前通话状态
let callState: call.CallState call.getCallStateSync();
console.log(the call state is: callState);返回值
名称值说明CALL_STATE_UNKNOWN-1无效状态当获取呼叫状态失败时返回。CALL_STATE_IDLE0表示没有正在进行的呼叫。CALL_STATE_RINGING1表示来电正在振铃或等待。CALL_STATE_OFFHOOK2表示至少有一个呼叫处于拨号、通话中或呼叫保持状态并且没有新的来电振铃或等待。CALL_STATE_ANSWERED3表示来电已经接听。
3、判断是否存在通话
let hasCall: boolean call.hasCallSync();
console.log(hasCallSync success, has call is hasCall);返回值
类型说明boolean返回判断是否存在通话。返回true表示当前存在通话false表示当前不存在通话。
4、检查当前设备是否具备语音通话能力
let result: boolean call.hasVoiceCapability();
console.log(hasVoiceCapability: ${JSON.stringify(result)});返回值
类型说明boolean返回true表示设备具备语音通话能力返回false表示设备不具备语音通话能力。
二、sms模块短信服务
应用可以实现创建、发送短信消息的功能。除此之外应用还可以实现获取、设置短信服务中心地址和检查当前设备是否具备短信发送和接收能力等功能。
1、创建短信
import { sms } from kit.TelephonyKit;
import { BusinessError } from kit.BasicServicesKit;const specification: string 3gpp;
// 以数组的形式显示协议数据单元PDU类型为number。
const pdu: Arraynumber [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、发送短信
import { sms } from kit.TelephonyKit;
import { AsyncCallback, BusinessError } from kit.BasicServicesKit;// 短信发送结果回调
let sendCallback: AsyncCallbacksms.ISendShortMessageCallback (err: BusinessError, data: sms.ISendShortMessageCallback) {console.log(sendCallback: err-${JSON.stringify(err)}, data-${JSON.stringify(data)});
};// 短信送达结果回调
let deliveryCallback: AsyncCallbacksms.IDeliveryShortMessageCallback (err: BusinessError, data: sms.IDeliveryShortMessageCallback) {console.log(deliveryCallback: err-${JSON.stringify(err)}, data-${JSON.stringify(data)});
};// 发送短信的参数
let options: sms.SendMessageOptions {slotId: 0,content: 短信内容,destinationHost: 861xxxxxxxxxx,serviceCenter: 861xxxxxxxxxx,destinationPort: 1000,sendCallback: sendCallback,deliveryCallback: deliveryCallback
};// 使用Promise异步回调
let promise sms.sendShortMessage(options);
promise.then(() {console.log(sendShortMessage success);
}).catch((err: BusinessError) {console.error(sendShortMessage failed, promise: err-${JSON.stringify(err)});
});发送短信的参数和回调
名称类型必填说明slotIdnumber是用于发送短信的SIM卡槽ID- 0卡槽1- 1卡槽2destinationHoststring是短信的发送地址。contentstring,Array是如果内容是字符串则这是一条文本短信。如果内容是字节数组则这是一条数据短信。serviceCenterstring否短信中心地址。默认使用SIM卡中的短信中心地址。destinationPortnumber否如果发送数据消息destinationPort 是必需的。否则是可选的。sendCallbackAsyncCallback否短信发送结果回调返回短信发送的结果发送数据短信时此项必填。deliveryCallbackAsyncCallback否短信送达结果回调返回短信递送报告发送数据短信时此项必填。
三、radio模块网络搜索
应用可以调用API获取当前注册网络名称、网络服务状态以及信号强度相关信息。
1、获取网络状态
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返回网络状态。
网络注册状态。
名称类型必填说明longOperatorNamestring是注册网络的长运营商名称。shortOperatorNamestring是注册网络的短运营商名称。plmnNumericstring是注册网络的PLMN码。isRoamingboolean是是否处于漫游状态。regStateRegState是设备的网络注册状态。cfgTech8RadioTechnology是设备的无线接入技术。nsaStateNsaState是设备的NSA网络注册状态。isCaActiveboolean是CA的状态。isEmergencyboolean是此设备是否只允许拨打紧急呼叫。
四、data模块蜂窝数据
蜂窝数据是无线通讯技术标准的一种从数据的传输到交换都采用分组技术Packet Switch能够为移动设备提供话音、数据、视频图像等业务经常用于支持用户在智能设备上使用应用程序以及在移动网络上浏览网页。
1、检查蜂窝数据业务是否启用
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)});
});返回值
类型说明booleantrue蜂窝数据业务已启用。false蜂窝数据业务已禁用。
2、获取蜂窝数据业务的上下行状态
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蜂窝数据业务的上下行状态。
蜂窝数据流类型。
名称值说明DATA_FLOW_TYPE_NONE0表示没有上行或下行数据。DATA_FLOW_TYPE_DOWN1表示只有下行数据。DATA_FLOW_TYPE_UP2表示只有上行数据。DATA_FLOW_TYPE_UP_DOWN3表示有上下行数据。DATA_FLOW_TYPE_DORMANT4表示没有上下行数据底层链路处于休眠状态。
五、sim模块SIM卡管理
应用可以调用API获取SIM卡相关信息如服务提供商、ISOInternational Organization for Standardization国际标准化组织国家码、归属PLMNPublic Land Mobile Network公共陆地移动网络号等。
六、observer订阅管理
提供订阅管理功能可以订阅/取消订阅的事件包括网络状态变化、信号状态变化、通话状态变化、蜂窝数据链路连接状态、蜂窝数据业务的上下行数据流状态、SIM状态变化。
1、网络状态变化
observer.on(networkStateChange, (data: observer.NetworkState) {console.log(on networkStateChange, data: JSON.stringify(data));
});2、信号状态变化
import { radio } from kit.TelephonyKit;observer.on(signalInfoChange, (data: Arrayradio.SignalInformation) {console.log(on signalInfoChange, data: JSON.stringify(data));
});3、通话状态变化
observer.on(callStateChange, (data: observer.CallStateInfo) {console.log(on callStateChange, data: JSON.stringify(data));
});4、蜂窝数据链路连接状态
observer.on(cellularDataConnectionStateChange, (data: observer.DataConnectionStateInfo) {console.log(on cellularDataConnectionStateChange, data: JSON.stringify(data));
});5、sim状态更改
observer.on(simStateChange, (data: observer.SimStateData) {console.log(on simStateChange, data: JSON.stringify(data));
});