我在事件背景模式下使用我的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
};
怎么了?请帮忙
答案 0 :(得分:4)
老兄你需要在info.plist中指定背景模式.....
在Required Background Modes
下,输入"App shares data using CoreBluetooth"
或"App communicates using CoreBluetooth"
...(或两者,具体取决于您的应用功能需要)。
然后你就可以收到背景事件了。