初始化定位 SDK


1. 为了适配合规要求,调用 SDK 的第一个接口应该是隐私政策合规接口。

TencentLocationSDK.setPrivacyPolicyAgreement(true)

2. 只有在用户同意隐私政策后, 再使用 TencentLocationSDKinit 方法初始化,建议在 EntryAbilityonCreate 方法中设置。

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    TencentLocationSDK.init(this.context, 'YourApiKey', 'YourDeviceID')
  }
}
  • YourApiKey接入指南中获取的 ApiKey。
  • YourDeviceID:开发者自行设置,一般为UUID,每个用户单独用一个,不可太短,用来排查定位问题。

3. 初始化完成后, 再获取 TencentLocationManager 的实例。

[1.0.9 新增] 推荐使用 createInstance() 方法创建实例,getInstance() 方法已废弃。

// 下面 2 个方法功能一模一样(都是新建一个实例), 仅名称不同

// 推荐方式
TencentLocationManager.createInstance()

// 已废弃(仍可使用,但不推荐)
TencentLocationManager.getInstance()

4. 在使用具体功能前, 需要向用户请求对应的权限。

try {
  const permissions: Array<Permissions> = ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION'];
  const atManager = abilityAccessCtrl.createAtManager()
  atManager.requestPermissionsFromUser(this.context, permissions).then((data) => {
    console.info(TAG, `requestPermissionsFromUser result: ${JSON.stringify(data)}`)
  }).catch((error: BusinessError) => {
    console.error(TAG, `requestPermissionsFromUser failed: ${JSON.stringify(error)}`)
  })
} catch(error) {
  console.error(TAG, `catched error: ${JSON.stringify(error)}`)
}

本页内容