鸿蒙原生contact.queryContacts通讯录查询实现
·
index.ets 文件
import contact from "@ohos.contact"
import { BusinessError } from "@kit.BasicServicesKit"
import { abilityAccessCtrl, common, Permissions, featureAbility } from "@kit.AbilityKit"
import { JSON } from "@kit.ArkTS"
读取联系人关键代码
获取前先动态申请权限,未授权则不获取。
let context = this.getUIContext().getHostContext()
const permissions: Array<Permissions> = ['ohos.permission.READ_CONTACTS']
abilityAccessCtrl.createAtManager()
.requestPermissionsFromUser(context, permissions).then(result => {
console.log("authResults",JSON.stringify( result.authResults))
if (result.authResults.includes(abilityAccessCtrl.GrantStatus.PERMISSION_DENIED))
{
console.log("用户未授权")
return
}
contact.queryContacts(context, (err: BusinessError, data) => {
if (err) {
console.log(`err=>${err.code}`)
return
}
console.log("data=>" + JSON.stringify(data))
})
})
module.json5 文件
这里读和写通讯录的权限都一起写了,避免后续用到又加麻烦。
{
"module": {
"requestPermissions": [
{
"name": "ohos.permission.READ_CONTACTS",
"reason": "$string:contact_permission_reason",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "always"
}
},
{
"name": "ohos.permission.WRITE_CONTACTS",
"reason": "$string:contact_permission_reason",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "always"
}
}
]
}
}
$string:contact_permission_reason 定义在:entry\src\main\resources\base\element\string.json中
{
"name": "contact_permission_reason",
"value": "需要访问通讯录以提供备份服务"
}
更多推荐

所有评论(0)