Class MpnDevice

  • All Implemented Interfaces:
    MpnDeviceInterface

    public class MpnDevice
    extends AbstractMpnDevice
    Class representing a device that supports Mobile Push Notifications (MPN).
    It contains device details and the listener needed to monitor its status.
    An MPN device is created from the application context, the sender ID (a.k.a. authorized entity) and a device token (a.k.a. registration token) obtained from Firebase Cloud Messaging APIs, and must be registered on the LightstreamerClient in order to successfully subscribe an MPN subscription. See MpnSubscription.
    After creation, an MpnDevice object is in "unknown" state. It must then be passed to the Lightstreamer Server with the LightstreamerClient.registerForMpn(MpnDeviceInterface) method, which enables the client to subscribe MPN subscriptions and sends the device details to the server's MPN Module, where it is assigned a permanent device ID and its state is switched to "registered".
    Upon registration on the server, active MPN subscriptions of the device are received and exposed with the LightstreamerClient.getMpnSubscriptions(String) method.
    An MpnDevice's state may become "suspended" if errors occur during push notification delivery. In this case MPN subscriptions stop sending notifications and the device state is reset to "registered" at the first subsequent registration.
    • Constructor Detail

      • MpnDevice

        public MpnDevice​(@Nonnull
                         android.content.Context appContext,
                         @Nonnull
                         java.lang.String token)
        Creates an object to be used to describe an MPN device that is going to be registered to the MPN Module of Lightstreamer Server.
        During creation the MpnDevice tries to acquires some more details:
        • The package name, through the Application Context.
        • Any previously registered device token, from the Shared Preferences storage.
        It then saves the current device token on the Shared Preferences storage. Saving and retrieving the previous device token is used to handle automatically the cases where the token changes, such as when the app state is restored from a device backup. The MPN Module of Lightstreamer Server is able to move MPN subscriptions associated with the previous token to the new one.
        Parameters:
        appContext - the Application Context
        token - the device token
        Throws:
        java.lang.IllegalArgumentException - if context, senderId or token are null.
    • Method Detail

      • getPlatform

        public java.lang.String getPlatform()
        The platform identifier of this MPN device. It equals to the constant Google and is used by the server as part of the device identification.
        Returns:
        the MPN device platform.
        Lifecycle:
        This method can be called at any time.