Class Batch


  • public final class Batch
    extends java.lang.Object
    Entry point of the Batch library
    • Method Summary

      All Methods Static Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static void copyBatchExtras​(android.content.Intent from, android.content.Intent to)
      Copy Batch's internal data from an intent to another.
      static void copyBatchExtras​(android.os.Bundle from, android.os.Bundle to)
      Copy Batch's internal data from intent extras to another bundle.
      static java.lang.String getAPIKey()
      Return the api key
      If you call this method before calling setConfig, it will return null
      static java.lang.String getBroadcastPermissionName​(android.content.Context context)
      Get the broadcast permission name.
      static LoggerLevel getLoggerLevel()
      Get the current logger level
      static java.lang.String getSessionID()
      Get the id of the current session, random uuid used internaly by Batch to identify the app session.
      static BatchUserProfile getUserProfile()
      Deprecated.
      Please use Batch.User methods instead
      static boolean isOptedOut​(android.content.Context context)
      Returns whether Batch has been opted out from or not
      static boolean isRunningInDevMode()
      Deprecated.
      This method is not needed, since all DEV API Keys start with "DEV".
      static void onCreate​(android.app.Activity activity)
      Method to call on your main activity Activity.onCreate(Bundle).
      static void onDestroy​(android.app.Activity activity)
      Method to call on your main activity Activity.onDestroy()
      Calling this method if Batch is already stopped or not started will do nothing
      static void onNewIntent​(android.app.Activity activity, android.content.Intent intent)
      Method to call on your main activity Activity.onNewIntent(Intent)
      Calling this method if Batch is already stopped or not started will do nothing
      static void onServiceCreate​(android.content.Context context, boolean userActivity)
      Method to call on your service Service.onCreate() to start Batch.
      You must call this method before any other on Batch.
      Note that all Batch functionality is not available in this mode.
      static void onServiceDestroy​(android.content.Context context)
      Method to call on your service Service.onDestroy() to stop Batch.
      Calling this method if Batch is already stopped or not started will do nothing

      static void onStart​(android.app.Activity activity)
      Method to call on your main activity Activity.onStart() to start Batch and support URL scheme events.
      You must call this method before any other on Batch.

      Will fail and log an Error if Given activity is null You call it before calling setConfig(Config) Your app doesn't have android.permission.INTERNET permission
      static void onStop​(android.app.Activity activity)
      Method to call on your main activity Activity.onStop()
      Calling this method if Batch is already stopped or not started will do nothing
      static void optIn​(android.content.Context context)
      Opt In to Batch SDK Usage.
      static void optOut​(android.content.Context context)
      Opt Out from Batch SDK Usage.
      static void optOut​(android.content.Context context, BatchOptOutResultListener listener)
      Opt Out from Batch SDK Usage.
      static void optOutAndWipeData​(android.content.Context context)
      Opt Out from Batch SDK Usage.
      static void optOutAndWipeData​(android.content.Context context, BatchOptOutResultListener listener)
      Opt Out from Batch SDK Usage.
      static void setConfig​(Config config)
      Set the configuration of Batch.

      You should call this method before any other, only one time.
      Typically on the onCreate of your MainActivity.
      static void setFindMyInstallationEnabled​(boolean enabled)
      Control whether Batch should enables the Find My Installation feature (default = true)
      static boolean shouldAutoRegisterForPush()
      Deprecated.
      Please remove this call, as it doesn't do anything anymore
      static boolean shouldUseAdvancedDeviceInformation()
      Can Batch use advanced device information
      static boolean shouldUseAdvertisingID()
      Can Batch use Advertising ID
      static boolean shouldUseGoogleInstanceID()
      Deprecated.
      Please migrate to FCM
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getAPIKey

        public static java.lang.String getAPIKey()
        Return the api key
        If you call this method before calling setConfig, it will return null
        Returns:
        API key if available, null otherwise
      • getUserProfile

        @Deprecated
        public static BatchUserProfile getUserProfile()
        Deprecated.
        Please use Batch.User methods instead
        Get the current user profile.
        You should use this method if you want to modify user language/region or provide a custom ID to identify this user (like an account).

        Be carefull : Do not use it if you don't know what you are doing, giving a bad custom user ID can result in failure into offer delivery and restore

        You must call this method after onStart(Activity) otherwise it will return null
        Returns:
        instance of BatchUser to set properties, null if you call it before onStart.
      • setConfig

        public static void setConfig​(Config config)
        Set the configuration of Batch.

        You should call this method before any other, only one time.
        Typically on the onCreate of your MainActivity.
        Parameters:
        config -
      • shouldUseAdvertisingID

        public static boolean shouldUseAdvertisingID()
        Can Batch use Advertising ID
        Returns:
      • shouldUseAdvancedDeviceInformation

        public static boolean shouldUseAdvancedDeviceInformation()
        Can Batch use advanced device information
        Returns:
      • shouldUseGoogleInstanceID

        @Deprecated
        public static boolean shouldUseGoogleInstanceID()
        Deprecated.
        Please migrate to FCM
        Can Batch use the PlayServices Instance ID API (if available), or fallback to classic GCM.
        Returns:
      • shouldAutoRegisterForPush

        @Deprecated
        public static boolean shouldAutoRegisterForPush()
        Deprecated.
        Please remove this call, as it doesn't do anything anymore
        Should Batch automatically register to push notificaitons This method is not supported anymore: Batch will always register for push.
        Returns:
        Always true
      • getLoggerLevel

        public static LoggerLevel getLoggerLevel()
        Get the current logger level
        Returns:
      • getSessionID

        public static java.lang.String getSessionID()
        Get the id of the current session, random uuid used internaly by Batch to identify the app session.
        Returns:
        session id if any, null otherwise
      • isRunningInDevMode

        @Deprecated
        public static boolean isRunningInDevMode()
        Deprecated.
        This method is not needed, since all DEV API Keys start with "DEV".
        Check if Batch is running in dev mode
        NB : if you call this method before setConfig(Config), you'll always have the default value : false
        Returns:
        true if Batch is running in dev mode, false if not
      • copyBatchExtras

        public static void copyBatchExtras​(@Nullable
                                           android.content.Intent from,
                                           @Nullable
                                           android.content.Intent to)
        Copy Batch's internal data from an intent to another. This is useful if you've got an activity that will not get a chance to start Batch before closing itself, but don't want to break features relying on data put in the intent extras, such as direct open tracking or mobile landings.
        Parameters:
        from - Intent to read Batch's data from
        to - Intent to copy Batch's data to
      • copyBatchExtras

        public static void copyBatchExtras​(@Nullable
                                           android.os.Bundle from,
                                           @Nullable
                                           android.os.Bundle to)
        Copy Batch's internal data from intent extras to another bundle. This is useful if you've got an activity that will not get a chance to start Batch before closing itself, but don't want to break features relying on data put in the intent extras, such as direct open tracking or mobile landings.
        Parameters:
        from - Intent to read Batch's data from
        to - Intent to copy Batch's data to
      • getBroadcastPermissionName

        @NonNull
        public static java.lang.String getBroadcastPermissionName​(@NonNull
                                                                  android.content.Context context)
        Get the broadcast permission name.

        Useful if you want to register your broadcast receiver at runtime

      • optOut

        public static void optOut​(@NonNull
                                  android.content.Context context,
                                  @Nullable
                                  BatchOptOutResultListener listener)
        Opt Out from Batch SDK Usage. Requires Batch to be started.

        Same as optOut(Context), with a completion listener.

        Use the listener to be informed about whether the opt-out request has been successfully sent to the server or not. You'll also be able to control what to do in case of failure.

        Note: if the SDK has already been opted-out from, this method will instantly call the listener with a *failure* state.

        See Also:
        optOut(Context)
      • optOutAndWipeData

        public static void optOutAndWipeData​(@NonNull
                                             android.content.Context context,
                                             @Nullable
                                             BatchOptOutResultListener listener)
        Opt Out from Batch SDK Usage. Requires Batch to be started.

        Same as optOut(Context) but also wipes data.

        Note that calling this method will stop Batch, effectively simulating calls to onStop(Activity), onDestroy(Activity) and onServiceDestroy(Context). Your app should be prepared to handle these cases.

        Use the listener to be informed about whether the opt-out request has been successfully sent to the server or not. You'll also be able to control what to do in case of failure.

        Note: if the SDK has already been opted-out from, this method will instantly call the listener with a *failure* state.

        See Also:
        optOutAndWipeData(Context)
      • optIn

        public static void optIn​(@NonNull
                                 android.content.Context context)
        Opt In to Batch SDK Usage.

        This method will be taken into account on next full application start (full process restart)

        Only useful if you called optOut(Context) or optOutAndWipeData(Context) or opted out by default in the manifest

        Some features might not be disabled until the next app start if you call this late into the application's life. It is strongly advised to restart the application (or at least the current activity) after opting in.

      • isOptedOut

        public static boolean isOptedOut​(@NonNull
                                         android.content.Context context)
        Returns whether Batch has been opted out from or not

        Warning: This method might perform some quick I/O in the caller thread.

      • setFindMyInstallationEnabled

        public static void setFindMyInstallationEnabled​(boolean enabled)
        Control whether Batch should enables the Find My Installation feature (default = true)

        If enabled Batch will copy the current installation id in the clipboard when the application is foregrounded 5 times within 12 seconds.

        Parameters:
        enabled - Whether to enable the find my installation feature.
      • onCreate

        public static void onCreate​(android.app.Activity activity)
        Method to call on your main activity Activity.onCreate(Bundle).
        Parameters:
        activity - Created activity
      • onStart

        public static void onStart​(android.app.Activity activity)
        Method to call on your main activity Activity.onStart() to start Batch and support URL scheme events.
        You must call this method before any other on Batch.

        Will fail and log an Error if
        • Given activity is null
        • You call it before calling setConfig(Config)
        • Your app doesn't have android.permission.INTERNET permission
        Parameters:
        activity - The activity that's starting
      • onServiceCreate

        public static void onServiceCreate​(android.content.Context context,
                                           boolean userActivity)
        Method to call on your service Service.onCreate() to start Batch.
        You must call this method before any other on Batch.
        Note that all Batch functionality is not available in this mode. See the documentation for more info.

        Using this method, you'll also be able to control whether this start should count as user activity or not. This might impact Analytics.
        Will fail and log an Error if
        • Given context is null
        • You call it before calling setConfig(Config)
        • Your app doesn't have android.permission.INTERNET permission
        Parameters:
        context - The service or application context
        userActivity - If the start comes from user activity or for background use only
      • onServiceDestroy

        public static void onServiceDestroy​(android.content.Context context)
        Method to call on your service Service.onDestroy() to stop Batch.
        Calling this method if Batch is already stopped or not started will do nothing

        Parameters:
        context - The service or application context
      • onNewIntent

        public static void onNewIntent​(android.app.Activity activity,
                                       android.content.Intent intent)
        Method to call on your main activity Activity.onNewIntent(Intent)
        Calling this method if Batch is already stopped or not started will do nothing
        Parameters:
        intent -
      • onStop

        public static void onStop​(android.app.Activity activity)
        Method to call on your main activity Activity.onStop()
        Calling this method if Batch is already stopped or not started will do nothing
        Parameters:
        activity - the activity that generate the onStop event
      • onDestroy

        public static void onDestroy​(android.app.Activity activity)
        Method to call on your main activity Activity.onDestroy()
        Calling this method if Batch is already stopped or not started will do nothing
        Parameters:
        activity - the activity that generate the onDestroy event