Android APIs
public interface

Messages

com.google.android.gms.nearby.messages.Messages

Class Overview

API which allows your app to publish simple messages and subscribe to receive those messages from nearby devices.

The API performs its operations in an unauthenticated manner, so it does not require a Google account. However, it requires that the developer has a project in the Google Developers Console with the following prerequisites:

  1. Nearby Messages API turned on.
    Follow these instructions to enable the "Nearby Messages API".
  2. An API key for the Android application using its package name and SHA1 fingerprint.
    Follow these instructions to create the "Public API access" API key specific for your app.
  3. Add the API key generated above to your application's manifest:
    <manifest ...>
       <application ...>
         <meta-data
             android:name="com.google.android.nearby.messages.API_KEY"
             android:value="SPECIFY_APPLICATION_API_KEY_HERE" />
         <activity>
         ...
         </activity>
       </application>
     </manifest>
     

The Messages API should be accessed from the Nearby entry point. For example:

@Override
 protected void onCreate(Bundle savedInstanceState) {
   mGoogleApiClient = new GoogleApiClient.Builder(context)
       .addApi(Nearby.MESSAGES_API)
       .addConnectionCallbacks(this)
       .build();
 }

 @Override
 protected void onStart() {
   mGoogleApiClient.connect();
 }

 @Override
 public void onConnected(Bundle connectionHint) {
   PendingResult<Status> pendingResult = Nearby.Messages.publish(mGoogleApiClient,
       new Message(bytes));
 }
 

All of the Messages APIs should be used from a foreground Activity. Your Activity should publish(GoogleApiClient, Message) or subscribe(GoogleApiClient, MessageListener) either in onStart() or in response to a user action in a visible Activity, and you should always symmetrically unpublish(GoogleApiClient, Message) or unsubscribe(GoogleApiClient, MessageListener) in onStop().

Summary

Public Methods
abstract PendingResult<Status> getPermissionStatus(GoogleApiClient client)
Checks if the user has granted this app permission to publish and subscribe.
abstract PendingResult<Status> publish(GoogleApiClient client, Message message)
Publishes a message so that it is visible to nearby devices, using the default options from DEFAULT.
abstract PendingResult<Status> publish(GoogleApiClient client, Message message, Strategy strategy)
This method is deprecated. Use publish(GoogleApiClient, Message, PublishOptions).
abstract PendingResult<Status> publish(GoogleApiClient client, Message message, PublishOptions options)
Publishes a message so that it is visible to nearby devices.
abstract PendingResult<Status> registerStatusCallback(GoogleApiClient client, StatusCallback statusCallback)
Registers a status callback, which will be notified when significant events occur that affect Nearby for your app.
abstract PendingResult<Status> subscribe(GoogleApiClient client, MessageListener listener, SubscribeOptions options)
Subscribes for published messages from nearby devices.
abstract PendingResult<Status> subscribe(GoogleApiClient client, MessageListener listener)
Subscribes for published messages from nearby devices, using the default options in DEFAULT.
abstract PendingResult<Status> subscribe(GoogleApiClient client, MessageListener listener, Strategy strategy)
abstract PendingResult<Status> subscribe(GoogleApiClient client, MessageListener listener, Strategy strategy, MessageFilter filter)
abstract PendingResult<Status> unpublish(GoogleApiClient client, Message message)
Cancels an existing published message.
abstract PendingResult<Status> unregisterStatusCallback(GoogleApiClient client, StatusCallback statusCallback)
Unregisters a status callback previously registered with registerStatusCallback(GoogleApiClient, StatusCallback).
abstract PendingResult<Status> unsubscribe(GoogleApiClient client, MessageListener listener)
Cancels an existing subscription.

Public Methods

public abstract PendingResult<Status> getPermissionStatus (GoogleApiClient client)

Checks if the user has granted this app permission to publish and subscribe. In particular, the status returned can be

  • APP_NOT_OPTED_IN - If the app asked for permission and was denied by user.
  • SUCCESS - If the app has permission to publish and subscribe.

Parameters
client A connected GoogleApiClient for MESSAGES_API
Returns
  • The PendingResult which can be used to determine if the app has all the required permissions to publish/subscribe.

public abstract PendingResult<Status> publish (GoogleApiClient client, Message message)

Publishes a message so that it is visible to nearby devices, using the default options from DEFAULT.

public abstract PendingResult<Status> publish (GoogleApiClient client, Message message, Strategy strategy)

