接口

GioAppInfo

描述 [源]

interface Gio.AppInfo : GObject.Object

关于已安装应用程序的信息以及启动它的方法(带有文件参数)。

GAppInfoGAppLaunchContext 用于描述和启动系统中安装的应用程序。

截至 GLib 2.20 版本,即使应用程序请求了 URI(而不是 POSIX 路径),在调用 g_app_info_launch() 时,URI 将始终转换为 POSIX 路径(使用 g_file_get_path())。例如,对于基于桌面文件的应用程序,如果具有以下 Exec 键

Exec=totem %U

以及单个 URI,例如 sftp://foo/file.avi,则将传递 /home/user/.gvfs/sftp on foo/file.avi。这将仅在有合适的一组 GIO 扩展(例如与 FUSE 支持编译的 GVfs 2.26)可用和运行时才有效;如果不是这种情况,将未修改的 URI 传递给应用程序。当然,一些 URI(例如 mailto:)无法映射到 POSIX 路径(在 GVfs 中没有为其创建 FUSE 挂载);此类 URI 将未修改地传递给应用程序。

对于 GVfs 2.26 及以后的版本,POSIX URI 将在 GFile 构造函数中映射回 GIO URI(因为 GVfs 实现了 GVfs 扩展点)。因此,如果应用程序需要检查 URI,它需要使用 g_file_get_uri() 或类似的在 GFile 上。换句话说,应用程序不能假设传递给例如 g_file_new_for_commandline_arg()URI 等于 g_file_get_uri() 的结果。以下示例说明了这一点

GFile *f;
char *uri;

file = g_file_new_for_commandline_arg (uri_from_commandline);

uri = g_file_get_uri (file);
strcmp (uri, uri_from_commandline) == 0;
g_free (uri);

if (g_file_has_uri_scheme (file, "cdda"))
  {
    // do something special with uri
  }
g_object_unref (file);

此代码将在将 cdda://sr0/Track 1.wav/home/user/.gvfs/cdda on sr0/Track 1.wav 传递到应用程序时工作。应注意,通常不建议应用程序依赖于特定 URI 的格式。不同的启动器应用程序(例如文件管理器)对给定 URI 的含义可能有不同的理解。

先决条件

为了实现 AppInfo,您的类型必须从 GObject 继承。

函数

g_app_info_create_from_commandline

根据给定信息创建一个新的 GAppInfo

g_app_info_get_all

获取当前在这个系统上注册的所有应用程序列表。

g_app_info_get_all_for_type

获取包括推荐和后备 GAppInfo 的所有给定内容类型 GAppInfo 的列表。请参阅 g_app_info_get_recommended_for_type()g_app_info_get_fallback_for_type()

g_app_info_get_default_for_type

获取给定内容类型的默认 GAppInfo

g_app_info_get_default_for_type_async

异步获取给定内容类型的默认 GAppInfo

since: 2.74

g_app_info_get_default_for_type_finish

完成由 g_app_info_get_default_for_type_async() 启动的默认 GAppInfo 查找。

since: 2.74

g_app_info_get_default_for_uri_scheme

获取用于处理具有给定 URI 方案的默认应用程序。

g_app_info_get_default_for_uri_scheme_async

异步获取用于处理具有给定 URI 方案的默认应用程序。URUI 方案是 URI 的初始部分,到但不包括冒号(例如 httpftpsip)。

since: 2.74

g_app_info_get_default_for_uri_scheme_finish

完成由 g_app_info_get_default_for_uri_scheme_async() 启动的默认 GAppInfo 查找。

since: 2.74

g_app_info_get_fallback_for_type

获取特定内容类型的回退GAppInfo列表,即那些通过MIME类型子类化和并非直接声明的支持该内容类型的应用程序。

自:2.28

g_app_info_get_recommended_for_type

获取特定内容类型的推荐GAppInfo列表,即那些直接声明支持该内容类型,并非通过MIME类型子类化的应用程序。

自:2.28

g_app_info_launch_default_for_uri

一个工具函数,它启动一个已注册处理指定uri的默认应用程序。如果需要,将同步I/O执行在uri上以检测文件类型。

g_app_info_launch_default_for_uri_async

g_app_info_launch_default_for_uri()的异步版本。

自:2.50

g_app_info_launch_default_for_uri_finish

完成异步启动默认uri操作。

自:2.50

g_app_info_reset_type_associations

