問題タブ [external-accessory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - Bluetooth MFi デバイスとの通信
自動車のヘッドユニットと通信するアプリケーションを開発しています。このヘッドユニットはMFiに対応しています。
この質問から始めて、iPhoneをUSB経由で接続することに成功しました。接続されているデバイスのリストに表示されました。
しかし、Bluetooth経由でペアリングしているときは、デバイスがありません。
ios - 他の iPhone または iMac を検出するための iOS の外部アクセサリ フレームワーク
iOS の外部アクセサリ フレームワークを使用して、他の iPhone、iPod、iMac などの Apple 製品を検出することはできますか? それとも、MFi プログラムの付属品のみですか? または、別の方法で CoreBluetooth Framework を使用できますか?
android - PhoneGap、USB 外部デバイス、および Android ホスト モード間の通信
Android で PhoneGap を使用して外部デバイスと通信する必要があります。
PhoneGap プラグインを使用して Bluetooth で動作しています。今度はUSBポートで通信したいです。
Android デバイスの USB ホスト機能を使用して、PhoneGap で外部デバイスにアクセスすることは可能ですか?
既存の PhoneGap / Cordova プラグインはありますか?
例はありますか?
自分のコンセプトを証明するために似たようなものを見つけるのに苦労しています...
xamarin.ios - Xamarin の iOS の ExternalAccessory
Xamarin.iOS で ExternalAccessory API を使用する方法を知っている人はいますか?
Xamarin Studio のバージョンは 4.0.12 (ビルド 3)、Xamarin.Android のバージョンは 4.8.1、Xamarin.iOS のバージョンは 6.4.5.0、Xcode はバージョン 5.0 (5A1413) で、6.1 と 7.0 の両方の iPad/iPhone をターゲットにしようとしました。
私はインターネットを歩き回りましたが、ドキュメントはあまりありません。MonoTouch のドキュメントでさえ、リンクが壊れています。
私が望むのは、接続されているBluetoothデバイスをリストし、そのうちの1つを名前で取得してから接続して、ソケットを開いてデータの送信を開始できるようにすることです。これはシリアル通信を使用するデバイスであり、はい、Apple 外部アクセサリ プロトコル ID を持っています。
私はこれを試しました:
InvaidCastException という例外がスローされるだけです。
手がかりはありますか?
ありがとう!本当に助かります。
PS: Xamarin の詳細
ios - iOS で RN42 Bluetooth がストリーミング データの数秒以内に切断される
RN-42 を使用して Bluetooth 2.1 経由でデバイスからデータを読み取ろうとしています。デバイスは iPhone または iPad Mini にペアリングされ、データは短時間ストリーミングされますが、iOS & BT モジュールは数秒 (10 未満) 以内に切断 (ペアリング解除) されます。デバイスは 5 ~ 10kB/s のデータを出力しており、Bluetooth の仕様に十分収まっています。また、関数 NSInputStream [NSInputStream read: maxLength:] を実行すると、返されるバイト数が常に 158 以下になることにも気付きました。アプリとハードウェアはクラッシュしませんが、Bluetooth のペアリングが解除されるだけです。
デバイスは切断後も RN42 にデータを送信し続けているため、電子機器側の問題の可能性が低くなります。このセットアップは、Android デバイスでも問題なく機能します。切断やクラッシュなしでデータをストリーミングできます。
私が試したこと...
- Apple が提供する外部アクセサリの例、EADemo に従いました。
- ポーリングの代わりに実行ループを純粋に使用します。
- この投稿で提案されているように、ストリームをバックグラウンド スレッドに配置します。
- パフォーマンスを向上させるためにすべての NSLog を削除します。
- デバッグおよびリリース モードでコンパイルされます。
iOS と BT モジュールが接続されたままになり、切断する前にデータを転送できるようになるため、データ転送が遅くなります (つまり、5kB/s 未満)。
ios - iOSアクセサリとの通信遮断
Apple は、外部アクセサリとのデータ通信にランループを使用することを推奨しているようです。ただし、何かが欠けていない限り、ランループは特定の種類の通信にはあまり適していません。
実験的なアクセサリがあり、これに任意のバイト数 (たとえば 1024 まで) を送信する必要があり、その後にそのデータを処理するアクセサリ (可変遅延、たとえば 1ms から 1000ms の間) が続きます。アクセサリからの可変長応答 (最大 1024 バイト)。
アクセサリと通信するための静的ライブラリ (フレームワーク) を開発したいと考えています。基本的に、このライブラリには、NSArray または NSMutableArray を入力として取り、応答を含む NSArray または NSMutableArray を返す関数があります。
問題は、ランループの推奨戦略がこのタイプのアプリケーションにはあまり適していないことです。静的ライブラリ関数では、送信するデータを準備し、送信をスケジュールした後、何らかの「待機」状態に入る必要があります。ただし、この待機状態は、ポーリング方法 (受信ルーティングによって設定される同期変数を待機するなど) に基づくことはできません。これは、受信ルーチンが実行されないためです (同じスレッド上にあるため)。 .
ランループを使用しない場合、データがいつ到着するかわからないため、いつデータを読み取るかを知ることができません。
この問題にアプローチする方法に関するアイデアや推奨事項はありますか? そこに例はありますか?
ios - OutputStream hasSpaceAvailable が「true」になることはありません
iOS 6.1.3 を使用する iPhone では、NSRunLoop を使用せずに outputStream に書き込もうとしています。私のストリームは、次のように単純に初期化されます。
次に、コードの他の場所で、次のようにデータを送信しようとすると:
「hasSpaceAvailable」メソッドが true を返さないため、コードがスタックしています。
データを送信するために、出力ストリームに対して実行する他の初期化タスクはありますか?
c# - ExternalAccessory InputStream/OutputStreams は null ですか?
特定の Bluetooth デバイスの読み取り/書き込みを行うために、(通常の IOStreams のように) InputStream/OutputStream を同期的に使用しようとしています。ガジェットで動作する目的の C コードがいくつかあるため、これが可能であることはわかっていますが、サードパーティの c# ライブラリを使用しているため、c# で動作させる必要があります。
私はここまで来ました:
_session がメモリに割り当てられていることがわかります - Xamarin は、null 以外のポインターとデータ型を持っていることを示しています - ただし、InputStream と OutputStream の両方が null です (したがって、nullref 例外がスローされるため、それらを開くことはできません) )。
OutputStream と InputStream を null にしないようにするにはどうすればよいですか?
(私は多くの Apple ドキュメントを読もうとしていますが、それらのコード例はすべて Objective-C で書かれており、ほとんど理解できません...そして、Objective-C の「メモリ管理」ステートメントは適用されませんか?)
編集また、myEAAcessory が null でないことを確認しました。これは true を返します。