This method is deprecated.
Use publish(GoogleApiClient, Message, PublishOptions).

Publishes a message so that it is visible to nearby devices.

The message is only delivered to apps that share the same project id in the Developer Console and have an active subscription. Create project identifiers and turn on the Nearby API in the Google Developers Console.

Parameters
client A connected GoogleApiClient for MESSAGES_API
message A Message to publish for nearby devices to see
strategy A Strategy to use to publish the message
Returns
  • The PendingResult which can be used to determine if the call succeeded.

public abstract PendingResult<Status> publish (GoogleApiClient client, Message message, PublishOptions options)

Publishes a message so that it is visible to nearby devices.

The message is only delivered to apps that share the same project id in the Developer Console and have an active subscription. Create project identifiers and turn on the Nearby API in the Google Developers Console.

Parameters
client A connected GoogleApiClient for MESSAGES_API
message A Message to publish for nearby devices to see
options A PublishOptions object for this operation
Returns
  • The PendingResult which can be used to determine if the call succeeded.

public abstract PendingResult<Status> registerStatusCallback (GoogleApiClient client, StatusCallback statusCallback)

Registers a status callback, which will be notified when significant events occur that affect Nearby for your app.

When your app first calls this API, it may be immediately called back with current status.

Parameters
client A connected GoogleApiClient for MESSAGES_API.
statusCallback A callback to notify when events occur.
Returns
  • The PendingResult which can be used to determine if the call succeeded.

public abstract PendingResult<Status> subscribe (GoogleApiClient client, MessageListener listener, SubscribeOptions options)

Subscribes for published messages from nearby devices.

Only messages published by apps sharing the same project id in the Developer Console will be delivered.

Parameters
client A connected GoogleApiClient for MESSAGES_API
listener A MessageListener implementation to get callbacks of received messages
options A SubscribeOptions object for this operation
Returns
  • The PendingResult which can be used to determine if the call succeeded.

public abstract PendingResult<Status> subscribe (GoogleApiClient client, MessageListener listener)

Subscribes for published messages from nearby devices, using the default options in DEFAULT.

public abstract PendingResult<Status> subscribe (GoogleApiClient client, MessageListener listener, Strategy strategy)

This method is deprecated.
Use subscribe(GoogleApiClient, MessageListener, SubscribeOptions).

Subscribes for published messages from nearby devices, using INCLUDE_ALL_MY_TYPES.

Only messages published by apps sharing the same project id in the Developer Console will be delivered.

Parameters
client A connected GoogleApiClient for MESSAGES_API
listener A MessageListener implementation to get callbacks of received messages
strategy A Strategy to use to subscribe for messages
Returns
  • The PendingResult which can be used to determine if the call succeeded.

public abstract PendingResult<Status> subscribe (GoogleApiClient client, MessageListener listener, Strategy strategy, MessageFilter filter)

This method is deprecated.
Use subscribe(GoogleApiClient, MessageListener, SubscribeOptions).

Subscribes for published messages from nearby devices.

Parameters
client A connected GoogleApiClient for MESSAGES_API
listener A MessageListener implementation to get callbacks of received messages
strategy A Strategy to use to subscribe for messages
filter A MessageFilter to specify which messages to receive
Returns
  • The PendingResult which can be used to determine if the call succeeded.

public abstract PendingResult<Status> unpublish (GoogleApiClient client, Message message)

Cancels an existing published message.

If this method is called and the message is not currently published, it will return a Status of SUCCESS.

Parameters
client A connected GoogleApiClient for MESSAGES_API
message A Message that is currently published
Returns
  • The PendingResult which can be used to determine if the call succeeded.

public abstract PendingResult<Status> unregisterStatusCallback (GoogleApiClient client, StatusCallback statusCallback)

Unregisters a status callback previously registered with registerStatusCallback(GoogleApiClient, StatusCallback).

Parameters
client A connected GoogleApiClient for MESSAGES_API.
statusCallback A callback previously registered with registerStatusCallback(GoogleApiClient, StatusCallback).
Returns
  • The PendingResult which can be used to determine if the call succeeded.

public abstract PendingResult<Status> unsubscribe (GoogleApiClient client, MessageListener listener)

Cancels an existing subscription.

If this method is called and the listener is not currently subscribed, it will return a Status of SUCCESS.

Parameters
client A connected GoogleApiClient for MESSAGES_API
listener A MessageListener implementation that is currently subscribed
Returns
  • The PendingResult which can be used to determine if the call succeeded.