1
在藍牙核心「CBConcreteCentralManager沒有通電」目前試圖獲得Bluteooth樣品的工作。解決的MonoTouch
藍牙設備上啓用。
我使用像代碼嘗試:
_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上沒有手段供電,該如何解決呢這裏?
你說得對。綁定生成器創建默認的構造函數(除非被告知不),Apple的文檔可能'init'ed缺少一點。本週我發現了CoreBluetooth extra ttors(因爲它們在使用OSX的處置時崩潰),並且在接下來的MT版本中它們將被標記爲「[Obsolete]」。 – poupou
謝謝:)我的其他發現在http://forums.xamarin.com/discussion/476/corebluetooth-spp-sample#latest-感覺像.Net Guid到CBUUID翻譯的問題。我仍然無法與我的sphero工作聯繫 - 不確定爲什麼Sphero文檔也有點缺乏!如果你想討論,那麼看到你在那個論壇上的線程(StackOverflow的評論不是很好的聊天!) – Stuart
我認爲問題是.Net無法區分Guid null數組和CBUUID null數組,你必須指定類型。我剛使用「新的CBUUID [] {}」,它的工作原理.. – Rogier