删除由g_app_info_set_as_default_for_type()g_app_info_set_as_default_for_extension()g_app_info_add_supports_type()g_app_info_remove_supports_type()所做的所有类型关联更改。

自:2.20

实例方法

g_app_info_add_supports_type

将内容类型添加到应用程序信息中,以指示该应用程序能够打开给定的类型文件。

g_app_info_can_delete

获取关于GAppInfo是否可删除的信息。见g_app_info_delete()

自:2.20

g_app_info_can_remove_supports_type

检查一个已支持的内容类型是否可以从一个应用程序中删除。

g_app_info_delete

尝试删除一个GAppInfo

自:2.20

g_app_info_dup

创建一个GAppInfo的副本。

g_app_info_equal

检查两个GAppInfo是否相等。

g_app_info_get_commandline

获取启动应用程序将使用的命令行。

自:2.20

g_app_info_get_description

获取已安装应用程序的文本描述。

g_app_info_get_display_name

获取应用程序的显示名称。显示名称通常比名称本身更能描述给用户的信息。

自:2.24

g_app_info_get_executable

获取已安装应用程序的可执行程序名称。

g_app_info_get_icon

获取应用程序的图标。

g_app_info_get_id

获取应用程序的ID。ID是一个标识应用程序的字符串。ID的确切格式依赖于平台。例如,在Unix上,这是来自xdg菜单规范的桌面文件ID。

g_app_info_get_name

获取应用程序的已安装名称。

g_app_info_get_supported_types

检索应用程序声明的支持的类型列表。如果没有提供环境信息,此函数将返回NULL

自:2.34

g_app_info_launch

启动应用程序。将files作为参数传递给启动的应用程序,使用可选的context获取有关启动程序详细信息的信息(如它在哪个屏幕上)。如果出错,将相应设置error

g_app_info_launch_uris

启动应用程序。将uris作为参数传递给启动的应用程序,使用可选的context获取有关启动程序详细信息的信息(如它在哪个屏幕上)。如果出错,将相应设置error。如果应用程序只支持在命令行中作为其调用一部分的一个URI,则会为应用程序启动多个实例。

g_app_info_launch_uris_async

g_app_info_launch_uris()的异步版本。

自:2.60

g_app_info_launch_uris_finish

完成g_app_info_launch_uris_async()操作。

自:2.60

g_app_info_remove_supports_type

如果可能,从应用程序中删除一个支持的类型。

g_app_info_set_as_default_for_extension

设置应用程序为给定文件扩展名的默认处理程序。

g_app_info_set_as_default_for_type

设置应用程序为给定类型的默认处理程序。

g_app_info_set_as_last_used_for_type

将应用程序设置为特定类型的最后使用应用程序。这会使应用程序在由 g_app_info_get_recommended_for_type() 返回的列表中显示在首位,而不管该内容类型的默认应用程序是什么。

g_app_info_should_show

检查应用程序信息是否应显示在列出现有应用程序的菜单中。

g_app_info_supports_files

检查应用程序是否接受文件作为参数。

g_app_info_supports_uris

检查应用程序是否支持从URIs读取文件和目录。

接口结构

struct GioAppInfoIface {
  GTypeInterface g_iface;
  GAppInfo* (* dup) (
    GAppInfo* appinfo
  );
  gboolean (* equal) (
    GAppInfo* appinfo1,
    GAppInfo* appinfo2
  );
  const char* (* get_id) (
    GAppInfo* appinfo
  );
  const char* (* get_name) (
    GAppInfo* appinfo
  );
  const char* (* get_description) (
    GAppInfo* appinfo
  );
  const char* (* get_executable) (
    GAppInfo* appinfo
  );
  GIcon* (* get_icon) (
    GAppInfo* appinfo
  );
  gboolean (* launch) (
    GAppInfo* appinfo,
    GList* files,
    GAppLaunchContext* context,
    GError** error
  );
  gboolean (* supports_uris) (
    GAppInfo* appinfo
  );
  gboolean (* supports_files) (
    GAppInfo* appinfo
  );
  gboolean (* launch_uris) (
    GAppInfo* appinfo,
    GList* uris,
    GAppLaunchContext* context,
    GError** error
  );
  gboolean (* should_show) (
    GAppInfo* appinfo
  );
  gboolean (* set_as_default_for_type) (
    GAppInfo* appinfo,
    const char* content_type,
    GError** error
  );
  gboolean (* set_as_default_for_extension) (
    GAppInfo* appinfo,
    const char* extension,
    GError** error
  );
  gboolean (* add_supports_type) (
    GAppInfo* appinfo,
    const char* content_type,
    GError** error
  );
  gboolean (* can_remove_supports_type) (
    GAppInfo* appinfo
  );
  gboolean (* remove_supports_type) (
    GAppInfo* appinfo,
    const char* content_type,
    GError** error
  );
  gboolean (* can_delete) (
    GAppInfo* appinfo
  );
  gboolean (* do_delete) (
    GAppInfo* appinfo
  );
  const char* (* get_commandline) (
    GAppInfo* appinfo
  );
  const char* (* get_display_name) (
    GAppInfo* appinfo
  );
  gboolean (* set_as_last_used_for_type) (
    GAppInfo* appinfo,
    const char* content_type,
    GError** error
  );
  const char** (* get_supported_types) (
    GAppInfo* appinfo
  );
  void (* launch_uris_async) (
    GAppInfo* appinfo,
    GList* uris,
    GAppLaunchContext* context,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* launch_uris_finish) (
    GAppInfo* appinfo,
    GAsyncResult* result,
    GError** error
  );
  
}

