【关键字】
HarmonyOS NEXT、系统设置、定位服务
【问题背景】
某些开发者根据业务逻辑,需要检测用户是否开启定位服务开关,如果没有开启,需要引导用户跳转至系统页面打开定位服务,今天就给大家提供一个跳转至设置-隐私-位置服务页面的示例demo。
【示例代码】
import { Want , common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// 拉起设置-隐私-位置服务页面
function startSettingsLocationSettingsAbilityExplicit(context: common.UIAbilityContext): void {
let want: Want = {
bundleName: 'com.huawei.hmos.settings',
abilityName: 'com.huawei.hmos.settings.MainAbility',
uri: 'location_manager_settings' // 根据设置界面的不同选择不同的uri
};
context.startAbility(want)
.then(() => {
// ...
})
.catch((err: BusinessError) => {
console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
});
}
@Entry
@Component
struct Index {
@State message: string = '跳转定位服务';
build() {
Row() {
Column() {
Button(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() => {
const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
startSettingsLocationSettingsAbilityExplicit(context);
})
}
.width('100%')
}
.height('100%')
}
}
【示例效果】
拉起其他设置应用中的常用界面可参考【参考文档】这块内容。
【参考文档】
如何拉起设置应用的常用界面:
https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs/faqs-ability-kit-0000001769732194#section858910165268