我正试图从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);