Klasse AppInfo

Alle implementierten Schnittstellen:
PointerInterface

public class AppInfo extends Interface
Information about an installed application and methods to launch
it (with file arguments).

`GAppInfo` and `GAppLaunchContext` are used for describing and launching
applications installed on the system.

As of GLib 2.20, URIs will always be converted to POSIX paths
(using [method@Gio.File.get_path]) when using [method@Gio.AppInfo.launch]
even if the application requested an URI and not a POSIX path. For example
for a desktop-file based application with the following Exec key:

```
Exec=totem %U
```

and a single URI, `sftp://foo/file.avi`, then
`/home/user/.gvfs/sftp on foo/file.avi` will be passed. This will only work
if a set of suitable GIO extensions (such as GVfs 2.26 compiled with FUSE
support), is available and operational; if this is not the case, the URI
will be passed unmodified to the application. Some URIs, such as `mailto:`,
of course cannot be mapped to a POSIX path (in GVfs there’s no FUSE mount
for it); such URIs will be passed unmodified to the application.

Specifically for GVfs 2.26 and later, the POSIX URI will be mapped
back to the GIO URI in the [iface@Gio.File] constructors (since GVfs
implements the GVfs extension point). As such, if the application
needs to examine the URI, it needs to use [method@Gio.File.get_uri]
or similar on [iface@Gio.File]. In other words, an application cannot
assume that the URI passed to e.g. [func@Gio.File.new_for_commandline_arg]
is equal to the result of [method@Gio.File.get_uri]. The following snippet
illustrates this:

```c
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);
```

This code will work when both `cdda://sr0/Track 1.wav` and
`/home/user/.gvfs/cdda on sr0/Track 1.wav` is passed to the
application. It should be noted that it’s generally not safe
for applications to rely on the format of a particular URIs.
Different launcher applications (e.g. file managers) may have
different ideas of what a given URI means.

