Back to top

Public Safety LTE

This section describes how to capture Rich Communications Services (RCS) messages sent and received on a device.

About Public Safety LTE

Rich Communications Services (RCS) messaging is a new messaging protocol that is starting to replace SMS as the default messaging platform for carriers. It adds much needed features — such as group messages, and large file transfers.

Knox 3.2 allows IT admins to log RCS messages. For many industries, such as the financial services, the ability to record and audit sent and received messages is required by law.

GetRCSMessage allows IT admins start RCS capture.

phoneRestrictionPolicy.getRCSMessage(id);
rcsData.getString(BODY);

GetRCS Message Example

Activate Device manager

  1. Choose device manager.
  2. Create the EnterpriseDeviceManager object.

Call Knox APIs

  1. Create phoneRestrictionPolicy.getRCSMessage.
  2. Call rcsData.getString and capture:
    • REMOTE_URI
    • SENDER_ALIAS
    • CONTENT_TYPE
    • BODY
    • TIMESTAMP
  3. Save this data to a file

For TIMESTAMP, also use the getLong method as seen in the following sample.

EnterpriseDeviceManager edm = EnterpriseDeviceManager.getInstance(context);
PhoneRestrictionPolicy phoneRestrictionPolicy = edm.getPhoneRestrictionPolicy();

long id = intent.getExtras().getLong(EXTRA_MSG_ID);

String action = intent.getAction();
boolean isFile = false;
if (ACTION_RCS_MSG_FILE_THUMBNAIL_RECEIVED.equals(action)
    || ACTION_RCS_MSG_FILE_RECEIVED.equals(action)
    || ACTION_RCS_MSG_FILE_SENT.equals(action)) {
    isFile = true;
}

Bundle rcsData = phoneRestrictionPolicy.getRCSMessage(id);
String remoteUri = rcsData.getString(REMOTE_URI);
String senderAlias = rcsData.getString(SENDER_ALIAS);
String contentType = rcsData.getString(CONTENT_TYPE);
String body = rcsData.getString(BODY);
long timestamp = rcsData.getLong(TIMESTAMP);
if (isFile) {
    String filePath = rcsData.getString(FILE_PATH);
    String thumbnailPath = rcsData.getString(THUMBNAIL_PATH);
}

Is this page helpful?