2

我正在开发蓝牙应用程序。我在表格视图中有一个可用蓝牙设备的名称。如果按下设备意味着我想知道另一个带有表格视图的视图控制器中所有支持的服务 UUID 名称。给我一个想法。

1)外设管理器(NSObject)

2)FirstViewController(在这里我有一个设备名称)

3)SecondViewController(在这个我想要支持的服务)

外设管理器.m

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

    NSLog(@"didDiscoverPeriphera.peripheral: %@ rssi: %@, UUID:%@ advertisementData:%@", peripheral,RSSI,peripheral.UUID, [advertisementData description]);

   targetPeripheral = peripheral;
   peripheral.delegate = self;
if (!peripheral.isConnected)
{
   [centralManager connectPeripheral:peripheral options:nil];
}

}

第一视图控制器.m

- (void)peripheralManagerDidConnectPeripheral:(PeripheralManager *)peripheral
{
   NSLog(@"%@",peripheral.deviceName);
   NSLog(@"%@",peripheral.rssi);
   [device addObject:[NSString stringWithFormat:@"%@",peripheral.deviceName]];  
   [self.deviceTable reloadData];
}

表视图

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   static NSString *simpleTableIdentifier=@"Cell";

   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
   if(cell==nil)
{
   cell =[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
   cell.textLabel.text=[device objectAtIndex:indexPath.row];
   return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{


}

如果您想了解更多信息,请询问我。

请检查此链接示例 iTunes 应用程序

图片 在此处输入图像描述

在此处输入图像描述

4

1 回答 1

2

嗯...首先,你想要蓝牙低功耗,这与蓝牙有很大的不同。即使框架被称为蓝牙,而“普通”被称为 ExternalAccessory。正确的 ?

我不确定你的问题到底是什么。您是否尝试过 Apple 的样品:CoreBluetooth 温度传感器?甚至这两个样本(温度和心脏监测器)也可以工作,因为它们使用相同的框架。它将向您解释它的所有工作原理:外围设备 > 服务 > 特性。

于 2012-11-07T18:34:22.393 回答