Соединения поблизости: невозможно отправить полезную нагрузку более чем на одно устройство
Я не могу создать групповой чат, в котором более 2 (до 15) соседних пользователей Android могут присоединиться к чату.
startMeshNetwork()
начинает рекламировать связь и открывать. Это называется в onCreate()
, а также в обратном вызове для успешного подключения. Это сделано для того, чтобы устройство продолжало подключаться ко всем соседним устройствам.
public void startMeshNetwork(){
Nearby.getConnectionsClient(this)
.startAdvertising(
/* endpointName= */ "Name here",
/* serviceId= */ "ID here",
mConnectionLifecycleCallback,
new AdvertisingOptions(com.google.android.gms.nearby.connection.Strategy.P2P_CLUSTER));
Nearby.getConnectionsClient(this)
.startDiscovery(
/* serviceId= */ "ID here",
new EndpointDiscoveryCallback() {
@Override
public void onEndpointFound(String endpointId, DiscoveredEndpointInfo info) { Nearby.getConnectionsClient(getApplicationContext())
.requestConnection(
/* endpointName= */ "Name here",
endpointId,
mConnectionLifecycleCallback);
endpoints.add(endpointId);
}
@Override
public void onEndpointLost(String endpointId) {
startMeshNetwork();
}
},
new DiscoveryOptions(com.google.android.gms.nearby.connection.Strategy.P2P_CLUSTER));
}
Сегмент кода, который отправляет полезные данные на все подключенные устройства
Payload payload = Payload.fromBytes(pendingmessage.getBytes());
for(String endpointId:endpoints)
Nearby.getConnectionsClient(getApplicationContext()).sendPayload(endpointId, payload);
Соединения формируются с помощью этого метода, однако отправка полезных данных не согласована и отправляется только на одно устройство.