Interface AppInfo

All Superinterfaces:
Proxy
All Known Implementing Classes:
AppInfo.AppInfo$Impl, OsxAppInfo

@Generated("org.javagi.JavaGI") public interface AppInfo extends Proxy

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 File.getPath()) when using launch(List, AppLaunchContext) 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 File constructors (since GVfs implements the GVfs extension point). As such, if the application needs to examine the URI, it needs to use File.getUri() or similar on File. In other words, an application cannot assume that the URI passed to e.g. File.newForCommandlineArg(String) is equal to the result of File.getUri(). The following snippet illustrates this:

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.

  • Method Details

    • getType

      static @Nullable Type getType()
      Get the GType of the AppInfo class.
      Returns:
      the GType
    • createFromCommandline

      static AppInfo createFromCommandline(String commandline, @Nullable String applicationName, Set<AppInfoCreateFlags> flags) throws GErrorException

      Creates a new AppInfo from the given information.

      Note that for commandline, the quoting rules of the Exec key of the freedesktop.org Desktop Entry Specification 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 for exact quoting rules.

      Parameters:
      commandline - the command line to use
      applicationName - the application name, or NULL to use commandline
      flags - flags that can specify details of the created AppInfo
      Returns:
      new AppInfo for given command.
      Throws:
      GErrorException - see GError
    • createFromCommandline

      static AppInfo createFromCommandline(String commandline, @Nullable String applicationName, AppInfoCreateFlags... flags) throws GErrorException

      Creates a new AppInfo from the given information.

      Note that for commandline, the quoting rules of the Exec key of the freedesktop.org Desktop Entry Specification 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 for exact quoting rules.

      Parameters:
      commandline - the command line to use
      applicationName - the application name, or NULL to use commandline
      flags - flags that can specify details of the created AppInfo
      Returns:
      new AppInfo for given command.
      Throws:
      GErrorException - see GError
    • getAll

      static List<AppInfo> getAll()

      Gets a list of all of the applications currently registered on this system.

      For desktop files, this includes applications that have NoDisplay=true set or are excluded from display by means of OnlyShowIn or NotShowIn. See shouldShow().

      The returned list does not include applications which have the Hidden key set.

      Returns:
      a newly allocated list of references to AppInfos.
    • getAllForType

      static List<AppInfo> getAllForType(String contentType)
      Gets a list of all AppInfos for a given content type, including the recommended and fallback AppInfos. See getRecommendedForType(String) and getFallbackForType(String).
      Parameters:
      contentType - the content type to find a AppInfo for
      Returns:
      list of AppInfos for given contentType.
    • getDefaultForType

      static @Nullable AppInfo getDefaultForType(String contentType, boolean mustSupportUris)
      Gets the default AppInfo for a given content type.
      Parameters:
      contentType - the content type to find a AppInfo for
      mustSupportUris - if TRUE, the AppInfo is expected to support URIs
      Returns:
      AppInfo for given contentType or NULL on error.
    • getDefaultForTypeAsync

      static void getDefaultForTypeAsync(String contentType, boolean mustSupportUris, @Nullable Cancellable cancellable, @Nullable AsyncReadyCallback callback)
      Asynchronously gets the default AppInfo for a given content type.
      Parameters:
      contentType - the content type to find a AppInfo for
      mustSupportUris - if TRUE, the AppInfo is expected to support URIs
      cancellable - a Cancellable
      callback - a Gio.AsyncReadyCallback to call when the request is done
      Since:
      2.74
    • getDefaultForTypeFinish

      static AppInfo getDefaultForTypeFinish(AsyncResult result) throws GErrorException

      Finishes a default AppInfo lookup started by getDefaultForTypeAsync(String, boolean, Cancellable, AsyncReadyCallback).

      If no [iface``Gio.AppInfo] is found, then error will be set to Gio.IOErrorEnum.NOT_FOUND.

      Parameters:
      result - the async result
      Returns:
      AppInfo for given contentType or NULL on error.
      Throws:
      GErrorException - see GError
      Since:
      2.74
    • getDefaultForUriScheme

      static @Nullable AppInfo getDefaultForUriScheme(String uriScheme)

      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.

      Parameters:
      uriScheme - a string containing a URI scheme.
      Returns:
      AppInfo for given uriScheme or NULL on error.
    • getDefaultForUriSchemeAsync

      static void getDefaultForUriSchemeAsync(String uriScheme, @Nullable Cancellable cancellable, @Nullable AsyncReadyCallback callback)
      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.
      Parameters:
      uriScheme - a string containing a URI scheme.
      cancellable - a Cancellable
      callback - a Gio.AsyncReadyCallback to call when the request is done
      Since:
      2.74
    • getDefaultForUriSchemeFinish

      static AppInfo getDefaultForUriSchemeFinish(AsyncResult result) throws GErrorException

      Finishes a default AppInfo lookup started by getDefaultForUriSchemeAsync(String, Cancellable, AsyncReadyCallback).

      If no AppInfo is found, then error will be set to Gio.IOErrorEnum.NOT_FOUND.

      Parameters:
      result - the async result
      Returns:
      AppInfo for given uriScheme or NULL on error.
      Throws:
      GErrorException - see GError
      Since:
      2.74
    • getFallbackForType

      static List<AppInfo> getFallbackForType(String contentType)
      Gets a list of fallback AppInfos for a given content type, i.e. those applications which claim to support the given content type by MIME type subclassing and not directly.
      Parameters:
      contentType - the content type to find a AppInfo for
      Returns:
      list of AppInfos for given contentType or NULL on error.
      Since:
      2.28
    • getRecommendedForType

      static List<AppInfo> getRecommendedForType(String contentType)

      Gets a list of recommended AppInfos 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 setAsLastUsedForType(String) has been called.

      Parameters:
      contentType - the content type to find a AppInfo for
      Returns:
      list of AppInfos for given contentType or NULL on error.
      Since:
      2.28
    • launchDefaultForUri

      static boolean launchDefaultForUri(String uri, @Nullable AppLaunchContext context) throws GErrorException

      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 launchDefaultForUriAsync(String, AppLaunchContext, Cancellable, AsyncReadyCallback) instead.

      Parameters:
      uri - the uri to show
      context - optional launch context
      Returns:
      TRUE on success, FALSE on error.
      Throws:
      GErrorException - see GError
    • launchDefaultForUriAsync

      static void launchDefaultForUriAsync(String uri, @Nullable AppLaunchContext context, @Nullable Cancellable cancellable, @Nullable AsyncReadyCallback callback)

      Async version of launchDefaultForUri(String, AppLaunchContext).

      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.

      Parameters:
      uri - the uri to show
      context - optional launch context
      cancellable - a Cancellable
      callback - a Gio.AsyncReadyCallback to call when the request is done
      Since:
      2.50
    • launchDefaultForUriFinish

      static boolean launchDefaultForUriFinish(AsyncResult result) throws GErrorException
      Finishes an asynchronous launch-default-for-uri operation.
      Parameters:
      result - the async result
      Returns:
      TRUE if the launch was successful, FALSE if error is set
      Throws:
      GErrorException - see GError
      Since:
      2.50
    • resetTypeAssociations

      static void resetTypeAssociations(String contentType)
      Parameters:
      contentType - a content type
      Since:
      2.20
    • addSupportsType

      default boolean addSupportsType(String contentType) throws GErrorException
      Adds a content type to the application information to indicate the application is capable of opening files with the given content type.
      Parameters:
      contentType - a string.
      Returns:
      TRUE on success, FALSE on error.
      Throws:
      GErrorException - see GError
    • canDelete

      default boolean canDelete()
      Obtains the information whether the AppInfo can be deleted. See delete().
      Returns:
      TRUE if this AppInfo can be deleted
      Since:
      2.20
    • canRemoveSupportsType

      default boolean canRemoveSupportsType()
      Checks if a supported content type can be removed from an application.
      Returns:
      TRUE if it is possible to remove supported content types from a given appinfo, FALSE if not.
    • delete

      default boolean delete()

      Tries to delete a AppInfo.

      On some platforms, there may be a difference between user-defined AppInfos which can be deleted, and system-wide ones which cannot. See canDelete().

      Returns:
      TRUE if this AppInfo has been deleted
      Since:
      2.20
    • dup

      default AppInfo dup()
      Creates a duplicate of a AppInfo.
      Returns:
      a duplicate of appinfo.
    • equal

      default boolean equal(AppInfo appinfo2)

      Checks if two AppInfos 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.

      Parameters:
      appinfo2 - the second AppInfo.
      Returns:
      TRUE if this AppInfo is equal to appinfo2. FALSE otherwise.
    • getCommandline

      default @Nullable String getCommandline()
      Gets the commandline with which the application will be started.
      Returns:
      a string containing the appinfo’s commandline, or NULL if this information is not available
      Since:
      2.20
    • getDescription

      default @Nullable String getDescription()
      Gets a human-readable description of an installed application.
      Returns:
      a string containing a description of the application appinfo, or NULL if none.
    • getDisplayName

      default String getDisplayName()
      Gets the display name of the application. The display name is often more descriptive to the user than the name itself.
      Returns:
      the display name of the application for appinfo, or the name if no display name is available.
      Since:
      2.24
    • getExecutable

      default String 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 launch(List, AppLaunchContext) and related functions, rather than spawning the return value from this function.

      Returns:
      a string containing the appinfo’s application binaries name
    • getIcon

      default @Nullable Icon getIcon()
      Gets the icon for the application.
      Returns:
      the default Icon for this AppInfo or NULL if there is no default icon.
    • getId

      default @Nullable String 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 this AppInfo has been constructed.

      Returns:
      a string containing the application’s ID.
    • getName

      default String getName()
      Gets the installed name of the application.
      Returns:
      the name of the application for appinfo.
    • getSupportedTypes

      default @Nullable String @Nullable [] getSupportedTypes()

      Retrieves the list of content types that appInfo 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 addSupportsType(String), but only those exported directly by the application.

      Returns:
      a list of content types.
      Since:
      2.34
    • launch

      default boolean launch(@Nullable List<File> files, @Nullable AppLaunchContext context) throws GErrorException

      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 launchUris(List, AppLaunchContext) instead.

      The launched application inherits the environment of the launching process, but it can be modified with AppLaunchContext.setenv(String, String) and AppLaunchContext.unsetenv(String).

      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.

      Parameters:
      files - a list of File objects
      context - the launch context
      Returns:
      TRUE on successful launch, FALSE otherwise.
      Throws:
      GErrorException - see GError
    • launchUris

      default boolean launchUris(@Nullable List<String> uris, @Nullable AppLaunchContext context) throws GErrorException

      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.

      Parameters:
      uris - a list of URIs to launch.
      context - the launch context
      Returns:
      TRUE on successful launch, FALSE otherwise.
      Throws:
      GErrorException - see GError
    • launchUrisAsync

      default void launchUrisAsync(@Nullable List<String> uris, @Nullable AppLaunchContext context, @Nullable Cancellable cancellable, @Nullable AsyncReadyCallback callback)

      Async version of launchUris(List, AppLaunchContext).

      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 launchDefaultForUriAsync(String, AppLaunchContext, Cancellable, AsyncReadyCallback).

      Parameters:
      uris - a list of URIs to launch.
      context - the launch context
      cancellable - a Cancellable
      callback - a Gio.AsyncReadyCallback to call when the request is done
      Since:
      2.60
    • launchUrisFinish

      default boolean launchUrisFinish(AsyncResult result) throws GErrorException
      Parameters:
      result - the async result
      Returns:
      TRUE on successful launch, FALSE otherwise.
      Throws:
      GErrorException - see GError
      Since:
      2.60
    • removeSupportsType

      default boolean removeSupportsType(String contentType) throws GErrorException
      Removes a supported type from an application, if possible.
      Parameters:
      contentType - a string.
      Returns:
      TRUE on success, FALSE on error.
      Throws:
      GErrorException - see GError
    • setAsDefaultForExtension

      default boolean setAsDefaultForExtension(String extension) throws GErrorException
      Sets the application as the default handler for the given file extension.
      Parameters:
      extension - a string containing the file extension (without the dot).
      Returns:
      TRUE on success, FALSE on error.
      Throws:
      GErrorException - see GError
    • setAsDefaultForType

      default boolean setAsDefaultForType(String contentType) throws GErrorException
      Sets the application as the default handler for a given type.
      Parameters:
      contentType - the content type.
      Returns:
      TRUE on success, FALSE on error.
      Throws:
      GErrorException - see GError
    • setAsLastUsedForType

      default boolean setAsLastUsedForType(String contentType) throws GErrorException
      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 getRecommendedForType(String), regardless of the default application for that content type.
      Parameters:
      contentType - the content type.
      Returns:
      TRUE on success, FALSE on error.
      Throws:
      GErrorException - see GError
    • shouldShow

      default boolean shouldShow()
      Checks if the application info should be shown in menus that list available applications.
      Returns:
      TRUE if the this AppInfo should be shown, FALSE otherwise.
    • supportsFiles

      default boolean supportsFiles()
      Checks if the application accepts files as arguments.
      Returns:
      TRUE if the this AppInfo supports files.
    • supportsUris

      default boolean supportsUris()
      Checks if the application supports reading files and directories from URIs.
      Returns:
      TRUE if the this AppInfo supports URIs.