一、拉起拨号界面并指定号码!
- 导入call模块,调用查询查询能力接口,判断设备是否支持呼叫能力
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));
}
});
}
// 注意:若需订阅通话状态,需要使用observer模块
2.拨打电话API
1.call.dial(phoneNumber: string, callback: AsyncCallback<boolean>): void-->拨打电话
2.call.dial(phoneNumber: string,options: DialOptions, callback: AsyncCallback<boolean>): void--> 拨打电话,可设置通话参数(extras:true视频、false语音)【也支持Promise异步回调】
3.call.makeCall(phoneNumber: string, callback: AsyncCallback<void>): void-->跳转到拨号界面,并显示待拨出的号码【也支持Promise异步回调】
4.call.makeCall(context: Context, phoneNumber: string): Promise<void>-->跳转到拨号界面,并显示待拨出的号码(后台调用需要申请ohos.permission.START_ABILITIES_FROM_BACKGROUND权限)
5.call.hasCall(callback: AsyncCallback<boolean>): void-->判断是否存在通话【也支持Promise异步回调】
6.call.hasCallSync(): boolean-->判断是否存在通话
7.call.getCallState(callback: AsyncCallback<CallState>): void-->获取当前通话状态【也支持Promise异步回调】
8.call.getCallStateSync(): CallState-->获取当前通话状态
9.call.hasVoiceCapability(): boolean-->检查当前设备是否具备语音通话能力
10.call.isEmergencyPhoneNumber(phoneNumber: string, callback: AsyncCallback<boolean>): void-->判断是否是紧急电话号码
11.call.isEmergencyPhoneNumber(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback<boolean>): void-->根据电话号码参数(卡槽ID),判断是否是紧急电话号码【也支持Promise异步回调】
12.call.formatPhoneNumber(phoneNumber: string, callback: AsyncCallback<string>): void-->格式化电话号码
13.call.formatPhoneNumber(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback<string>): void-->设置格式化参数(国家码),格式化电话号码【也支持Promise异步回调】
14.call.formatPhoneNumberToE164(phoneNumber: string, countryCode: string, callback: AsyncCallback<string>): void-->将电话号码格式化为E.164表示形式【也支持Promise异步回调】
3.联系人API--需要ohos.permission.READ_CONTACTS权限
1. contact.selectContacts(callback: AsyncCallback<Array<Contact>>): void-->调用选择联系人接口,打开选择联系人UI界面【也支持Promise异步回调】
2.contact.selectContacts(options: ContactSelectionOptions, callback: AsyncCallback<Array<Contact>>): void-->调用选择联系人接口,打开选择联系人UI界面(options:true多选/false不可多选)【也支持Promise异步回调】
3.contact.queryContact(context: Context, key: string, callback: AsyncCallback<Contact>): void-->根据key查询联系人
4.contact.queryContact(context: Context, key: string, holder: Holder, callback: AsyncCallback<Contact>): void-->根据key和holder查询联系人(Holder类有bundleName、displayName应用名称、holderId应用ID三个字段)
5.contact.queryContact(context: Context, key: string, attrs: ContactAttributes, callback: AsyncCallback<Contact>): void-->根据key和attrs(联系人属性列表,eg.联系人生日等)查询联系人
6.contact.queryContact(context: Context, key: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback<Contact>): void--》根据key、holder和attrs查询联系人【也支持Promise异步回调】
7.contact.queryContacts(context: Context, callback: AsyncCallback<Array<Contact>>): void-->查询所有联系人
8.contact.queryContacts(context: Context, holder: Holder, callback: AsyncCallback<Array<Contact>>): void-->根据holder查询所有联系人
9.contact.queryContacts(context: Context, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void-->根据attrs查询所有联系人
10.contact.queryContacts(context: Context, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void-->根据holder和attrs查询所有联系人【也支持Promise异步回调】
11.contact.queryContactsByPhoneNumber(context: Context, phoneNumber: string, callback: AsyncCallback<Array<Contact>>): void-->根据电话号码查询联系人
12.contact.queryContactsByPhoneNumber(context: Context, phoneNumber: string, holder: Holder, callback: AsyncCallback<Array<Contact>>): void-->根据电话号码和holder查询联系人
13.contact.queryContactsByPhoneNumber(context: Context, phoneNumber: string, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void-->根据电话号码和attrs查询联系人
14.contact.queryContactsByPhoneNumber(context: Context, phoneNumber: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void-->根据电话号码、holder和attrs查询联系人【也支持Promise异步回调】
15.contact.queryContactsByEmail(context: Context, email: string, callback: AsyncCallback<Array<Contact>>): void-->根据email查询联系人
16.contact.queryContactsByEmail(context: Context, email: string, holder: Holder, callback: AsyncCallback<Array<Contact>>): void-->根据email和holder查询联系人
17.contact.queryContactsByEmail(context: Context, email: string, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void-->根据email和attrs查询联系人
18.contact.queryContactsByEmail(context: Context, email: string, holder?: Holder, attrs?: ContactAttributes): Promise<Array<Contact>>-->根据email、holder和attrs查询联系人【也支持Promise异步回调】
19.contact.queryGroups(context: Context, callback: AsyncCallback<Array<Group>>): void-->查询联系人的所有群组
20.contact.queryGroups(context: Context, holder: Holder, callback: AsyncCallback<Array<Group>>): void-->根据holder查询联系人的所有群组【也支持Promise异步回调】
21.contact.queryHolders(context: Context, callback: AsyncCallback<Array<Holder>>): void-->查询所有创建联系人的应用信息【也支持Promise异步回调】
22.contact.queryKey(context: Context, id: number, callback: AsyncCallback<string>): void-->根据联系人的id查询联系人的key
23.contact.queryKey(context: Context, id: number, holder: Holder, callback: AsyncCallback<string>): void-->根据联系人的id和holder查询联系人的key【也支持Promise异步回调】
Promise回调和callback回调的区别???