以编程方式获取已安装的功能

正电子

我正在运行以下代码来迭代已安装的功能

IBundleGroup[] bundleGroups = Platform.getBundleGroupProviders()[0].getBundleGroups();

但是,此代码不返回在产品首次运行后安装的功能。我在“安装详细信息”对话框的“功能”选项卡(帮助->关于->安装详细信息)下没有看到这些已安装的功能,但是在“已安装的软件”选项卡下却看到了它们。是否有其他API可以获取这些功能?

伊利亚·辛卡连科(Ilya Shinkarenko)

为此,最好使用P2 API。这是一个示例,它可能如何工作(未经测试,但您会明白的):

Set<IInstallableUnit> findFeatures() throws ProvisionException {

    Set<IInstallableUnit> result = Sets.newHashSet();

    // 1. initialize necessary p2 services
    BundleContext ctx = FrameworkUtil.getBundle(getClass()).getBundleContext();
    ServiceReference<IProvisioningAgentProvider> ref = ctx.getServiceReference(IProvisioningAgentProvider.class);

    IProvisioningAgentProvider agentProvider = ctx.getService(ref);

    String profileId = IProfileRegistry.SELF; // the profile id for the currently running system
    URI location = null; // the location for the currently running system is null

    IProvisioningAgent provisioningAgent = agentProvider.createAgent(location);
    IProfileRegistry profileRegistry = (IProfileRegistry) provisioningAgent.getService(IProfileRegistry.SERVICE_NAME);
    IProfile p2Profile = profileRegistry.getProfile(profileId);

    // 2. create a query (check QueryUtil for options)
    IQuery<IInstallableUnit> query = QueryUtil.createIUGroupQuery();

    // 3. perform query
    IQueryResult<IInstallableUnit> queryResult = p2Profile.query(query, null);
    result = queryResult.toSet();

    return result;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以编程方式从已安装的应用中获取方案?

来自分类Dev

如何以编程方式激活“已安装”?

来自分类Dev

以编程方式查找是否已安装Android

来自分类Dev

如何以编程方式获取已安装的防病毒软件和防火墙?

来自分类Dev

如何以编程方式获取已安装Excel.exe的路径?

来自分类Dev

如何以编程方式获取已安装的作曲家软件包?

来自分类Dev

如何以编程方式获取已安装的Excel.exe的路径?

来自分类Dev

以编程方式获取已连接的Wifi密码?

来自分类Dev

以编程方式检测与已安装体积的连接类型

来自分类Dev

iOS以编程方式知道是否已安装Profile

来自分类Dev

Ruby:如何以编程方式要求已安装的GEM?

来自分类Dev

如何以编程方式配置已安装的Windows服务

来自分类Dev

Ruby:如何以编程方式要求已安装的GEM?

来自分类Dev

以编程方式卸载功能

来自分类Dev

以编程方式安装apk

来自分类Dev

以编程方式安装APK

来自分类Dev

如何以编程方式检查是否已安装getopts?如果没有,请安装

来自分类Dev

我们可以在Windows Phone 8的应用程序中以编程方式获取已安装应用程序的列表吗?

来自分类Dev

以编程方式获取 AVAudioEngineGraph

来自分类Dev

如何以编程方式检查设备上是否已安装“ iPhone设备配置文件”

来自分类常见问题

如何在Django中以编程方式批准所有已安装的应用程序权限

来自分类Dev

如何以编程方式计算已安装应用程序的所有缓存大小?

来自分类Dev

Visual Studio SDK-如何以编程方式检测已安装的扩展?

来自分类Dev

在Android上以编程方式对已安装的应用程序列表进行分类

来自分类Dev

以编程方式检测已安装的MSVC可再发行文件

来自分类Dev

如何以编程方式检查设备上是否已安装“ iPhone设备配置文件”

来自分类Dev

以编程方式重命名功能

来自分类Dev

以编程方式访问App功能

来自分类Dev

以编程方式访问App功能

Related 相关文章

  1. 1

    如何以编程方式从已安装的应用中获取方案?

  2. 2

    如何以编程方式激活“已安装”?

  3. 3

    以编程方式查找是否已安装Android

  4. 4

    如何以编程方式获取已安装的防病毒软件和防火墙?

  5. 5

    如何以编程方式获取已安装Excel.exe的路径?

  6. 6

    如何以编程方式获取已安装的作曲家软件包?

  7. 7

    如何以编程方式获取已安装的Excel.exe的路径?

  8. 8

    以编程方式获取已连接的Wifi密码?

  9. 9

    以编程方式检测与已安装体积的连接类型

  10. 10

    iOS以编程方式知道是否已安装Profile

  11. 11

    Ruby:如何以编程方式要求已安装的GEM?

  12. 12

    如何以编程方式配置已安装的Windows服务

  13. 13

    Ruby:如何以编程方式要求已安装的GEM?

  14. 14

    以编程方式卸载功能

  15. 15

    以编程方式安装apk

  16. 16

    以编程方式安装APK

  17. 17

    如何以编程方式检查是否已安装getopts?如果没有,请安装

  18. 18

    我们可以在Windows Phone 8的应用程序中以编程方式获取已安装应用程序的列表吗?

  19. 19

    以编程方式获取 AVAudioEngineGraph

  20. 20

    如何以编程方式检查设备上是否已安装“ iPhone设备配置文件”

  21. 21

    如何在Django中以编程方式批准所有已安装的应用程序权限

  22. 22

    如何以编程方式计算已安装应用程序的所有缓存大小?

  23. 23

    Visual Studio SDK-如何以编程方式检测已安装的扩展?

  24. 24

    在Android上以编程方式对已安装的应用程序列表进行分类

  25. 25

    以编程方式检测已安装的MSVC可再发行文件

  26. 26

    如何以编程方式检查设备上是否已安装“ iPhone设备配置文件”

  27. 27

    以编程方式重命名功能

  28. 28

    以编程方式访问App功能

  29. 29

    以编程方式访问App功能

热门标签

归档