com.google.android.gms.nearby.messages.Messages |
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:
<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, with the exception of the
variants of subscribe
that take a PendingIntent
parameter. 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()
.
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
This method is deprecated.
This call will always succeed now that permission status is handled at connection
time.
| |||||||||||
Extracts information from an Intent sent as a subscription callback, and calls the
corresponding methods on the given MessageListener.
| |||||||||||
Publishes a message so that it is visible to nearby devices, using the default options from
DEFAULT . | |||||||||||
Publishes a message so that it is visible to nearby devices.
| |||||||||||
Registers a status callback, which will be notified when significant events occur that affect
Nearby for your app.
| |||||||||||
Note: Currently, this method only finds messages attached to BLE beacons.
| |||||||||||
Subscribes for published messages from nearby devices.
| |||||||||||
Subscribes for published messages from nearby devices, using the default options in
DEFAULT . | |||||||||||
Note: Currently, this method only finds messages attached to BLE beacons.
| |||||||||||
Cancels an existing published message.
| |||||||||||
Unregisters a status callback previously registered with
registerStatusCallback(GoogleApiClient, StatusCallback) . | |||||||||||
Cancels an existing subscription.
| |||||||||||
Cancels an existing subscription.
|
This method is deprecated.
This call will always succeed now that permission status is handled at connection
time.
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 |
GoogleApiClient :
A connected GoogleApiClient for MESSAGES_API |
Returns | |
---|---|
PendingResult<Status> |
The PendingResult which can be used to determine if the app has all the
required permissions to publish/subscribe. |
Extracts information from an Intent sent as a subscription callback, and calls the corresponding methods on the given MessageListener.
Note: Only onFound(Message)
and onLost(Message)
are supported.
For example:
PendingIntent pendingIntent = PendingIntent.getService(context, 0, new Intent(context, MyService.class), PendingIntent.FLAG_UPDATE_CURRENT); Nearby.Messages.subscribe(googleApiClient, pendingIntent, ...); public class MyService extends IntentService { protected void onHandleIntent(Intent intent) { Nearby.Messages.handleIntent(intent, new MessageListener() { @Override public void onFound(Message message) {...} } }); }
Parameters | |
---|---|
intent |
Intent :
An intent that was sent as a result of subscribe(GoogleApiClient, PendingIntent, SubscribeOptions) |
messageListener |
MessageListener :
This will be called immediately with information present in the Intent
|
Publishes a message so that it is visible to nearby devices, using the default options from
DEFAULT
.
Parameters | |
---|---|
client |
GoogleApiClient
|
message |
Message
|
Returns | |
---|---|
PendingResult<Status> |
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.
Allowed Contexts GoogleApiClient
can be bound to:
Parameters | |
---|---|
client |
GoogleApiClient :
A connected GoogleApiClient for MESSAGES_API |
message |
Message :
A Message to publish for nearby devices to see |
options |
PublishOptions :
A PublishOptions object for this operation |
Returns | |
---|---|
PendingResult<Status> |
The PendingResult which can be used to determine if the call succeeded.
|
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 |
GoogleApiClient :
A connected GoogleApiClient for MESSAGES_API . |
statusCallback |
StatusCallback :
A callback to notify when events occur. |
Returns | |
---|---|
PendingResult<Status> |
The PendingResult which can be used to determine if the call succeeded. |
Note: Currently, this method only finds messages attached to BLE beacons. See Beacons.
Subscribes for published messages from nearby devices in a persistent and low-power manner. This uses less battery, but will have higher latency and lower reliability. Notably, updates may only be delivered when the device's screen turns on (or when Bluetooth turns on). The subscription will be retained after the client disconnects.
Call handleIntent(Intent, MessageListener)
to handle the Intents received from
Nearby while subscribed. Call unsubscribe(GoogleApiClient, PendingIntent)
to cancel
the subscription.
Each application can pass up to 5 PendingIntent
s. When the limit is reached, this
returns TOO_MANY_PENDING_INTENTS
, and the subscription is not
created.
Parameters | |
---|---|
client |
GoogleApiClient :
A connected GoogleApiClient for MESSAGES_API |
pendingIntent |
PendingIntent :
A PendingIntent to get callbacks about nearby messages |
options |
SubscribeOptions :
A SubscribeOptions object for this operation |
Returns | |
---|---|
PendingResult<Status> |
The PendingResult which can be used to determine if the call succeeded.
|
Subscribes for published messages from nearby devices.
Only messages published by apps sharing the same project id in the Developer Console will be delivered.
Allowed Contexts GoogleApiClient
can be bound to:
Parameters | |
---|---|
client |
GoogleApiClient :
A connected GoogleApiClient for MESSAGES_API |
listener |
MessageListener :
A MessageListener implementation to get callbacks of received messages |
options |
SubscribeOptions :
A SubscribeOptions object for this operation |
Returns | |
---|---|
PendingResult<Status> |
The PendingResult which can be used to determine if the call succeeded.
|
Subscribes for published messages from nearby devices, using the default options in DEFAULT
.
Parameters | |
---|---|
client |
GoogleApiClient
|
listener |
MessageListener
|
Returns | |
---|---|
PendingResult<Status> |
Note: Currently, this method only finds messages attached to BLE beacons. See Beacons.
Subscribes for published messages from nearby devices in a persistent and low-power manner,
using the default options in DEFAULT
.
Parameters | |
---|---|
client |
GoogleApiClient
|
pendingIntent |
PendingIntent
|
Returns | |
---|---|
PendingResult<Status> |
Cancels an existing published message.
If this method is called and the message is not currently published, it will return a Status
of SUCCESS
.
Allowed Contexts GoogleApiClient
can be bound to:
Parameters | |
---|---|
client |
GoogleApiClient :
A connected GoogleApiClient for MESSAGES_API |
message |
Message :
A Message that is currently published |
Returns | |
---|---|
PendingResult<Status> |
The PendingResult which can be used to determine if the call succeeded.
|
Unregisters a status callback previously registered with registerStatusCallback(GoogleApiClient, StatusCallback)
.
Parameters | |
---|---|
client |
GoogleApiClient :
A connected GoogleApiClient for MESSAGES_API . |
statusCallback |
StatusCallback :
A callback previously registered with registerStatusCallback(GoogleApiClient, StatusCallback) . |
Returns | |
---|---|
PendingResult<Status> |
The PendingResult which can be used to determine if the call succeeded. |
Cancels an existing subscription.
If this method is called and the pendingIntent
is not currently subscribed, it will
return a Status
of SUCCESS
.
Parameters | |
---|---|
client |
GoogleApiClient :
A connected GoogleApiClient for MESSAGES_API |
pendingIntent |
PendingIntent :
A PendingIntent that is currently subscribed |
Returns | |
---|---|
PendingResult<Status> |
The PendingResult which can be used to determine if the call succeeded.
|
Cancels an existing subscription.
If this method is called and the listener
is not currently subscribed, it will
return a Status
of SUCCESS
.
Allowed Contexts GoogleApiClient
can be bound to:
Parameters | |
---|---|
client |
GoogleApiClient :
A connected GoogleApiClient for MESSAGES_API |
listener |
MessageListener :
A MessageListener implementation that is currently subscribed |
Returns | |
---|---|
PendingResult<Status> |
The PendingResult which can be used to determine if the call succeeded.
|