public class Analytics
extends com.microsoft.appcenter.AbstractAppCenterService
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
LOG_TAG
TAG used in logging for Analytics.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
applyEnabledState(boolean enabled)
React to enable state change.
|
protected com.microsoft.appcenter.channel.Channel.GroupListener |
getChannelListener() |
protected java.lang.String |
getGroupName() |
static Analytics |
getInstance()
Get shared instance.
|
java.util.Map<java.lang.String,com.microsoft.appcenter.ingestion.models.json.LogFactory> |
getLogFactories() |
protected java.lang.String |
getLoggerTag() |
java.lang.String |
getServiceName() |
static AnalyticsTransmissionTarget |
getTransmissionTarget(java.lang.String transmissionTargetToken)
Get a transmission target to use to track events.
|
protected long |
getTriggerInterval() |
boolean |
isAppSecretRequired() |
protected static boolean |
isAutoPageTrackingEnabled()
Check if automatic page tracking is enabled.
|
static com.microsoft.appcenter.utils.async.AppCenterFuture<java.lang.Boolean> |
isEnabled()
Check whether Analytics service is enabled or not.
|
void |
onActivityPaused(android.app.Activity activity) |
void |
onActivityResumed(android.app.Activity activity) |
void |
onConfigurationUpdated(java.lang.String appSecret,
java.lang.String transmissionTargetToken) |
void |
onStarted(android.content.Context context,
com.microsoft.appcenter.channel.Channel channel,
java.lang.String appSecret,
java.lang.String transmissionTargetToken,
boolean startedFromApp) |
static void |
pause()
Pauses log transmission.
|
protected void |
post(java.lang.Runnable runnable) |
static void |
resume()
Resumes log transmission if paused.
|
protected static void |
setAutoPageTrackingEnabled(boolean autoPageTrackingEnabled)
If enabled (which is the default), automatic page tracking will call
trackPage(String, Map)
automatically every time an activity is resumed, with a generated name and no properties. |
static com.microsoft.appcenter.utils.async.AppCenterFuture<java.lang.Void> |
setEnabled(boolean enabled)
Enable or disable Analytics service.
|
protected static void |
setListener(AnalyticsListener listener)
Sets an analytics listener.
|
static boolean |
setTransmissionInterval(int seconds)
Set transmission interval.
|
static void |
trackEvent(java.lang.String name)
Track a custom event with name.
|
static void |
trackEvent(java.lang.String name,
EventProperties properties)
Track a custom event with name and optional typed properties.
|
static void |
trackEvent(java.lang.String name,
EventProperties properties,
int flags)
Track a custom event with name and optional typed properties.
|
static void |
trackEvent(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties)
Track a custom event with name and optional string properties.
|
static void |
trackEvent(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties,
int flags)
Track a custom event with name and optional string properties.
|
protected static void |
trackPage(java.lang.String name)
Track a custom page with name.
|
protected static void |
trackPage(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties)
Track a custom page with name and optional properties.
|
getEnabledPreferenceKey, getTriggerCount, getTriggerMaxParallelRequests, isInstanceEnabled, isInstanceEnabledAsync, onActivityCreated, onActivityDestroyed, onActivitySaveInstanceState, onActivityStarted, onActivityStopped, onApplicationEnterBackground, onApplicationEnterForeground, onStarting, post, postAsyncGetter, setInstanceEnabled, setInstanceEnabledAsyncclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitonActivityPostCreated, onActivityPostDestroyed, onActivityPostPaused, onActivityPostResumed, onActivityPostSaveInstanceState, onActivityPostStarted, onActivityPostStopped, onActivityPreCreated, onActivityPreDestroyed, onActivityPrePaused, onActivityPreResumed, onActivityPreSaveInstanceState, onActivityPreStarted, onActivityPreStoppedpublic static final java.lang.String LOG_TAG
public static Analytics getInstance()
public static com.microsoft.appcenter.utils.async.AppCenterFuture<java.lang.Boolean> isEnabled()
true if enabled, false otherwise.AppCenterFuturepublic static com.microsoft.appcenter.utils.async.AppCenterFuture<java.lang.Void> setEnabled(boolean enabled)
The state is persisted in the device's storage across application launches.
enabled - true to enable, false to disable.public static boolean setTransmissionInterval(int seconds)
seconds - the latency of sending events to Analytics in seconds.true if the interval is set, false otherwise.public static void pause()
resume().public static void resume()
protected static void setListener(AnalyticsListener listener)
Note: it needs to be protected for Xamarin to change it back to public in bindings.
listener - The custom analytics listener.protected static boolean isAutoPageTrackingEnabled()
TODO the backend does not support that service yet, will be public method later.
setAutoPageTrackingEnabled(boolean)protected static void setAutoPageTrackingEnabled(boolean autoPageTrackingEnabled)
trackPage(String, Map)
automatically every time an activity is resumed, with a generated name and no properties.
Call this method with false if you want to track pages yourself in your application.
TODO the backend does not support that service yet, will be public method later.
autoPageTrackingEnabled - true to let the service track pages automatically, false otherwise (default state is true).protected static void trackPage(java.lang.String name)
TODO the backend does not support that service yet, will be public method later.
name - A page name.protected static void trackPage(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties)
TODO the backend does not support that service yet, will be public method later.
name - A page name.properties - Optional properties.public static void trackEvent(java.lang.String name)
The name cannot be null or empty.
Additional validation rules apply depending on the configured secret.
For App Center, the name cannot be longer than 256 and is truncated otherwise.
For One Collector, the name needs to match the [a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99} regular expression.
name - An event name.public static void trackEvent(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties)
The name cannot be null or empty.
The property names or values cannot be null.
Additional validation rules apply depending on the configured secret.
For App Center:
For One Collector:
[a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99} regular expression.baseData and baseDataType properties are reserved and thus discarded.name - An event name.properties - Optional properties.public static void trackEvent(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties,
int flags)
The name cannot be null or empty.
The property names or values cannot be null.
Additional validation rules apply depending on the configured secret.
For App Center:
For One Collector:
[a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99} regular expression.baseData and baseDataType properties are reserved and thus discarded.name - An event name.properties - Optional properties.flags - Optional flags. Events tracked with the Flags.CRITICAL
flag will take precedence over all other events in storage.
An event tracked with this option will only be dropped
if storage must make room for a newer event that is also marked with the
Flags.CRITICAL flag.public static void trackEvent(java.lang.String name,
EventProperties properties)
The name cannot be null or empty.
The property names or values cannot be null.
Double values must be finite (NaN or Infinite values are discarded).
Additional validation rules apply depending on the configured secret.
For App Center:
For One Collector:
[a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99} regular expression.baseData and baseDataType properties are reserved and thus discarded.name - An event name.properties - Optional properties.public static void trackEvent(java.lang.String name,
EventProperties properties,
int flags)
The name cannot be null or empty.
The property names or values cannot be null.
Double values must be finite (NaN or Infinite values are discarded).
Additional validation rules apply depending on the configured secret.
For App Center:
For One Collector:
[a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99} regular expression.baseData and baseDataType properties are reserved and thus discarded.name - An event name.properties - Optional properties.flags - Optional flags. Events tracked with the Flags.CRITICAL
flag will take precedence over all other events in storage.
An event tracked with this option will only be dropped
if storage must make room for a newer event that is also marked with the
Flags.CRITICAL flag.public static AnalyticsTransmissionTarget getTransmissionTarget(java.lang.String transmissionTargetToken)
transmissionTargetToken - A string to identify a transmission target.public boolean isAppSecretRequired()
isAppSecretRequired in interface com.microsoft.appcenter.AppCenterServiceisAppSecretRequired in class com.microsoft.appcenter.AbstractAppCenterServiceprotected java.lang.String getGroupName()
getGroupName in class com.microsoft.appcenter.AbstractAppCenterServicepublic java.lang.String getServiceName()
protected java.lang.String getLoggerTag()
getLoggerTag in class com.microsoft.appcenter.AbstractAppCenterServicepublic java.util.Map<java.lang.String,com.microsoft.appcenter.ingestion.models.json.LogFactory> getLogFactories()
getLogFactories in interface com.microsoft.appcenter.AppCenterServicegetLogFactories in class com.microsoft.appcenter.AbstractAppCenterServicepublic void onActivityResumed(android.app.Activity activity)
onActivityResumed in interface android.app.Application.ActivityLifecycleCallbacksonActivityResumed in class com.microsoft.appcenter.AbstractAppCenterServiceprotected long getTriggerInterval()
getTriggerInterval in class com.microsoft.appcenter.AbstractAppCenterServicepublic void onActivityPaused(android.app.Activity activity)
onActivityPaused in interface android.app.Application.ActivityLifecycleCallbacksonActivityPaused in class com.microsoft.appcenter.AbstractAppCenterServiceprotected com.microsoft.appcenter.channel.Channel.GroupListener getChannelListener()
getChannelListener in class com.microsoft.appcenter.AbstractAppCenterServiceprotected void applyEnabledState(boolean enabled)
applyEnabledState in class com.microsoft.appcenter.AbstractAppCenterServiceenabled - current state.public void onStarted(@NonNull
android.content.Context context,
@NonNull
com.microsoft.appcenter.channel.Channel channel,
java.lang.String appSecret,
java.lang.String transmissionTargetToken,
boolean startedFromApp)
onStarted in interface com.microsoft.appcenter.AppCenterServiceonStarted in class com.microsoft.appcenter.AbstractAppCenterServicepublic void onConfigurationUpdated(java.lang.String appSecret,
java.lang.String transmissionTargetToken)
onConfigurationUpdated in interface com.microsoft.appcenter.AppCenterServiceonConfigurationUpdated in class com.microsoft.appcenter.AbstractAppCenterServiceprotected void post(java.lang.Runnable runnable)
post in class com.microsoft.appcenter.AbstractAppCenterService