2014-04-19 36 views
0

這裏我的做法。如何從廣播信標中獲取標識值?

使用UUID和標識符這樣的Broadcating信標。

NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:@"B57A1B68-48B7-4DBF-914C-760D08FBB87B"]; 

// Initialize the Beacon Region 
self.myBeacon = [[CLBeaconRegion alloc] initWithProximityUUID:uuid 
                   major:1 
                   minor:1 
                 identifier:@"com.mycompany.xxx"]; 

,提取燈塔信息像這樣

-(void)locationManager:(CLLocationManager*)manager 
    didRangeBeacons:(NSArray*)beacons 
      inRegion:(CLBeaconRegion*)region 
{ 
CLBeacon *beacon = [beacons firstObject]; 
NSLog(@"becons details = %@",beacon); 
} 

而結果

becons details = CLBeacon (uuid:<__NSConcreteUUID 0x178038200> B57A1B68-48B7-4DBF-914C-760D08FBB87B, major:1, minor:1, proximity:1 +/- 0.11m, rssi:-40) 

這我怎麼弄的主要價值

NSString *major = [NSString stringWithFormat:@"%@", foundBeacon.major]; 

請人幫助我如何獲取標識符值li來自廣播信標的ke「com.company.xxx」?

謝謝。

回答

1

不幸的是,你不能。這些標識符只在同一個應用程序中有用,但它們實際上並未在藍牙數據包中進行物理廣播。

另一種方法是讓應用充當外設並宣傳包含該公司標識符值的服務和特性,但此方法不像iBeacons那樣被動,並且需要中央主動連接到外設並閱讀特徵值。它不像聽起來那麼難,但實際上取決於你的用例。

+0

謝謝你Yazid。 – webmastx

+0

@webmastx沒問題。我用另一個建議編輯了我的答案。如果你有興趣,我可以給你更多的指點。 – Yazid

+0

@Yazid我怎麼知道我的信標的'identifier'值是多少?沒有必要知道他們檢測某個地區的烽火臺嗎?我可以將任何字符串值作爲'identifier'嗎? – Dipak