問題タブ [eaaccessory]

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.

0 投票する
1 に答える
1750 参照

ios - iOS デバイスと非 iOS デバイスとの通信

Apple のドキュメントに示されているように、認定されたアクセサリ (Apple によって認定されたもの) との通信は、EAAccessory フレームワークを介して行うことができます。しかし、一部の投稿では、CoreBluetooth を介して作成することもできると書かれているため、少し混乱しています。

また、CoreBlueTooth は iOS 5 でのみサポートされており、iPhone 4S は外部アクセサリと通信できる可能性があることも読みました。

問題は、「CoreBluetooth と EAAccessory Framework の両方を使用する必要があるか(この場合、デバイス モデルと iOS バージョンの組み合わせでテストする必要があると思います) 、それとも EAAccessory Framework で十分でしょうか?」ということです。

0 投票する
2 に答える
2137 参照

ios - iPad アプリでの Bluetooth キーボードの検出

私のアプリでは、使用した多数のテキスト フィールドがある顧客情報フォームを使用しています。ユーザーが任意のフィールドを編集するときに、ビュー全体を上に移動して、編集中のテキスト フィールドが iPad の内部に収まらないようにする必要があります。キーボードとこれは正常に機能しています。ここで、クライアントは、このフォームに入力するために外部 Bluetooth キーボードを使用したいと考えています。この外部キーボードが iPad に接続されると、アプリでテキスト フィールドを編集するときに、外部が接続されているため内部キーボードが表示されません。この場合、ビュー全体がページ上にある必要があり、上に移動する必要はありません。しかし、テキストフィールドを編集すると、画面に内部キーボードが表示されずにまだ上に移動し、ビュー全体が上に移動するため、画面の半分が空白のままになります。

このために、内部キーボードの表示/非表示通知を有効にするなどのいくつかの方法を試しましたが、これらの通知は外部キーボードが接続されていない場合にのみ呼び出され、これは役に立ちません。また、ExternalAccessoryフレームワークで試しましたが、Bluetooth接続キーボードを検出しません.EADemoで外部キーボードを検出しようとしましたが、外部キーボードを検出しませんでしたが、ドックを介して接続されたクレジットカードスワイパーを検出しました.

ここにいる誰かがこの機能を経験したことがある場合、またはこれに関連することを知っている場合は、私に知らせてください.

0 投票する
1 に答える
1203 参照

objective-c - –accessoryDidDisconnect: EAAccessoryDe​​legate 内のメソッドの目的は何ですか?

ハードウェアに接続する iOS の実装に取り​​組んできたので、外部アクセサリ フレームワークを利用する必要があります。EAAccessoryデバイスと対話するには、オブジェクトとの通信を処理するクラスが必要です。EAAccessoryDelegateこれを行うには、プロトコルを使用してデバイス接続クラスを定義する必要があります。

EAAccessoryDelegateプロトコルには 1 つのメソッドが含まれています--

– accessoryDidDisconnect:(EAAccessory *)accessory.

Apple のドキュメントには次のように記載されています。

プロトコルは、関連付けられたオブジェクトが切断されたときに通知を受信するためのEAAccessoryDelegate単一のメソッドを定義します。EAAccessoryこのメソッドの実装はオプションです。

クラスをインスタンス化するときに、独自のメソッドをNSNotificationCenterシステムに登録できます。Device Connect または Device Disconnect イベントが発生した場合、必要に応じてイベントを処理できます。Device Disconnect イベントが発生すると- accessoryDidDisconnect:、まったく同じ機能とデータがクラスに提供されるため、その目的は無意味になります。

さらに、External Accessories Framework の操作に関して私が見つけることができる例は、NSNotificationCenterサブスクリプション メカニズムを介してデバイス接続の変更を検出する例を示しています。

– accessoryDidDisconnect:そうは言っても、実際に使用されていないメソッドのポイントは何ですか? はい、実装できますが、前述したように、すべての形式のドキュメントでは、これらの種類の接続の変更をNSNotificationCenter.

私はこれが細かい質問であることを知っていますが、私は非常に興味があります.

0 投票する
1 に答える
1151 参照

iphone - iOS 用のアクセサリの開発を開始するにはどうすればよいですか?

30 ピンのドック コネクタに差し込む iOS アクセサリを開発したいと考えています。EAAccessory フレームワークでできることとできないことについて話している初心者向けの良い出発点はありますか?

