2016-04-06 30 views
3

を失敗します。私はこの関数を呼び出すたびに、それが失敗し、付属ピッカーダイアログは表示されません。Xamarin/iOSのSharedAccessoryManager.ShowBluetoothAccessoryPickerは、私は私のプロジェクトのためにXamarinに取り組んスウィフトコードを移植してい

EAAccessoryManager.SharedAccessoryManager.ShowBluetoothAccessoryPicker(述語、完了)

ここで私が確認されてきたいくつかのものです:Info.plistのはサポートされている外部アクセサリプロトコルを持って

  • にBTのラジオがある

    • 通話を確保しようとしました
    • は、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 
    
    +2

    XamarinとXCodeの両方からInfo.plistをリンクできますか? –

    +5

    私はあなたがデバイス上でこれを呼び出す推測しますか?どんなデバイスを使っているのですか?それにabiは何ですか?この回答によると:http://stackoverflow.com/questions/20402973/ipad-air-corebluetootherror-cancelling-picker-as-we-couldnt-communicate-wit 32ビットと64ビットの両方のバージョン用にビルドする必要があります。したがって、ビルドオプションでは、ARMv7 + ARM64が選択されていることを確認してください。提案のための – Cheesebaron

    +0

    感謝。私が以前に参照した記事を見つけて、ビルドオプションでARMv7とARM64の両方を選択しました。元々投稿しないことに対する謝罪。私は元の投稿を編集してその情報を追加します。また、私が試したデバイス。 iPad Air 2、iOSバージョン9.2.1を実行中。 iPhone 6、iOSバージョン9.3を実行中 –

    答えて

    0

    Xamarinの素敵な人が私を直接助けてくれましたので、ここで解決策を投稿しています。彼らはすでに修正されているバグだと言いました。このアップデートは、今月の自動アップデート(有効にしている場合)を介して出荷されるはずです。

    今のところ、彼らは私と私の同僚のためにプロジェクトで働くことを確認した回避策を提供しました。以下は、この問題を回避する手順は次のとおりです。

    1. クリーンプロジェクト
    2. のチェックを外し有効にデバイス固有のは、iOSビルドセクションの下のプロジェクトオプションでを構築します。デバイス
    3. から
    4. 削除古いアプリさて、を再デプロイ/再構築し、それが動作するはずです。

    は、あなたの提案や助けをみんなありがとう。また、迅速な対応のためにXamarinの方々に感謝します。

    関連する問題