目前正试图让Bluteooth示例正常运作。
我的设备已启用蓝牙。
我尝试过使用以下代码:
_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
环顾这个错误我发现了几个点击:
但这些都不是特别有用......
我尝试推迟开始直到州改变:
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没有启动意味着如何在这里解决它?
答案 0 :(得分:4)
答案:要在MonoTouch中解决这个问题,我必须使用不同的构造函数:
CBCentralManager(_delegate, MonoTouch.CoreFoundation.DispatchQueue.CurrentQueue)
当我切换到它开始工作时......