Class ArcGISRuntimeEnvironment
- java.lang.Object
-
- com.esri.arcgisruntime.ArcGISRuntimeEnvironment
-
public class ArcGISRuntimeEnvironment extends Object
Defines an ArcGIS Runtime Environment object.Contains methods that are global and affect the entire runtime environment. Also contains static methods to set up deployment licensing for an application.
The use of some members in the ArcGIS Runtime API requires a specific license level. Please refer to Licensing details by class.
- Since:
- 100.0.0
-
-
Constructor Summary
Constructors Constructor Description ArcGISRuntimeEnvironment()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static voidaddArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)Adds anArcadeConsoleMessageListenerthat gets invoked whenever a console message is sent from any Arcade script.static StringgetApiKey()Gets the default API key to access API key enabled services and resources in ArcGIS Online.static StringgetAPILabel()Deprecated, for removal: This API element is subject to removal in a future version.As of 100.1.0, no replacement.static StringgetApiVersion()Returns the current API version.static StringgetAPIVersion()Deprecated, for removal: This API element is subject to removal in a future version.since 100.14.0.static floatgetJavaVersion()Deprecated, for removal: This API element is subject to removal in a future version.As of 100.1.0, the version of JVM can be obtained from the system property "java.version".static LicensegetLicense()Gets the license details about the application.static FilegetResourcesDirectory()Returns the resources directory.static ServiceCurveGeometryModegetServiceCurveGeometryMode()Determines if curve geometries are fetched from and sent to services that support them.static voidinitialize()Initializes the runtime by loading dependencies such as the runtime and other client libraries.static booleanisInitialized()Indicates whether initialization was successful.static booleanisLinux()Checks if os.name contains Linux.static booleanisOsx()Checks if os.name contains os x.static booleanisWindows()Checks if os.name contains win.static booleanremoveArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)Removes the givenArcadeConsoleMessageListenerif it is present.static voidsetApiKey(String apiKey)Sets the default API key to access API key enabled services and resources in ArcGIS Online.static voidsetInstallDirectory(String installDirectory)Sets the directory containing the runtime libraries and resources.static LicenseResultsetLicense(LicenseInfo licenseInfo)Licenses the application using the given LicenseInfo, and returns aLicenseResultindicating the outcome of the license operation.static LicenseResultsetLicense(String licenseKey)Licenses the application for deployment using the given license string, and returns aLicenseResultindicating the outcome of the license operation.static LicenseResultsetLicense(String licenseKey, List<String> extensions)Licenses an application for deployment using an ESRI license string and one or more extension license strings.static voidsetServiceCurveGeometryMode(ServiceCurveGeometryMode serviceCurveGeometryMode)Determines if curve geometries are fetched from and sent to services that support them.
-
-
-
Method Detail
-
getJavaVersion
@Deprecated(since="100.1.0", forRemoval=true) public static float getJavaVersion()
Deprecated, for removal: This API element is subject to removal in a future version.As of 100.1.0, the version of JVM can be obtained from the system property "java.version".This property is deprecated and always returns 0.0.The version of JVM can be obtained from the system property "java.version".
- Returns:
- 0.0
-
getResourcesDirectory
public static File getResourcesDirectory()
Returns the resources directory. A resources directory is not always required by the Runtime so this method may return a value that does not exist.- Returns:
- the resources directory
- Throws:
IllegalStateException- if the runtime has not been initialized- Since:
- 100.0.0
-
initialize
public static void initialize()
Initializes the runtime by loading dependencies such as the runtime and other client libraries.- Throws:
RuntimeException- if there is a failure- Since:
- 100.0.0
-
isInitialized
public static boolean isInitialized()
Indicates whether initialization was successful.- Returns:
- true, if initialized; false otherwise
-
setInstallDirectory
public static void setInstallDirectory(String installDirectory)
Sets the directory containing the runtime libraries and resources. This is an optional call, used if you want to override the standard locations for a runtime install.- Parameters:
installDirectory- directory containing the runtime libraries and resources- Throws:
RuntimeException- if this is called after runtime has initializedNullPointerException- if the input value is null- Since:
- 100.0.0
-
isLinux
public static boolean isLinux()
Checks if os.name contains Linux.- Returns:
- true, if is Linux
-
isWindows
public static boolean isWindows()
Checks if os.name contains win.- Returns:
- true, if is Windows
-
isOsx
public static boolean isOsx()
Checks if os.name contains os x.- Returns:
- true, if is OSX
-
getApiVersion
public static String getApiVersion()
Returns the current API version.- Returns:
- the API version
- Since:
- 100.14.0
-
getAPIVersion
@Deprecated(since="100.14.0", forRemoval=true) public static String getAPIVersion()
Deprecated, for removal: This API element is subject to removal in a future version.since 100.14.0. UsegetApiVersion()instead.Returns the current API version.- Returns:
- the API version.
-
getAPILabel
@Deprecated(since="100.1.0", forRemoval=true) public static String getAPILabel()
Deprecated, for removal: This API element is subject to removal in a future version.As of 100.1.0, no replacement.Returns a label to identify this version of the API.- Returns:
- the API label
- Since:
- 100.0.0
-
setLicense
public static LicenseResult setLicense(String licenseKey)
Licenses the application for deployment using the given license string, and returns aLicenseResultindicating the outcome of the license operation. TheLicenseResultcontains aLicenseStatusofINVALID,EXPIRED, orVALID. A deployed application must call this method, which removes the watermark associated withLicenseLevel.DEVELOPER.Note: If any licensed functionality (license level
LITE,BASIC,STANDARD, orADVANCED) is accessed before setting the license, an exception will be thrown.- Parameters:
licenseKey- the ESRI license string. The license will have one of the following levels, defined in theLicenseLevelenum:LITE,BASIC,STANDARD, orADVANCED.- Returns:
- the license result of attempting to set the main license
- Since:
- 100.0.0
- See Also:
setLicense(LicenseInfo),setLicense(String, List)
-
setLicense
public static LicenseResult setLicense(LicenseInfo licenseInfo)
Licenses the application using the given LicenseInfo, and returns aLicenseResultindicating the outcome of the license operation.License info is for named-user access. A
LicenseInfocan be obtained from a portal for the current logged in user by callingPortal.fetchLicenseInfoAsync(). TheLicenseInfoinstance is only valid for 30 days, so the user will be required to log into the portal again when this expires.The
LicenseResultreturned by this method contains the license status, which will be one of the following values defined in theLicenseStatusenum:VALID,INVALID,EXPIRED(if the user's subscription on the portal has expired), orLOGIN_REQUIRED(if the user needs to log in to the portal to renew theLicenseInfo).- Parameters:
licenseInfo- license information used for named-user access. Obtained from a portal.- Returns:
- the license result of attempting to set the main license
- Throws:
IllegalArgumentException- if licenseInfo is null- Since:
- 100.0.0
- See Also:
setLicense(String),setLicense(String, List),LicenseStatus
-
setLicense
public static LicenseResult setLicense(String licenseKey, List<String> extensions)
Licenses an application for deployment using an ESRI license string and one or more extension license strings.- Parameters:
licenseKey- the ESRI license string. The license will have one of the following levels, defined in theLicenseLevelenum:LITE,BASIC,STANDARD, orADVANCED.extensions- a list of extension license strings- Returns:
- the license result of attempting to set the main license
- Throws:
IllegalArgumentException- if extensions is null- Since:
- 100.0.0
- See Also:
setLicense(String),setLicense(LicenseInfo)
-
getLicense
public static License getLicense()
Gets the license details about the application.The license details includes the
LicenseStatus,LicenseLevel, andLicenseTypevalues for the licensed application. It also contains the expiry date of the license or whether the provided license is perpetual.- Returns:
- the license details about the application
- Since:
- 100.0.0
- See Also:
setLicense(String),setLicense(LicenseInfo),setLicense(String, List)
-
setApiKey
public static void setApiKey(String apiKey)
Sets the default API key to access API key enabled services and resources in ArcGIS Online.An API key is a unique key used to authorize access to specific services and resources in ArcGIS Online. It is also used to monitor access to those services. An API key is created and managed in the ArcGIS developer dashboard and is tied to a specific ArcGIS account.
In addition to setting an API key at a global level for your application using
ArcGISRuntimeEnvironment.setApiKey(String), you can callApiKeyResource.setApiKey(String)on any ArcGIS Runtime class that implementsApiKeyResource. When you callsetApiKey(String)on anAPIKeyResource, it will override the default key at the global level (the key returned byArcGISRuntimeEnvironment.getApiKey(), in other words), enabling more granular usage telemetry and management for ArcGIS Online resources used by your app.Classes that expose an API key property by implementing
APIKeyResourceinclude:- Parameters:
apiKey- the default API key to access API key enabled services and resources in ArcGIS Online- Since:
- 100.10.0
- See Also:
getApiKey()
-
getApiKey
public static String getApiKey()
Gets the default API key to access API key enabled services and resources in ArcGIS Online.An API key is a unique key used to authorize access to specific services and resources in ArcGIS Online. It is also used to monitor access to those services. An API key is created and managed in the ArcGIS developer dashboard and is tied to a specific ArcGIS account.
In addition to setting an API key at a global level for your application using
ArcGISRuntimeEnvironment.setApiKey(String), you can callApiKeyResource.setApiKey(String)on any ArcGIS Runtime class that implementsApiKeyResource. When you callsetAPIKey(String)on anAPIKeyResource, it will override the default key at the global level (the key returned byArcGISRuntimeEnvironment.getApiKey(), in other words), enabling more granular usage telemetry and management for ArcGIS Online resources used by your app.Classes that expose an API key property by implementing
APIKeyResourceinclude:- Returns:
- the default API key to access API key enabled services and resources in ArcGIS Online
- Since:
- 100.10.0
- See Also:
setApiKey(String)
-
getServiceCurveGeometryMode
public static ServiceCurveGeometryMode getServiceCurveGeometryMode()
Determines if curve geometries are fetched from and sent to services that support them.By default, curve geometries are not fetched from services that support curves, meaning that densified versions of any curve geometries are fetched from the service. To instead fetch original geometries with curve segments (those where
Geometry.hasCurves()is true), set this property toServiceCurveGeometryMode.FETCH_CURVES. Ensure that you do this before any calls to services are made, as it cannot be changed after the first request has begun.By default, Runtime indicates that is it not a true curve capable client when sending updates to services that support curves. This means that curve geometries stored in services where
ArcGISFeatureServiceInfo.isOnlyAllowTrueCurveUpdatesByTrueCurveClients()is true cannot be updated by default. To update such geometries, ensure your app correctly handles curve segments (whereSegment.isCurve()is true) in geometries throughout the workflow and set this property toServiceCurveGeometryMode.TRUE_CURVE_CLIENT. You must do this before any calls to services are made - it cannot be changed after making the first request.For details of curve support in services, see ArcGIS REST API documentation.
For services that don't support curves, this value has no effect. It also has no effect on local data sources that may contain curve geometries, such as mobile geodatabases or mobile map packages created using ArcGIS Pro.
Some geometry operations do not support curve geometries; see
GeometryEnginefor details of curve support.SketchEditordoes not support curve geometries.- Returns:
- determines if curve geometries are fetched from and sent to services that support them
- Since:
- 100.12.0
- See Also:
Geometry.hasCurves()
-
setServiceCurveGeometryMode
public static void setServiceCurveGeometryMode(ServiceCurveGeometryMode serviceCurveGeometryMode)
Determines if curve geometries are fetched from and sent to services that support them.By default, curve geometries are not fetched from services that support curves, meaning that densified versions of any curve geometries are fetched from the service. To instead fetch original geometries with curve segments (those where
Geometry.hasCurves()is true), set this property toServiceCurveGeometryMode.FETCH_CURVES. Ensure that you do this before any calls to services are made, as it cannot be changed after the first request has begun.By default, Runtime indicates that is it not a true curve capable client when sending updates to services that support curves. This means that curve geometries stored in services where
ArcGISFeatureServiceInfo.isOnlyAllowTrueCurveUpdatesByTrueCurveClients()is true cannot be updated by default. To update such geometries, ensure your app correctly handles curve segments in geometries throughout the workflow and set this property toServiceCurveGeometryMode.TRUE_CURVE_CLIENT. You must do this before any calls to services are made - it cannot be changed after making the first request.For details of curve support in services, see ArcGIS REST API documentation.
For services that don't support curves, this value has no effect. It also has no effect on local data sources that may contain curve geometries, such as mobile geodatabases or mobile map packages created using ArcGIS Pro.
Some geometry operations do not support curve geometries; see
GeometryEnginefor details of curve support.SketchEditordoes not support curve geometries.- Parameters:
serviceCurveGeometryMode- determines if curve geometries are fetched from and sent to services that support them- Throws:
IllegalArgumentException- if serviceCurveGeometryMode is nullArcGISRuntimeException- if attempt was made too late to change if curves are fetched from or sent to services- Since:
- 100.12.0
- See Also:
Geometry.hasCurves()
-
addArcadeConsoleMessageListener
public static void addArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Adds anArcadeConsoleMessageListenerthat gets invoked whenever a console message is sent from any Arcade script.This callback allows clients to retrieve messages from evaluating an Arcade script expression in an attribute rule, labeling, popup, dictionary renderer, geotrigger, and more.
Adding this listener on the UI thread will cause it to be invoked on the UI thread, otherwise it is not guaranteed on which thread the listener is invoked.
- Parameters:
listener- anArcadeConsoleMessageListenerthat gets invoked whenever a console message is sent- Throws:
IllegalArgumentException- if listener is null- Since:
- 100.14.0
- See Also:
removeArcadeConsoleMessageListener(ArcadeConsoleMessageListener)
-
removeArcadeConsoleMessageListener
public static boolean removeArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Removes the givenArcadeConsoleMessageListenerif it is present.- Parameters:
listener- theArcadeConsoleMessageListenerto remove- Returns:
- true if the listener has been removed, otherwise false
- Throws:
IllegalArgumentException- if listener is null- Since:
- 100.14.0
- See Also:
addArcadeConsoleMessageListener(ArcadeConsoleMessageListener)
-
-