を失敗します。私はこの関数を呼び出すたびに、それが失敗し、付属ピッカーダイアログは表示されません。Xamarin/iOSのSharedAccessoryManager.ShowBluetoothAccessoryPickerは、私は私のプロジェクトのためにXamarinに取り組んスウィフトコードを移植してい
EAAccessoryManager.SharedAccessoryManager.ShowBluetoothAccessoryPicker(述語、完了)
ここで私が確認されてきたいくつかのものです:Info.plistのはサポートされている外部アクセサリプロトコルを持って
- 通話を確保しようとしました
- は、UIスレッド上で実行され
- は悲惨な呼び出ししようとしましたCTLYボタンのクリックイベントから
- スウィフト/ Xcodeで同じ基本的なコードは正常に動作します
- 製のARMv7およびARM64この記事ごとのビルドオプションで選択されたことを確認します。iPad Air - CoreBluetooth[ERROR] Cancelling picker as we couldn't communicate with Bluetooth
Xamarin:
EAAccessoryManager.SharedAccessoryManager.ShowBluetoothAccessoryPicker(null, completion: ((Foundation.NSError error) => {
Console.WriteLine("My callback");
if (error != null) {
Console.WriteLine(String.Format("Error code: {0} Desc: {1}", error.Code, error.DebugDescription));
Console.WriteLine("Failed? " + EABluetoothAccessoryPickerError.Failed.ToString());
Console.WriteLine("Failed? " + Convert.ToInt64(EABluetoothAccessoryPickerError.Failed));
}
}));
Xcodeの/スウィフト:
EAAccessoryManager.sharedAccessoryManager().showBluetoothAccessoryPickerWithNameFilter(nil) { (error) -> Void in
if error != nil {
NSLog("Error code: \(error!.code) \(error.debugDescription)")
}
}
XamarinコードDピッカーを表示して、常に失敗することはありません。
2016-04-05 19:54:02.136 ASGDemo.iOS[6383:2146384] Connect Clicked
2016-04-05 19:54:06.139 ASGDemo.iOS[6383:2146384] BTM: attaching to BTServer
2016-04-05 19:54:09.157 ASGDemo.iOS[6383:2146384] BTM: session attach called back with BT_SESSION_ATTACHED (fffffed0)
2016-04-05 19:54:09.158 ASGDemo.iOS[6383:2146384] BTM: attemping to re-attach in 1 seconds
2016-04-05 19:54:09.242 ASGDemo.iOS[6383:2146384] My callback
2016-04-05 19:54:09.250 ASGDemo.iOS[6383:2146384] Error code: 3 Desc: Error Domain=EABluetoothAccessoryPickerErrorDomain Code=3 "(null)"
2016-04-05 19:54:09.253 ASGDemo.iOS[6383:2146384] Failed? Failed
2016-04-05 19:54:09.254 ASGDemo.iOS[6383:2146384] Failed? 3
XamarinとXCodeの両方からInfo.plistをリンクできますか? –
私はあなたがデバイス上でこれを呼び出す推測しますか?どんなデバイスを使っているのですか?それにabiは何ですか?この回答によると:http://stackoverflow.com/questions/20402973/ipad-air-corebluetootherror-cancelling-picker-as-we-couldnt-communicate-wit 32ビットと64ビットの両方のバージョン用にビルドする必要があります。したがって、ビルドオプションでは、ARMv7 + ARM64が選択されていることを確認してください。提案のための – Cheesebaron
感謝。私が以前に参照した記事を見つけて、ビルドオプションでARMv7とARM64の両方を選択しました。元々投稿しないことに対する謝罪。私は元の投稿を編集してその情報を追加します。また、私が試したデバイス。 iPad Air 2、iOSバージョン9.2.1を実行中。 iPhone 6、iOSバージョン9.3を実行中 –