Apress は、2010 年 6 月に EAAccessory フレームワークについて説明した本をリリースしました。これはまだ関係がありますか、それともそれ以来、Apple は多くの新しい API を導入していますか? 他に利用可能なリソースはありますか?

0 投票する
2 に答える
3240 参照

ios - EASessionリーク

アクセサリに接続するアプリがあり、アクセサリを切断すると、アクセサリと通信するために作成した EASession がリークします。

アクセサリが接続されると、これに関する通知を受け取り、EAAccessoryManager のアクセサリ コレクションをチェックして、特定のプロトコルを使用する特定の名前のアクセサリを探します。これを見つけたら、そのアクセサリの EASession オブジェクトをコードで作成します。

通常、私は alloc と init を 1 行に持っていますが、(このように分離して) 見つけたのは、alloc が +1 の保持カウントを与えることです (ご想像のとおり) iniWithAccessory:forProtocol:。 init メソッドからの +2 の保持カウントのみを期待します。

リークインストゥルメントもこれをサポートしているようです。

ここに画像の説明を入力

リーク計測器を段階的に見ていきます。

  1. +1 保持カウント :: [???Accessory openSession]- これは、新しい EASession を割り当てる場所です。
  2. +1 保持カウント ::[EAInputStream iniWithAccessory:forSession:]入力ストリームは、所有しているセッションへの参照を保持します。
  3. +1 保持カウント ::[EAOutputStream initWithAccessory:forSession:]出力ストリームは、所有しているセッションへの参照を保持します。
  4. +1 保持数 ::[EASession iniWithAccessory:forProtocol:] これが EASession の保持数を増やしている理由がわかりません。これは、説明できない追加の保持カウントの原因であると思います...これがどのようにバランスが取れているのかわかりません。これは Apple のバグなのかrelease、バランスをとるために余分な時間を費やす必要があります.... 非常に奇妙です。
  5. -1 保持カウント ::[EAInputStream close] 上記のステップ #2 をクリーンアップします
  6. -1 カウントを保持 ::[EAOutputStream close] 上記のステップ #3 をクリーンアップします
  7. -1 カウントを保持 ::???Accessory closeSession]上記のステップ #1 をクリーンアップします1

だから...なぜ私はEASessionオブジェクトを漏らしているのですか? リークしないために EASession オブジェクトを使用する適切な方法は何ですか?


編集 - EADemo はリークしませんが ...

EADemoはアクセサリーに接続しますが漏れません。好奇心から[_session retain]、インストゥルメントで malloc の履歴をたどることができるように、リークを発生させるエクストラを追加しました。私のアプリの malloc 履歴で呼び出されなかったいくつかの内部的なものを見るのは興味深いことでした。

ここに画像の説明を入力

[EAAccessoryInternal removeSession:]これが3 回呼び出されたことがわかります。これは、アプリの malloc 履歴で呼び出されたことはありません。これが、私の EASession がリリースされない理由の鍵だと思います...

0 投票する
1 に答える
310 参照

ios - [UIScreen screens] が空の配列を返すのはいつですか

[UIScreen screens]クラッシュ時に Flurry に記録されたレポートで、iOS 5.0.1 の奇妙な動作が見られます。[UIScreen screens]が空の配列を返す場合があります。私たちのアプリは、EAAccessory フレームワークを通じて外部アクセサリのサポートを実装しています。Apple のドキュメントでさえ、そのメソッドから返される配列には常に少なくとも 1 つのエントリが含まれると述べているため、この動作はまったく予想外です。

0 投票する
2 に答える
441 参照

objective-c - Objective C - EAAccessory を NSUserDefaults に保存する

私が作成しなければならないプロジェクトでは、外部アクセサリとフレームワーク ExternalAccessory を使用しています。

(接続できるアクセサリは 1 つだけです)。

接続は簡単で、データの送信はそれほど難しくありません。

私がやりたいことの 1 つは、最後に接続されたデバイスをメモリに保存し、アプリケーションの再起動時に自動的に再接続しようとすることです。(出発後なので、最初の打ち上げ後。)

したがって、私の問題は、EAAccessory がカスタム クラス オブジェクトであり、NSUserDefaults に格納できないことです。

カスタムオブジェクトを保存するためにこの質問を見ました:

