Чтобы найти ближайший маяк, вы можете попробовать что-то вроде этого:
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region){
String closestBeacon = null;
for (Beacon beacon : beacons) {
if (closestBeacon == null)
closestBeacon = beacon;
else {
if (closestBeacon.getDistance() > beacon.getDistance()) {
closestBeacon = beacon;
}
}
}
Log.i(TAG, closestBeacon.getBluetoothAddress() + " beacon is the closest to you");
}
Зависит, что Вы хотите сделать.
Если то, что Вы хотите, должно получить байты, которые остаются (между положением и пределом), то то, что Вы имеете, будет работать. Вы могли также просто сделать:
ByteBuffer bb =..
byte[] b = new byte[bb.remaining()]
bb.get(b);
который эквивалентен согласно ByteBuffer javadocs.
Это - простой способ получить байт [], но часть точки использования ByteBuffer избегает необходимости создавать байт []. Возможно, можно получить то, что Вы хотели получить от байта [] непосредственно от ByteBuffer.