应用程序信息接口,用于操作系统可移植性。

接口成员
g_iface
GTypeInterface
 

父接口。

dup
GAppInfo* (* dup) (
    GAppInfo* appinfo
  )
 

复制一个 GAppInfo

equal
gboolean (* equal) (
    GAppInfo* appinfo1,
    GAppInfo* appinfo2
  )
 

检查两个 GAppInfo 是否相等。

get_id
const char* (* get_id) (
    GAppInfo* appinfo
  )
 

获取一个字符串标识符,用于标识一个 GAppInfo

get_name
const char* (* get_name) (
    GAppInfo* appinfo
  )
 

获取 GAppInfo 的应用程序名称。

get_description
const char* (* get_description) (
    GAppInfo* appinfo
  )
 

获取由 GAppInfo 描述的应用程序的简短说明。

get_executable
const char* (* get_executable) (
    GAppInfo* appinfo
  )
 

获取 GAppInfo 的可执行名称。

get_icon
GIcon* (* get_icon) (
    GAppInfo* appinfo
  )
 

获取 GIconGAppInfo

launch
gboolean (* launch) (
    GAppInfo* appinfo,
    GList* files,
    GAppLaunchContext* context,
    GError** error
  )
 

使用 GAppInfo 指定的应用程序。

supports_uris
gboolean (* supports_uris) (
    GAppInfo* appinfo
  )
 

指示指定的应用程序是否支持启动URI。

supports_files
gboolean (* supports_files) (
    GAppInfo* appinfo
  )
 

指示指定的应用程序是否接受文件名参数。

launch_uris
gboolean (* launch_uris) (
    GAppInfo* appinfo,
    GList* uris,
    GAppLaunchContext* context,
    GError** error
  )
 

使用列表中的URI启动应用程序。

should_show
gboolean (* should_show) (
    GAppInfo* appinfo
  )
 

返回应用程序是否应显示(例如,获取已安装应用程序列表时)。 FreeDesktop.Org 启动通知规范

set_as_default_for_type
gboolean (* set_as_default_for_type) (
    GAppInfo* appinfo,
    const char* content_type,
    GError** error
  )
 

将应用程序设置为特定内容类型的默认应用程序。

set_as_default_for_extension
gboolean (* set_as_default_for_extension) (
    GAppInfo* appinfo,
    const char* extension,
    GError** error
  )
 

将应用程序设置为特定文件扩展名的默认应用程序。

add_supports_type
gboolean (* add_supports_type) (
    GAppInfo* appinfo,
    const char* content_type,
    GError** error
  )
 

GAppInfo 添加关于支持的文件类型的详细信息。

can_remove_supports_type
gboolean (* can_remove_supports_type) (
    GAppInfo* appinfo
  )
 

检查从 GAppInfo 移除支持的文件类型的功能。

remove_supports_type
gboolean (* remove_supports_type) (
    GAppInfo* appinfo,
    const char* content_type,
    GError** error
  )
 

GAppInfo 中删除一个支持的应用程序类型。

can_delete
gboolean (* can_delete) (
    GAppInfo* appinfo
  )
 

检查一个 GAppInfo 是否可以被删除。 (自 2.20)

