CoreBluetooth事件背景 - iOS 6.0.1及更高版本中没有事件

时间:2013-03-27 11:17:04

标签: core-bluetooth bluetooth-lowenergy

我在事件背景模式下使用我的ble设备。所以我没有在info.plist中为此指定任何特殊内容。

我有两个麻烦:

1)在iOS 5.1.1中,没有附件名称的事件显示。 所以当应用程序在后台时来自ble的事件我看到“”附件想要打开“MyAppName”

但是在

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

我在 peripheral.name 属性中看到了名称,而adsData也包含键 kCBAdvDataLocalName @“MyDeviceName”

2)在iOS 6.0.1及更高版本中,事件不是来自背景......

我使用ti cc2540堆栈,这是我的广告结构:

// GAP - SCAN RSP data (max size = 31 bytes)
static const uint8 scanRspData[] =
{
  // complete name
  0x05,   // length of this data
  GAP_ADTYPE_LOCAL_NAME_COMPLETE,
  'O',   
  'b',   
  'd',   
  '2',       
  // connection interval range
  0x05,   // length of this data
  GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE,
  LO_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),   // 100ms
  HI_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),  
  LO_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),   // 1s
  HI_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),  

  // Tx power level
  0x02,   // length of this data
  GAP_ADTYPE_POWER_LEVEL,
  0       // 0dBm  
};


static const uint8 advertData[] = 
{      
  0x02,   // length of this data
  GAP_ADTYPE_FLAGS,
  DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,

  // service UUID, to notify central devices what services are included
  // in this peripheral
  0x03,   // length of this data
  GAP_ADTYPE_16BIT_MORE,      // some of the UUID's, but not all
  LO_UINT16( RPC_SERVICE_UUID ),
  HI_UINT16( RPC_SERVICE_UUID ),
  0x05,   // length of this data
  GAP_ADTYPE_LOCAL_NAME_COMPLETE,
  'O',   // 'O'
  'b',   // 'b'
  'd',   // 'd' 
  '2' //2
};

怎么了?请帮忙

1 个答案:

答案 0 :(得分:4)

老兄你需要在info.plist中指定背景模式.....

Required Background Modes下,输入"App shares data using CoreBluetooth""App communicates using CoreBluetooth" ...(或两者,具体取决于您的应用功能需要)。

然后你就可以收到背景事件了。