1

我正在尝试从AbilitySlice 转移到Ability。我尝试了下面的代码,但它没有按预期工作。

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

在 Harmony OS 中从 AbilitySlice 迁移到 Ability?

4

3 回答 3

0

我看到您在@Martin 的回复中提到,您的目标技能的包名称与您的技能切片的包名称不同。然后,您需要确保在 Intent 的操作构建器中指定的 bundleName(或包名称)具有目标技能的包名称,而不是调用技能/功能切片的包名称。

Operation systemOperation = new Intent.OperationBuilder()
                        .withBundleName("enter_package_name_of target_ability_here")
                        .withAbilityName(MainAbility.class.getName())
                        .build();
                intent.setOperation(systemOperation);
                startAbility(intent);
于 2021-09-08T06:54:10.453 回答
0

尝试从 中Simple删除getSimpleName。如下:

Operation systemOperation = new Intent.OperationBuilder()
                        .withBundleName(getBundleName())
                        .withAbilityName(MainAbility.class.getName())
                        .build();
                intent.setOperation(systemOperation);
                startAbility(intent);
于 2021-08-09T07:17:14.140 回答
0

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

 .withDeviceId("")

你有没有试过开始别的东西MainAbility

于 2021-08-12T00:09:32.497 回答