如何从AbilitySlice移动到HarmonyOS的能力?



我正试图从AbilitySlice移动到Ability。我尝试了下面的代码,但它没有像预期的那样工作。

Operation systemOperation = new Intent.OperationBuilder()
.withBundleName(getBundleName())
.withAbilityName(MainAbility.class.getSimpleName())
.build();
intent.setOperation(systemOperation);
startAbility(intent);

从一个能力切片移动到能力在和谐的操作系统?

尝试从getSimpleName中删除Simple。如:

Operation systemOperation = new Intent.OperationBuilder()
.withBundleName(getBundleName())
.withAbilityName(MainAbility.class.getName())
.build();
intent.setOperation(systemOperation);
startAbility(intent);

不按预期工作"通常不是有效的错误描述。我怀疑AbilitySlice可能属于MainAbility,因此整个操作可能毫无意义,因为从A到B的导航不可能发生。@Gowtham提供的示例有一个小区别(似乎考虑了使用Super device启动Intent的设备):

.withDeviceId("")

你有没有试过启动MainAbility以外的任何东西?

我看到你在给@Martin的回复中提到你的目标技能的包名和你的技能切片的包名不一样。然后,你需要确保Intent的Operation构建器中指定的bundleName(或包名)是目标能力的包名,而不是调用能力的/abilityslice的包名。

Operation systemOperation = new Intent.OperationBuilder()
.withBundleName("enter_package_name_of target_ability_here")
.withAbilityName(MainAbility.class.getName())
.build();
intent.setOperation(systemOperation);
startAbility(intent);

最新更新