https://docs.gtk.org/gio/iface.AppInfo.html

  • Konstruktordetails

  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • addSupportsType

      public boolean addSupportsType(@Nonnull Str content_type) throws AllocationError
      Adds a content type to the application information to indicate the
      application is capable of opening files with the given content type.
      Parameter:
      content_type - a string.
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • addSupportsType

      public boolean addSupportsType(String content_type) throws AllocationError
      Adds a content type to the application information to indicate the
      application is capable of opening files with the given content type.
      Parameter:
      content_type - a string.
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • canDelete

      public boolean canDelete()
      Obtains the information whether the [iface@Gio.AppInfo] can be deleted.
      See [method@Gio.AppInfo.delete].
      Gibt zurück:
      `TRUE` if @appinfo can be deleted
    • canRemoveSupportsType

      public boolean canRemoveSupportsType()
      Checks if a supported content type can be removed from an application.
      Gibt zurück:
      `TRUE` if it is possible to remove supported content types from a given @appinfo, `FALSE` if not.
    • delete

      public boolean delete()
      Tries to delete a [iface@Gio.AppInfo].

      On some platforms, there may be a difference between user-defined
      [iface@Gio.AppInfo]s which can be deleted, and system-wide ones which cannot.
      See [method@Gio.AppInfo.can_delete].
      Gibt zurück:
      `TRUE` if @appinfo has been deleted
    • dup

      public AppInfo dup()
      Creates a duplicate of a [iface@Gio.AppInfo].
      Gibt zurück:
      a duplicate of @appinfo.
    • equal

      public boolean equal(@Nonnull AppInfo appinfo2)
      Checks if two [iface@Gio.AppInfo]s are equal.

      Note that the check *may not* compare each individual field, and only does
      an identity check. In case detecting changes in the contents is needed,
      program code must additionally compare relevant fields.
      Parameter:
      appinfo2 - the second [iface@Gio.AppInfo].
      Gibt zurück:
      `TRUE` if @appinfo1 is equal to @appinfo2. `FALSE` otherwise.
    • getCommandline

      public Str getCommandline()
      Gets the commandline with which the application will be
      started.
      Gibt zurück:
      a string containing the @appinfo’s commandline, or `NULL` if this information is not available
    • getDescription

      public Str getDescription()
      Gets a human-readable description of an installed application.
      Gibt zurück:
      a string containing a description of the application @appinfo, or `NULL` if none.
    • getDisplayName

      public Str getDisplayName()
      Gets the display name of the application. The display name is often more
      descriptive to the user than the name itself.
      Gibt zurück:
      the display name of the application for @appinfo, or the name if no display name is available.
    • getExecutable

      public Str getExecutable()
      Gets the executable’s name for the installed application.

      This is intended to be used for debugging or labelling what program is going
      to be run. To launch the executable, use [method@Gio.AppInfo.launch] and related
      functions, rather than spawning the return value from this function.
      Gibt zurück:
      a string containing the @appinfo’s application binaries name
    • getIcon

      public Icon getIcon()
      Gets the icon for the application.
      Gibt zurück:
      the default [iface@Gio.Icon] for @appinfo or `NULL` if there is no default icon.
    • getId

      public Str getId()
      Gets the ID of an application. An id is a string that identifies the
      application. The exact format of the id is platform dependent. For instance,
      on Unix this is the desktop file id from the xdg menu specification.

      Note that the returned ID may be `NULL`, depending on how the @appinfo has
      been constructed.
      Gibt zurück:
      a string containing the application’s ID.
    • getName

      public Str getName()
      Gets the installed name of the application.
      Gibt zurück:
      the name of the application for @appinfo.
    • getSupportedTypes

      public Strs getSupportedTypes()
      Retrieves the list of content types that @app_info claims to support.
      If this information is not provided by the environment, this function
      will return `NULL`.

      This function does not take in consideration associations added with
      [method@Gio.AppInfo.add_supports_type], but only those exported directly by
      the application.
      Gibt zurück:
      a list of content types.
    • launch

      public boolean launch(@Nullable List files, @Nullable AppLaunchContext context) throws AllocationError
      Launches the application. Passes @files to the launched application
      as arguments, using the optional @context to get information
      about the details of the launcher (like what screen it is on).
      On error, @error will be set accordingly.

      To launch the application without arguments pass a `NULL` @files list.

      Note that even if the launch is successful the application launched
      can fail to start if it runs into problems during startup. There is
      no way to detect this.

      Some URIs can be changed when passed through a GFile (for instance
      unsupported URIs with strange formats like mailto:), so if you have
      a textual URI you want to pass in as argument, consider using
      [method@Gio.AppInfo.launch_uris] instead.

      The launched application inherits the environment of the launching
      process, but it can be modified with [method@Gio.AppLaunchContext.setenv]
      and [method@Gio.AppLaunchContext.unsetenv].

      On UNIX, this function sets the `GIO_LAUNCHED_DESKTOP_FILE`
      environment variable with the path of the launched desktop file and
      `GIO_LAUNCHED_DESKTOP_FILE_PID` to the process id of the launched
      process. This can be used to ignore `GIO_LAUNCHED_DESKTOP_FILE`,
      should it be inherited by further processes. The `DISPLAY`,
      `XDG_ACTIVATION_TOKEN` and `DESKTOP_STARTUP_ID` environment
      variables are also set, based on information provided in @context.
      Parameter:
      files - a list of [iface@Gio.File] objects
      context - the launch context
      Gibt zurück:
      `TRUE` on successful launch, `FALSE` otherwise.
      Löst aus:
      AllocationError
    • launchUris

      public boolean launchUris(@Nullable List uris, @Nullable AppLaunchContext context) throws AllocationError
      Launches the application. This passes the @uris to the launched application
      as arguments, using the optional @context to get information
      about the details of the launcher (like what screen it is on).
      On error, @error will be set accordingly. If the application only supports
      one URI per invocation as part of their command-line, multiple instances
      of the application will be spawned.

      To launch the application without arguments pass a `NULL` @uris list.

      Note that even if the launch is successful the application launched
      can fail to start if it runs into problems during startup. There is
      no way to detect this.
      Parameter:
      uris - a list of URIs to launch.
      context - the launch context
      Gibt zurück:
      `TRUE` on successful launch, `FALSE` otherwise.
      Löst aus:
      AllocationError
    • launchUrisAsync

      public void launchUrisAsync(@Nullable List uris, @Nullable AppLaunchContext context, @Nullable Cancellable cancellable, AppInfo.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      Async version of [method@Gio.AppInfo.launch_uris].

      The @callback is invoked immediately after the application launch, but it
      waits for activation in case of D-Bus–activated applications and also provides
      extended error information for sandboxed applications, see notes for
      [func@Gio.AppInfo.launch_default_for_uri_async].
      Parameter:
      uris - a list of URIs to launch.
      context - the launch context
      cancellable - a [class@Gio.Cancellable]
      callback - a [type@Gio.AsyncReadyCallback] to call when the request is done
      user_data - data to pass to @callback
    • launchUrisFinish

      public boolean launchUrisFinish(@Nonnull AsyncResult result) throws AllocationError
      Finishes a [method@Gio.AppInfo.launch_uris_async] operation.
      Parameter:
      result - the async result
      Gibt zurück:
      `TRUE` on successful launch, `FALSE` otherwise.
      Löst aus:
      AllocationError
    • removeSupportsType

      public boolean removeSupportsType(@Nonnull Str content_type) throws AllocationError
      Removes a supported type from an application, if possible.
      Parameter:
      content_type - a string.
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • removeSupportsType

      public boolean removeSupportsType(String content_type) throws AllocationError
      Removes a supported type from an application, if possible.
      Parameter:
      content_type - a string.
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • setAsDefaultForExtension

      public boolean setAsDefaultForExtension(@Nonnull Str extension) throws AllocationError
      Sets the application as the default handler for the given file extension.
      Parameter:
      extension - a string containing the file extension (without the dot).
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • setAsDefaultForExtension

      public boolean setAsDefaultForExtension(String extension) throws AllocationError
      Sets the application as the default handler for the given file extension.
      Parameter:
      extension - a string containing the file extension (without the dot).
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • setAsDefaultForType

      public boolean setAsDefaultForType(@Nonnull Str content_type) throws AllocationError
      Sets the application as the default handler for a given type.
      Parameter:
      content_type - the content type.
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • setAsDefaultForType

      public boolean setAsDefaultForType(String content_type) throws AllocationError
      Sets the application as the default handler for a given type.
      Parameter:
      content_type - the content type.
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • setAsLastUsedForType

      public boolean setAsLastUsedForType(@Nonnull Str content_type) throws AllocationError
      Sets the application as the last used application for a given type. This
      will make the application appear as first in the list returned by
      [func@Gio.AppInfo.get_recommended_for_type], regardless of the default
      application for that content type.
      Parameter:
      content_type - the content type.
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • setAsLastUsedForType

      public boolean setAsLastUsedForType(String content_type) throws AllocationError
      Sets the application as the last used application for a given type. This
      will make the application appear as first in the list returned by
      [func@Gio.AppInfo.get_recommended_for_type], regardless of the default
      application for that content type.
      Parameter:
      content_type - the content type.
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • shouldShow

      public boolean shouldShow()
      Checks if the application info should be shown in menus that
      list available applications.
      Gibt zurück:
      `TRUE` if the @appinfo should be shown, `FALSE` otherwise.
    • supportsFiles

      public boolean supportsFiles()
      Checks if the application accepts files as arguments.
      Gibt zurück:
      `TRUE` if the @appinfo supports files.
    • supportsUris

      public boolean supportsUris()
      Checks if the application supports reading files and directories from URIs.
      Gibt zurück:
      `TRUE` if the @appinfo supports URIs.
    • createFromCommandline

      public static AppInfo createFromCommandline(@Nonnull Str commandline, @Nullable Str application_name, int flags) throws AllocationError
      Creates a new [iface@Gio.AppInfo] from the given information.

      Note that for @commandline, the quoting rules of the `Exec` key of the
      [freedesktop.org Desktop Entry Specification](http://freedesktop.org/Standards/desktop-entry-spec)
      are applied. For example, if the @commandline contains
      percent-encoded URIs, the percent-character must be doubled in order to prevent it from
      being swallowed by `Exec` key unquoting. See
      [the specification](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s07.html)
      for exact quoting rules.
      Parameter:
      commandline - the command line to use
      application_name - the application name, or `NULL` to use @commandline
      flags - flags that can specify details of the created [iface@Gio.AppInfo]
      Gibt zurück:
      new [iface@Gio.AppInfo] for given command.
      Löst aus:
      AllocationError
    • getAll

      public static List getAll()
      Gets a list of all of the applications currently registered
      on this system.

      For desktop files, this includes applications that have
      [`NoDisplay=true`](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-nodisplay)
      set or are excluded from display by means of
      [`OnlyShowIn`](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-onlyshowin)
      or [`NotShowIn`](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-notshowin).
      See [method@Gio.AppInfo.should_show].

      The returned list does not include applications which have the
      [`Hidden` key](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-hidden)
      set.
      Gibt zurück:
      a newly allocated list of references to [iface@Gio.AppInfo]s.
    • getAllForType

      public static List getAllForType(@Nonnull Str content_type)
      Gets a list of all [iface@Gio.AppInfo]s for a given content type,
      including the recommended and fallback [iface@Gio.AppInfo]s. See
      [func@Gio.AppInfo.get_recommended_for_type] and
      [func@Gio.AppInfo.get_fallback_for_type].
      Parameter:
      content_type - the content type to find a [iface@Gio.AppInfo] for
      Gibt zurück:
      list of [iface@Gio.AppInfo]s for given @content_type.
    • getDefaultForType

      public static AppInfo getDefaultForType(@Nonnull Str content_type, boolean must_support_uris)
      Gets the default [iface@Gio.AppInfo] for a given content type.
      Parameter:
      content_type - the content type to find a [iface@Gio.AppInfo] for
      must_support_uris - if `TRUE`, the [iface@Gio.AppInfo] is expected to support URIs
      Gibt zurück:
      [iface@Gio.AppInfo] for given @content_type or `NULL` on error.
    • getDefaultForTypeAsync

      public static void getDefaultForTypeAsync(@Nonnull Str content_type, boolean must_support_uris, @Nullable Cancellable cancellable, AppInfo.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      Asynchronously gets the default [iface@Gio.AppInfo] for a given content
      type.
      Parameter:
      content_type - the content type to find a [iface@Gio.AppInfo] for
      must_support_uris - if `TRUE`, the [iface@Gio.AppInfo] is expected to support URIs
      cancellable - a [class@Gio.Cancellable]
      callback - a [type@Gio.AsyncReadyCallback] to call when the request is done
      user_data - data to pass to @callback
    • getDefaultForTypeFinish

      public static AppInfo getDefaultForTypeFinish(@Nonnull AsyncResult result) throws AllocationError
      Finishes a default [iface@Gio.AppInfo] lookup started by
      [func@Gio.AppInfo.get_default_for_type_async].

      If no #[iface@Gio.AppInfo] is found, then @error will be set to
      [error@Gio.IOErrorEnum.NOT_FOUND].
      Parameter:
      result - the async result
      Gibt zurück:
      [iface@Gio.AppInfo] for given @content_type or `NULL` on error.
      Löst aus:
      AllocationError
    • getDefaultForUriScheme

      public static AppInfo getDefaultForUriScheme(@Nonnull Str uri_scheme)
      Gets the default application for handling URIs with the given URI scheme.

      A URI scheme is the initial part of the URI, up to but not including the `:`.
      For example, `http`, `ftp` or `sip`.
      Parameter:
      uri_scheme - a string containing a URI scheme.
      Gibt zurück:
      [iface@Gio.AppInfo] for given @uri_scheme or `NULL` on error.
    • getDefaultForUriSchemeAsync

      public static void getDefaultForUriSchemeAsync(@Nonnull Str uri_scheme, @Nullable Cancellable cancellable, AppInfo.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      Asynchronously gets the default application for handling URIs with
      the given URI scheme. A URI scheme is the initial part
      of the URI, up to but not including the `:`, e.g. `http`,
      `ftp` or `sip`.
      Parameter:
      uri_scheme - a string containing a URI scheme.
      cancellable - a [class@Gio.Cancellable]
      callback - a [type@Gio.AsyncReadyCallback] to call when the request is done
      user_data - data to pass to @callback
    • getDefaultForUriSchemeFinish

      public static AppInfo getDefaultForUriSchemeFinish(@Nonnull AsyncResult result) throws AllocationError
      Finishes a default [iface@Gio.AppInfo] lookup started by
      [func@Gio.AppInfo.get_default_for_uri_scheme_async].

      If no [iface@Gio.AppInfo] is found, then @error will be set to
      [error@Gio.IOErrorEnum.NOT_FOUND].
      Parameter:
      result - the async result
      Gibt zurück:
      [iface@Gio.AppInfo] for given @uri_scheme or `NULL` on error.
      Löst aus:
      AllocationError
    • getFallbackForType

      public static List getFallbackForType(@Nonnull Str content_type)
      Gets a list of fallback [iface@Gio.AppInfo]s for a given content type, i.e.
      those applications which claim to support the given content type by MIME
      type subclassing and not directly.
      Parameter:
      content_type - the content type to find a [iface@Gio.AppInfo] for
      Gibt zurück:
      list of [iface@Gio.AppInfo]s for given @content_type or `NULL` on error.
    • getRecommendedForType

      public static List getRecommendedForType(@Nonnull Str content_type)
      Gets a list of recommended [iface@Gio.AppInfo]s for a given content type,
      i.e. those applications which claim to support the given content type
      exactly, and not by MIME type subclassing.

      Note that the first application of the list is the last used one, i.e.
      the last one for which [method@Gio.AppInfo.set_as_last_used_for_type] has
      been called.
      Parameter:
      content_type - the content type to find a [iface@Gio.AppInfo] for
      Gibt zurück:
      list of [iface@Gio.AppInfo]s for given @content_type or `NULL` on error.
    • launchDefaultForUri

      public static boolean launchDefaultForUri(@Nonnull Str uri, @Nullable AppLaunchContext context) throws AllocationError
      Utility function that launches the default application registered to handle
      the specified uri. Synchronous I/O is done on the uri to detect the type of
      the file if required.

      The D-Bus–activated applications don’t have to be started if your application
      terminates too soon after this function. To prevent this, use
      [func@Gio.AppInfo.launch_default_for_uri_async] instead.
      Parameter:
      uri - the uri to show
      context - optional launch context
      Gibt zurück:
      `TRUE` on success, `FALSE` on error.
      Löst aus:
      AllocationError
    • launchDefaultForUriAsync

      public static void launchDefaultForUriAsync(@Nonnull Str uri, @Nullable AppLaunchContext context, @Nullable Cancellable cancellable, AppInfo.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      Async version of [func@Gio.AppInfo.launch_default_for_uri].

      This version is useful if you are interested in receiving error information
      in the case where the application is sandboxed and the portal may present an
      application chooser dialog to the user.

      This is also useful if you want to be sure that the D-Bus–activated
      applications are really started before termination and if you are interested
      in receiving error information from their activation.
      Parameter:
      uri - the uri to show
      context - optional launch context
      cancellable - a [class@Gio.Cancellable]
      callback - a [type@Gio.AsyncReadyCallback] to call when the request is done
      user_data - data to pass to @callback
    • launchDefaultForUriFinish

      public static boolean launchDefaultForUriFinish(@Nonnull AsyncResult result) throws AllocationError
      Finishes an asynchronous launch-default-for-uri operation.
      Parameter:
      result - the async result
      Gibt zurück:
      `TRUE` if the launch was successful, `FALSE` if @error is set
      Löst aus:
      AllocationError
    • resetTypeAssociations

      public static void resetTypeAssociations(@Nonnull Str content_type)
      Removes all changes to the type associations done by
      [method@Gio.AppInfo.set_as_default_for_type],
      [method@Gio.AppInfo.set_as_default_for_extension],
      [method@Gio.AppInfo.add_supports_type] or
      [method@Gio.AppInfo.remove_supports_type].
      Parameter:
      content_type - a content type
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()