RSSI от Bluetooth Low Energy (BLE) Метки?

Я пишу приложение (на Android) для чтения RSSI с устройств Bluetooth, для распознавания местоположения с помощью снятия отпечатков пальцев rssi. У меня есть рабочий код для чтения RSSI с непарных и обнаруживаемых устройств Bluetooth, которые не BT4.0/BLE. Я хотел бы знать, получу ли я некоторые основанные на BLE теги (такие как stick-n-find), смогу ли я прочитать их RSSI, только переведя себя (мой телефон на Android), в режим bt-discovery.

2 ответа

В BT Low Energy роли поменялись. Stick-n-find будет рекламировать название своей услуги (услуг) или другую информацию. Когда вы получаете эту рекламу от вашего приложения iOS, вы получите значение RSSI с этой рекламой.

Так что просто сделайте что-то вроде:

@property (strong, nonatomic) CBCentralManager *CM;

#define SERVICE_ID_STR     "4d1dc300-424d-13e2-a661-0002a55dc51b"

self.CM = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
NSDictionary *scanOptions = [NSDictionary dictionaryWithObject:[NSNumber
   numberWithBool:NO] forKey:CBCentralManagerScanOptionAllowDuplicatesKey];
CBUUID *peripheralUUID = [CBUUID UUIDWithString:@SERVICE_ID_STR];
[self.CM scanForPeripheralsWithServices:[NSArray arrayWithObject:myUUID]
   options:scanOptions];

затем, когда он услышит пакет рекламы от периферийного устройства, вы получите

- (void)centralManager:(CBCentralManager *)central 
    didDiscoverPeripheral:(CBPeripheral *)peripheral 
    advertisementData:(NSDictionary *)advertisementData
    RSSI:(NSNumber *)RSSI {

где вы получаете RSSI.

Если вам нужен только обратный вызов didDiscoverPeripheral в ПЕРВЫЙ раз, когда прослушивается периферийное устройство, не используйте ScanOptions

[self.CM scanForPeripheralsWithServices:[NSArray arrayWithObject:myUUID] options:nil];

Насколько я понимаю, некоторые производители телефонов Android могут включать поддержку BLE, но в настоящее время она не поддерживается Android напрямую (начиная с версии 4.2 Jellybean). Смотрите Issue 33371 для получения дополнительной информации.

Похоже, что BLE может появиться в следующей версии Android, как намекнуло в этом обсуждении групп Google.

Другие вопросы по тегам