Android 在安卓系统中,是否可以在后台使用谷歌附近的消息发布消息?
我正在开发一个应用程序,它使用Google Nearest messages API发布消息和订阅。文档中说因为Nearest messages API可能会影响电池寿命,所以只能在前台活动中使用(BLE background subscribe除外)。 但这仍然可能吗 使用什么策略来实现最大距离 Thx.回答您的问题 样品 谷歌解决方案 下面的代码片段演示如何处理BeaconMessageReceiver类中的意图Android 在安卓系统中,是否可以在后台使用谷歌附近的消息发布消息?,android,google-nearby,Android,Google Nearby,我正在开发一个应用程序,它使用Google Nearest messages API发布消息和订阅。文档中说因为Nearest messages API可能会影响电池寿命,所以只能在前台活动中使用(BLE background subscribe除外)。 但这仍然可能吗 使用什么策略来实现最大距离 Thx.回答您的问题 样品 谷歌解决方案 下面的代码片段演示如何处理BeaconMessageReceiver类中的意图 @Override public void onReceive(Context
@Override
public void onReceive(Context context, Intent intent) {
Nearby.getMessagesClient(context).handleIntent(intent, new MessageListener() {
@Override
public void onFound(Message message) {
Log.i(TAG, "Found message via PendingIntent: " + message);
}
@Override
public void onLost(Message message) {
Log.i(TAG, "Lost message via PendingIntent: " + message);
}
});
}
当不再需要订阅时,您的应用程序应通过调用附近的.getMessagesClient(活动).unsubscribe(挂起内容)来取消订阅
使用BLE的解决方案
发表
@Override
public void onReceive(Context context, Intent intent) {
Nearby.getMessagesClient(context).handleIntent(intent, new MessageListener() {
@Override
public void onFound(Message message) {
Log.i(TAG, "Found message via PendingIntent: " + message);
}
@Override
public void onLost(Message message) {
Log.i(TAG, "Lost message via PendingIntent: " + message);
}
});
}
SubscribeOptions.Builder builder = new SubscribeOptions.Builder();
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
builder.setStrategy(Strategy.BLE_ONLY);
} else {
builder.setStrategy(new Strategy.Builder().setDistanceType(Strategy.DISTANCE_TYPE_EARSHOT).build());
Toast.makeText(this, "BLE NOT SUPPORTED", Toast.LENGTH_SHORT).show();
}
mOptions = builder.build();
Strategy s = new Strategy.Builder()
.setDistanceType(Strategy.DISTANCE_TYPE_EARSHOT)
.build();
PublishOptions options = new PublishOptions.Builder()
.setStrategy(s)
.build();
Nerby.getMessagesClient(this).publish(mMessageName, options);