Class ArcGISRuntimeEnvironment
- java.lang.Object
-
- com.esri.arcgisruntime.ArcGISRuntimeEnvironment
-
public final class ArcGISRuntimeEnvironment extends java.lang.Object
Defines an ArcGIS Runtime Environment object.Contains methods that 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 Modifier and Type Method Description static void
addArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Adds anArcadeConsoleMessageListener
that gets invoked whenever a console message is sent from any Arcade script.static java.lang.String
getApiKey()
Gets the unique key generated from ArcGIS Developers website.static java.lang.String
getAPIVersion()
Indicates the current version of the ArcGIS Runtime SDK for Android.static License
getLicense()
The current license information, such as the license level, that the environment is using to validate that the app is licensed for certain functionality.static ServiceCurveGeometryMode
getServiceCurveGeometryMode()
Determines if curve geometries are fetched from and sent to services that support them.static boolean
removeArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Removes the givenArcadeConsoleMessageListener
if it is present.static void
setApiKey(java.lang.String apiKey)
Sets the unique key generated from ArcGIS Developers website.static LicenseResult
setLicense(LicenseInfo licenseInfo)
Licenses the application using the given LicenseInfo, and returns aLicenseResult
indicating the outcome of the license operation.static LicenseResult
setLicense(java.lang.String licenseKey)
Licenses the application using the given license key, and returns aLicenseResult
indicating the outcome of the license operation.static LicenseResult
setLicense(java.lang.String licenseKey, java.util.List<java.lang.String> extensions)
Licenses the application using the given license key and list of extensions, and returns aLicenseResult
indicating the outcome of the license operation.static void
setServiceCurveGeometryMode(ServiceCurveGeometryMode serviceCurveGeometryMode)
Determines if curve geometries are fetched from and sent to services that support them.
-
-
-
Method Detail
-
getAPIVersion
public static java.lang.String getAPIVersion()
Indicates the current version of the ArcGIS Runtime SDK for Android.- Returns:
- the API version.
- Since:
- 100.0.0
-
setLicense
public static LicenseResult setLicense(java.lang.String licenseKey)
Licenses the application using the given license key, and returns aLicenseResult
indicating the outcome of the license operation. This method returns aLicenseResult
which contains a license status of either Invalid, Expired, or Valid. This will remove the watermark present at LicenseLevel.DEVELOPER and must be called in a deployed application.Note: If any licensed functionality (LITE, BASIC, STANDARD, or ADVANCED) is accessed before setting the license, an exception will be thrown.
- Parameters:
licenseKey
- the ESRI license key- Returns:
- LicenseResult 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 aLicenseResult
indicating the outcome of the license operation.License info is for named-user access. A
LicenseInfo
can be obtained from a portal for the current logged in user by callingPortal.fetchLicenseInfoAsync()
. TheLicenseInfo
instance is only valid for 30 days, so the user will be required to log into the portal again when this expires.This method will return a
LicenseResult
which contains theLicenseStatus
. TheLicenseStatus
is either LicenseStatus.VALID, LicenseStatus.INVALID, LicenseStatus.EXPIRED (if the user's subscription on the portal has expired), or LicenseStatus.LOGIN_REQUIRED (if the user needs to log in to the portal to renew theLicenseInfo
).- Parameters:
licenseInfo
- license information from a portal- Returns:
- the license result of attempting to set the main license
- Throws:
java.lang.IllegalArgumentException
- if licenseInfo is null- Since:
- 100.0.0
- See Also:
setLicense(String)
,setLicense(String, List)
,LicenseStatus
-
setLicense
public static LicenseResult setLicense(java.lang.String licenseKey, java.util.List<java.lang.String> extensions)
Licenses the application using the given license key and list of extensions, and returns aLicenseResult
indicating the outcome of the license operation. This method returns aLicenseResult
which contains aLicenseStatus
of either LicenseStatus.Invalid, LicenseStatus.Expired, or LicenseStatus.Valid for the Runtime license. The returned LicenseResult includes ajava.util.Map
containing a LicenseStatus for each requested extension.- Parameters:
licenseKey
- application license keyextensions
- a list of extension licenseKey strings- Returns:
- the license result of attempting to set the main license
- Throws:
java.lang.IllegalArgumentException
- if extensions is null- Since:
- 100.0.0
- See Also:
setLicense(String)
,setLicense(LicenseInfo)
-
getLicense
public static License getLicense()
The current license information, such as the license level, that the environment is using to validate that the app is licensed for certain functionality.- Returns:
- the license
- Since:
- 100.0.0
- See Also:
setLicense(String)
,setLicense(LicenseInfo)
,setLicense(String, List)
-
setApiKey
public static void setApiKey(java.lang.String apiKey)
Sets the unique key generated from ArcGIS Developers website.- Parameters:
apiKey
- the unique key generated from ArcGIS Developers website- Since:
- 100.10.0
-
getApiKey
public static java.lang.String getApiKey()
Gets the unique key generated from ArcGIS Developers website.- Returns:
- the unique key generated from ArcGIS Developers website
- Since:
- 100.10.0
-
addArcadeConsoleMessageListener
public static void addArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Adds anArcadeConsoleMessageListener
that 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
- anArcadeConsoleMessageListener
that gets invoked whenever a console message is sent- Throws:
java.lang.IllegalArgumentException
- if listener is null- Since:
- 100.14.0
- See Also:
removeArcadeConsoleMessageListener(ArcadeConsoleMessageListener)
-
removeArcadeConsoleMessageListener
public static boolean removeArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Removes the givenArcadeConsoleMessageListener
if it is present.- Parameters:
listener
- theArcadeConsoleMessageListener
to remove- Returns:
- true if the listener has been removed, otherwise false
- Throws:
java.lang.IllegalArgumentException
- if listener is null- Since:
- 100.14.0
- See Also:
addArcadeConsoleMessageListener(ArcadeConsoleMessageListener)
-
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 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
GeometryEngine
for details of curve support.SketchEditor
does 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
GeometryEngine
for details of curve support.SketchEditor
does not support curve geometries.- Parameters:
serviceCurveGeometryMode
- determines if curve geometries are fetched from and sent to services that support them- Throws:
java.lang.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()
-
-