2015-12-28 2 views
1

Я пытаюсь транслировать свою систему Yosemite как маяк, но я не могу транслировать. я не получил никаких ошибок, но это не работает. Я ссылался на эту ссылку https://github.com/mgigirey/iBeaconSwiftOSX. BLE также поддерживается. есть ли способ сделать mac os в качестве маяка?как транслировать Yosemite os как маяк?

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    // Insert code here to initialize your application 
    self.manager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil]; 

    [self.uuidFieldCell setStringValue:@"B0702880-A295-A8AB-F734-031A98A512DE"]; 
    [self.majorFieldCell setStringValue:@"5"]; 
    [self.minorFieldCell setStringValue:@"1000"]; 
    [self.powerFieldCell setStringValue:@"-58"]; 

    self.isBroadcasting = NO; 
    [self.statusField setStringValue:@"Not broadcasting"]; 



} 

-(void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral { 

    if (peripheral.state == CBPeripheralManagerStatePoweredOn) { 

     self.manager = peripheral; 

//  NSUUID *proximityUUID = [[NSUUID alloc] initWithUUIDString:@"B0702880-A295-A8AB-F734-031A98A512DE"]; 
//  CMBeaconAdvertismentData *beaconData = [[CMBeaconAdvertismentData alloc] initWithProximityUUID:proximityUUID major:5 minor:5000 measuredPower:-58]; 
//  [peripheral startAdvertising:beaconData.beaconAdvertisement]; 

    } 
} 

-(IBAction)didTapToggleButton:(id)sender { 

    if (self.manager && !self.isBroadcasting) { 

     NSUUID *proxUUID = [[NSUUID alloc] initWithUUIDString:self.uuidFieldCell.stringValue]; 
     NSInteger major = [self.majorFieldCell.stringValue integerValue]; 
     NSInteger minor = [self.minorFieldCell.stringValue integerValue]; 
     NSInteger power = [self.powerFieldCell.stringValue integerValue]; 

     CMBeaconAdvertismentData *beaconData = [[CMBeaconAdvertismentData alloc] initWithProximityUUID:proxUUID 
                           major:major 
                           minor:minor 
                         measuredPower:power]; 

     [self.manager startAdvertising:beaconData.beaconAdvertisement]; 
     self.isBroadcasting = YES; 

     [self.statusField setStringValue:@"Broadcasting"]; 
     [self.toggleButton setTitle:@"Stop broadcasting"]; 

     [self.uuidFieldCell setEditable:NO]; 
     [self.uuidFieldCell setTextColor:[NSColor lightGrayColor]]; 
     [self.majorFieldCell setEditable:NO]; 
     [self.majorFieldCell setTextColor:[NSColor lightGrayColor]]; 
     [self.minorFieldCell setEditable:NO]; 
     [self.minorFieldCell setTextColor:[NSColor lightGrayColor]]; 
     [self.powerFieldCell setEditable:NO]; 
     [self.powerFieldCell setTextColor:[NSColor lightGrayColor]]; 

    } else if (self.manager && self.isBroadcasting) { 

     [self.manager stopAdvertising]; 
     [self.statusField setStringValue:@"Not broadcasting"]; 

     self.isBroadcasting = NO; 
     [self.toggleButton setTitle:@"Start broadcasting"]; 

     [self.uuidFieldCell setEditable:YES]; 
     [self.uuidFieldCell setTextColor:[NSColor blackColor]]; 
     [self.majorFieldCell setEditable:YES]; 
     [self.majorFieldCell setTextColor:[NSColor blackColor]]; 
     [self.minorFieldCell setEditable:YES]; 
     [self.minorFieldCell setTextColor:[NSColor blackColor]]; 
     [self.powerFieldCell setEditable:YES]; 
     [self.powerFieldCell setTextColor:[NSColor blackColor]]; 

    } 

} 

ответ

0

Вы используете внешний Bluetooth-ключ? Вам нужно, чтобы вы могли рекламировать пакеты iBeacon на Yosemite.

Из README проекта iBeaconSwiftOSX вы упомянули:

Примечание: Несмотря на то, что многие форумы говорят, что вы не можете использовать Yosemite как IBeacon, я могу подтвердить, что это решение работает, но только с внешним Bluetooth-ключом. https://stackoverflow.com/a/27542365/3824765.

Более подробную информацию в другой переполнением стека потока, как указано выше в примечании:
CBPeripheralManager startAdvertising not working on OS X yosemite

+0

это не так. Я использовал MacBeacon по радиусу, чтобы много рекламировать 10.10 –

+0

Нет. Я не использую внешний ключ Bluetooth. поэтому я упомянул BLE, также поддерживается. на моем mac. – kalpesh

+0

@ Daij-Djan, со встроенным Bluetooth? Какое устройство Mac? Оба Radius на странице MacBeacon (http://store.radiusnetworks.com/products/macbeacon) и автор инструмента iBeaconSwiftOSX, а также 3 других пользователя в потоке SO, с которым я связан, заявляют, t работает на Yosemite со встроенным Bluetooth. Если Daij-Djan не может поделиться каким-то трюком о том, как заставить его работать, я думаю, вам нужно будет найти внешний ключ BLE. – heypiotr

Смежные вопросы