1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-19 05:02:04 +01:00
Smack/documentation/extensions/pushnotifications.md
Fernando Ramirez e266b1acd8 Push Notifications (XEP-0357) implementation
Fixes SMACK-738
2016-11-01 08:46:59 +01:00

1.9 KiB

Push Notifications

Allows to manage how XMPP servers deliver information for use in push notifications to mobile and other devices.

  • Check push notifications support
  • Enable push notifications
  • Disable push notifications
  • Remote disabling of push notifications

XEP related: XEP-0357

Get push notifications manager

PushNotificationsManager pushNotificationsManager = PushNotificationsManager.getInstanceFor(connection);

Check push notifications support

boolean isSupported = pushNotificationsManager.isSupportedByServer();

Enable push notifications

pushNotificationsManager.enable(pushJid, node);

or

pushNotificationsManager.enable(pushJid, node, publishOptions);

pushJid is a Jid

node is a String

publishOptions is a HashMap<String, String> (which means [option name, value])

Disable push notifications

pushNotificationsManager.disable(pushJid, node);

pushJid is a Jid

node is a String

Disable all

pushNotificationsManager.disableAll(pushJid);

pushJid is a Jid

Remote disabling of push notifications

// check if the message is because remote disabling of push notifications
if (message.hasExtension(PushNotificationsElements.RemoteDisablingExtension.ELEMENT, PushNotificationsElements.RemoteDisablingExtension.NAMESPACE)) {
  
  // Get the remote disabling extension
 PushNotificationsElements.RemoteDisablingExtension remoteDisablingExtension = PushNotificationsElements.RemoteDisablingExtension.from(message);

  // Get the user Jid
  Jid userJid = remoteDisablingExtension.getUserJid();

  // Get the node
  String node = remoteDisablingExtension.getNode();

}