HarmonyOS鸿蒙Next中为什么我调用完application_info_entry这个,跳过去立马返回来了?
HarmonyOS鸿蒙Next中为什么我调用完application_info_entry这个,跳过去立马返回来了?
startAppSettingAbility() {
// AppUtil.toAppSetting()
// 获取上下文
const context = getContext() as common.UIAbilityContext
// 获取包信息
const bundleInfo = bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
let name = bundleInfo.name
// 打开系统设置页
context.startAbility({
bundleName: 'com.huawei.hmos.settings',
abilityName: 'com.huawei.hmos.settings.MainAbility',
uri: 'application_info_entry',
parameters: {
// 按照包名打开对应设置页
pushParams: bundleInfo.name
}
}).then(() => {
console.info("Start settings ability successfully.");
}).catch((err: BusinessError) => {
console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
});
}
我调用这段代码,跳转到一半空白直接返回了。但是调用其他api,比如:wifi_entry,bluetooth_entry之类的都是正常的。为什么?环境是开发环境
更多关于HarmonyOS鸿蒙Next中为什么我调用完application_info_entry这个,跳过去立马返回来了?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
DevEco Studio 5.1.1 Beta1,api版本是5.0.0(12),就是用真机试的,别的跳转没问题,就这个application_info_entry不行,
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
【问题分析】
我在测试环境使用真机调试是能够正常打开的:我使用的手机API版本是20,楼主参考一下导入有没有问题
【参考代码】
import {
abilityAccessCtrl,
AtomicServiceOptions,
bundleManager,
common,
OpenLinkOptions,
Want,
wantConstant
} from '@kit.AbilityKit';
startAppSettingAbility() {
// AppUtil.toAppSetting()
// 获取上下文
const context = getContext() as common.UIAbilityContext
// 获取包信息
const bundleInfo = bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
let name = bundleInfo.name
// 打开系统设置页
context.startAbility({
bundleName: 'com.huawei.hmos.settings',
abilityName: 'com.huawei.hmos.settings.MainAbility',
uri: 'application_info_entry',
parameters: {
// 按照包名打开对应设置页
pushParams: bundleInfo.name
}
}).then(() => {
console.info("Start settings ability successfully.");
}).catch((err: BusinessError) => {
console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
});
}
Button('打开设置页').onClick((event: ClickEvent) => {
this.startAppSettingAbility()
})
你看我上面的代码,对比了下,都一样的。我的api是12,
在HarmonyOS Next中,调用application_info_entry后立即返回,通常是由于应用信息查询生命周期管理机制导致的。系统在获取应用信息条目后,若检测到无后续操作需求或上下文环境不满足持续条件,会自动终止查询流程并返回调用点。可能涉及权限校验未通过、查询参数不完整或系统资源调度策略等因素。建议检查调用时的上下文状态和参数配置是否符合API规范要求。
从代码看,问题可能出在 application_info_entry 的特定参数处理上。系统设置应用可能对 pushParams 的格式或内容有特定要求,而当前传入的 bundleInfo.name 可能不符合预期。
建议检查以下几点:
- 确认
bundleInfo.name是否为有效的包名字符串,避免包含特殊字符或为空。 - 尝试将
pushParams改为明确的包名字符串进行测试,例如'com.example.myapp',以排除动态获取包名时的潜在问题。 - 查看系统日志中是否有相关错误信息,可能包含更具体的失败原因。
由于 wifi_entry 等入口正常,说明基础跳转逻辑无误,问题应集中在 application_info_entry 的参数处理上。