do_delete
gboolean (* do_delete) (
    GAppInfo* appinfo
  )
 

删除一个 GAppInfo。 (自 2.20)

get_commandline
const char* (* get_commandline) (
    GAppInfo* appinfo
  )
 

获取 GAppInfo 的命令行。 (自 2.20)

get_display_name
const char* (* get_display_name) (
    GAppInfo* appinfo
  )
 

获取 GAppInfo 的显示名称。 (自 2.24)

set_as_last_used_for_type
gboolean (* set_as_last_used_for_type) (
    GAppInfo* appinfo,
    const char* content_type,
    GError** error
  )
 

将应用程序设置为最后使用。请参阅 g_app_info_set_as_last_used_for_type()

get_supported_types
const char** (* get_supported_types) (
    GAppInfo* appinfo
  )
 

检索 app_info 声称支持的 MIME 类型的列表。

launch_uris_async
void (* launch_uris_async) (
    GAppInfo* appinfo,
    GList* uris,
    GAppLaunchContext* context,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

异步使用列表中的URI启动应用程序。 (自 2.60)

launch_uris_finish
gboolean (* launch_uris_finish) (
    GAppInfo* appinfo,
    GAsyncResult* result,
    GError** error
  )
 

完成由 launch_uris_async 启动的操作。 (自 2.60)

虚方法

Gio.AppInfo.add_supports_type

将内容类型添加到应用程序信息中,以指示该应用程序能够打开给定的类型文件。

Gio.AppInfo.can_delete

获取关于GAppInfo是否可删除的信息。见g_app_info_delete()

自:2.20

gio.AppInfo.can_remove_supports_type

检查一个已支持的内容类型是否可以从一个应用程序中删除。

gio.AppInfo.do_delete

尝试删除一个GAppInfo

自:2.20

gio.AppInfo.dup

创建一个GAppInfo的副本。

gio.AppInfo.equal

检查两个GAppInfo是否相等。

gio.AppInfo.get_commandline

获取启动应用程序将使用的命令行。

自:2.20

gio.AppInfo.get_description

获取已安装应用程序的文本描述。

gio.AppInfo.get_display_name

获取应用程序的显示名称。显示名称通常比名称本身更能描述给用户的信息。

自:2.24

gio.AppInfo.get_executable

获取已安装应用程序的可执行程序名称。

gio.AppInfo.get_icon

获取应用程序的图标。

gio.AppInfo.get_id

获取应用程序的ID。ID是一个标识应用程序的字符串。ID的确切格式依赖于平台。例如,在Unix上,这是来自xdg菜单规范的桌面文件ID。

gio.AppInfo.get_name

获取应用程序的已安装名称。

gio.AppInfo.get_supported_types

检索应用程序声明的支持的类型列表。如果没有提供环境信息,此函数将返回NULL

自:2.34

gio.AppInfo.launch

启动应用程序。将files作为参数传递给启动的应用程序,使用可选的context获取有关启动程序详细信息的信息(如它在哪个屏幕上)。如果出错,将相应设置error

gio.AppInfo.launch_uris

启动应用程序。将uris作为参数传递给启动的应用程序,使用可选的context获取有关启动程序详细信息的信息(如它在哪个屏幕上)。如果出错,将相应设置error。如果应用程序只支持在命令行中作为其调用一部分的一个URI,则会为应用程序启动多个实例。

gio.AppInfo.launch_uris_async

g_app_info_launch_uris()的异步版本。

自:2.60

gio.AppInfo.launch_uris_finish

完成g_app_info_launch_uris_async()操作。

自:2.60

gio.AppInfo.remove_supports_type

如果可能,从应用程序中删除一个支持的类型。

gio.AppInfo.set_as_default_for_extension

设置应用程序为给定文件扩展名的默认处理程序。

gio.AppInfo.set_as_default_for_type

设置应用程序为给定类型的默认处理程序。

gio.AppInfo.set_as_last_used_for_type

将应用程序设置为特定类型的最后使用应用程序。这会使应用程序在由 g_app_info_get_recommended_for_type() 返回的列表中显示在首位,而不管该内容类型的默认应用程序是什么。

gio.AppInfo.should_show

检查应用程序信息是否应显示在列出现有应用程序的菜单中。

gio.AppInfo.supports_files

检查应用程序是否接受文件作为参数。

gio.AppInfo.supports_uris

检查应用程序是否支持从URIs读取文件和目录。