カスタムオブジェクトを NSUserDefaults に保存する方法

EAAccessory は encodeWithCoder および initWithCoder メソッドを実装していないため、それを使用して NSData を作成しますが、成功しませんでした...

何か案が ?この方法または別の方法で処理するには?

0 投票する
1 に答える
4143 参照

ios - IOS:ペアリングされたBluetooth 3.0デバイスのメーカー/モデルを検出する方法は?

ここでIOSnoobの質問がありますが、繰り返しではないことを願っています。IOS4以降を対象としたXCode4.3での開発。ペアリングされたBluetoothデバイスのリストを取得する方法についてのガイダンスを見つけるのに苦労しています。複数のBluetoothインターフェイスがあるようですが、専用です。次の間違いがあった場合は訂正してください。CoreBluetooth:Bluetooth LE(Bluetooth 4.0)ゲームキット:セッションIDに基づくピアピアEAAccessory:MFiBluetoothデバイスXCode3.0には機能していない「BlueToothManager」APIもあったようです。アプリを実行しているデバイスと現在ペアリングされているBlueToothデバイスのリストを取得する方法を誰かに教えてもらえますか?メーカー、モデル、識別子(またはシリアル番号)にのみ興味があります。念のため、実際にデバイスと通信する必要はありません。前もって感謝します。

0 投票する
1 に答える
1545 参照

ios - iOS ExternalAccessory Bluetooth の問題

iPodでExternalAccessoryを実行するのに問題があります...

私のコンピューター (mac、Mountain Lion) で実行されている bluecove bluetooth リスナーが Java であり (そのコードはこちら: http://pastebin.com/j6Eu0H66 )、iPod とコンピューターのペアリングに成功しました。ただし、ipod リストを作成すると、次のようになります。

私はコオロギしか手に入れません。これは、info.plist に有効なアクセサリを設定しなかったためだと思いますが、何を入力すればよいかわかりません。

EAAccessoryManager を介して自分のコンピューターを見つけることができない理由と、有効なプロトコルとして分類されるものを知っている人はいますか? プロトコルとして実際に何を書くべきかについてのドキュメントは見つかりません。

PS このプロジェクトの初期段階で、lejos 経由でコンピューターと NXT をペアリングしようとしましたが、次の問題に遭遇しました。

https://groups.google.com/forum/?fromgroups=#!topic/bluecove-users/7jWv1V1GC-4

その結果、最初のコメントの後にいくつかのコメントを投稿したハックを使用し、Mountain Lion IOBluetooth.framework を Lion IOBluetooth.framework に置き換えました。それがiOS側に大きな影響を与えるかどうかはわかりませんが、皆さんにお知らせする必要があると思いました.

PSS アクセサリのリストを出力するために使用しているコード: まだ何も返されておらず、protocolString もまだ使用されていないことに注意してください。

「Testing123」ログは表示されますが、「Device!」ログは表示されません。ログ

また、ここに私のinfo.Plistのスクリーンショットがあります:

ここに画像の説明を入力

0 投票する
0 に答える
1174 参照

bluetooth - ユーザーの操作なしで外部アクセサリBluetoothデバイスを接続する

showBluetoothAccessoryPickerWithNameFilterを使用したiOS6以降のEAAccessoryManagerクラスリファレンスによると、ユーザーがiAPoverBluetoothの一意のIDを含む外部アクセサリを接続するのに役立つアクセサリピッカーを表示できます。

次に、そのリストの外部アクセサリの1つをプログラムで接続します。

以下のサポートが必要です。

電話の範囲内にある外部デバイスをプログラムで接続するにはどうすればよいですか?

ユーザーの操作なしで、プログラムで外部デバイスに接続するにはどうすればよいですか?

ユーザーの電話の範囲内にある外部デバイスのリストをプログラムで取得するにはどうすればよいですか?

範囲内にあるが接続されていない外部デバイスのEAAccessoryオブジェクトのリストを取得するにはどうすればよいですか?

EAAccessoryオブジェクトをNSUserDefaultsに保存できますか?はいの場合、どうすればそれを行うことができますか?EAAccessory EAAccessoryはencodeWithCoderメソッドとinitWithCoderメソッドを実装していないため、NSUserDefaultsに格納することはできません。

BTLEを使用してこれを解決できますが、BTClassicでの解決策が必要です。