2013-03-19 2 views
0

rssi 지문을 사용하여 위치 인식을 위해 블루투스 장치에서 RSSI를 읽는 앱을 안드로이드에 작성 중입니다. BT4.0/BLE가 아닌 쌍을 이루지 않은 검색 가능한 블루투스 장치에서 RSSI를 읽는 코드를 작성했습니다. 나는 몇몇 BLE 기반 태그 (stick-n-find와 같은)를 얻고 싶다면 bt-discovery 모드로 나 자신 (내 안드로이드 전화가 정확할 것)을 넣음으로써 RSSI를 읽을 수있을 것입니다.Bluetooth 저 에너지 (BLE) 태그의 RSSI?

답변

2

BT 저 에너지에서는 역할이 전환됩니다. Stick-n-find는 서비스 (들) 이름 또는 기타 정보를 광고합니다. iOS APP에서 해당 광고를 수신하면 해당 광고와 함께 RSSI 값을 받게됩니다. 그것은 주변에서 광고 패키지를 듣고 다음 때 당신이 RSSI를 얻을

- (void)centralManager:(CBCentralManager *)central 
    didDiscoverPeripheral:(CBPeripheral *)peripheral 
    advertisementData:(NSDictionary *)advertisementData 
    RSSI:(NSNumber *)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]; 

:

그래서 그냥 그런 짓을. 당신은 단지 내가 수집 무엇부터 ScanOptions

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

워크 플로우를 설명하고 iOS 코드를 제공해 주셔서 감사합니다. 우리는 아직 모이 션에서 iOS를 시도하지 않았지만 이것이 안드로이드 4.2의 Bluedroid 스택에서 어떻게 코딩되는지 알고 싶습니다. – Bill

0

를 사용하지 않는 주변 장치가 다음 소리가 처음 didDiscoverPeripheral에 콜백을 원하는 경우

, 일부 안드로이드 전화 제조 업체는 BLE 지원을 포함하지만, 수 현재 Android에서 직접 지원하지 않습니다 (4.2 Jellybean 현재). 자세한 내용은 Issue 33371을 참조하십시오.

에서 힌트를 얻은 BEL이 다음 Android 버전으로 제공 될 것으로 보입니다.

관련 문제