【发布时间】:2012-11-19 09:50:52
【问题描述】:
目前正在尝试使蓝牙示例正常工作。
我的设备上启用了蓝牙。
我尝试过使用如下代码:
_manager = new CBCentralManager ();
_manager.DiscoveredPeripheral += HandleDiscoveredPeripheral;
_manager.ConnectedPeripheral += HandleConnectedPeripheral;
_manager.DisconnectedPeripheral += HandleDisconnectedPeripheral;
我已经尝试编写自己的继承自 CBCentralManagerDelegate 的委托
但是当我调用 StartScan 时
void StartScan ()
{
var spp = Guid.Parse("00001101-0000-1000-8000-00805f9b34fb");
_manager.ScanForPeripherals(new [] { spp }, null);
}
然后我看到一个错误:
bluetooth1[1210:907] CoreBluetooth[WARNING] <CBConcreteCentralManager: 0x9beea0> is not powered on
四处寻找这个错误,我发现只有几个命中:
- What causes CBCentralManagerStateUnknown in iOS?
- http://www.zitao.org/wiki/development-log/le-zeng/2012-Nov-week1-devnote.html
但这些都不是特别有用...
我尝试延迟启动直到状态改变:
void HandleUpdatedState (object sender, EventArgs e)
{
// more to do here....
Console.WriteLine("State updated " + e.ToString());
switch (_manager.State) {
case CBCentralManagerState.PoweredOn:
_manager.DiscoveredPeripheral += HandleDiscoveredPeripheral;
_manager.ConnectedPeripheral += HandleConnectedPeripheral;
_manager.DisconnectedPeripheral += HandleDisconnectedPeripheral;
StartScan();
break;
case CBCentralManagerState.Unauthorized:
break;
}
}
- 但这似乎从未被调用过。
我也尝试过运行 xcode 示例,但我今天没有力气...
有人知道 CBConcreteCentralManager: 0x9beea0 is not power on 是什么意思吗?这里如何解决?
【问题讨论】:
标签: ios xamarin.ios bluetooth core-bluetooth