CoreBluetooth - это не формат. Это набор API для iOS. Используя CoreBluetooth, вы можете обнаруживать различные форматы маяков с ограничениями:
- Формат AltBeacon может быть обнаружен только с приложением iOS на переднем плане
- Форматы Eddystone могут быть обнаружены в передний план и фон, но медленнее обнаруживается в фоновом режиме, чем iBeacon.
- Формат iBeacon не может быть обнаружен CoreBluetooth. Для этого вы должны использовать CoreLocation.
Для рекламы в AltBeacon (обнаруживаемой ядром Bluetooth) используйте этот код:
Beacon beacon = new Beacon.Builder()
.setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")
.setId2("1")
.setId3("2")
.setManufacturer(0x0118)
.setTxPower(-59)
.setDataFields(Arrays.asList(new Long[] {0l}))
.build();
BeaconParser beaconParser = new BeaconParser()
.setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25");
BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser);
beaconTransmitter.startAdvertising(beacon);
Парсить маяки с CoreBlutooth сложно. Вероятно, вы захотите использовать для этого инструмент, например iOS Beacon Tools .
Также стоит добавить, что iOS не может рекламировать форматы AltBeacon или Eddystone. Он может рекламировать только сервисные UUID iBeacon и GATT.