iPhoneの外部スイッチについて

iPhoneアプリの外部スイッチについて教えて下さい。
私はiPhoneアプリの開発を行っているのですが、iPhoneをタッチパネルのボタンで操作するのではなく、外部スイッチ(iPodリモコン等)で操作をしたいと考えています。
私は、現在iPodリモコンをさして試しているのですが、アプリの動作にかかわらずボタンを押すとiPodに直接つながってしまい、アプリに動作しません。
アプリを操作できる外部スイッチを知っている方、またiPodスイッチでのやり方を知っている方がいましたら、ぜひ教えて下さい。
よろしくお願いします。

iPhone 3GS, iOS 4

投稿日 2010/07/07 00:04

返信
返信: 10

2010/07/07 00:42 kiyoid への返信

iPhoneデベロッパ向けの技術文書で確認できたはずです。(どの文書か失念しましたが…)


方法1)Dockコネクタを使う方法

Dockコネクタに接続した機器の利用方法は、iPhone OS 3.0からデベロッパに解放されています。

ただし、汎用の機器は存在せず、各アプリが個々の機器に対応する必要があります。

つまり、「アプリを操作できる外部スイッチ」は存在せず、「特定のDock接続機器で操作できるアプリ」を開発することになります。

既存のiPodスイッチ類は音楽プレーヤ(モバイルミュージックプレーヤ=iPodアプリ)にOSレベルで紐付けられているので、アプリの操作には使用できません。


方法2)Bluetoothキーボードを使う方法

BluetoothキーボードはiOS 4からサポートされました。

アプリを開発する際に、特定のキーを特定の動作のトリガーとして指定しておけば、Bluetoothキーボードで操作できるはずです。

さらに、外部に対してBluetoothキーボードとして振る舞う専用Bluetooth機器を開発すれば、それをアプリの専用コントローラにできると思います。

2010/07/07 04:59 野尻隆裕 への返信

便乗質問です。

アプリを開発する際に、特定のキーを特定の動作のトリガーとして指定しておけば、Bluetoothキーボードで操作できるはずです。

矢印キーもトリガーに割り当てることは可能なのでしょうか?

これが問題ないのであれば、既存のBluetooth接続のプレゼンテーション用ポインティングデバイスでもAppのコントロールが可能になる(と思うのですが違うかな?)ので、Keynoteファイルを開くAppの開発は難しいかもしれないけどPDFファイルを開けるAppが無線のデバイスでページ送りとかできるようになれば こちらで話題にあがったiPadにプロジェクタをつないで簡単なプレゼンテーションというのも現実味を帯びてくるかと思うのですが・・・

2010/07/07 23:31 野尻隆裕 への返信

つまり、「アプリを操作できる外部スイッチ」は存在せず、「特定のDock接続機器で操作できるアプリ」を開発することになります。

早速のご返答ありがとうございました。


続けてご質問したのですが、今iPhone用のDock接続の外部スイッチとして発売されている物を見ると、通話ボタンのついたイヤホンマイクか、再生停止ボタンがついた音楽プレイヤー用のリモコンがあると思います。

「特定のDock接続機器で操作できるアプリ」と言うのは、たとえばリモコンの再生ボタンを押した時のイベントで、「音楽を再生する」という処理をするのではなく、「何かを開始したい」など自分のやりたい処理をさせれば良いということなのでしょうか?

初心者の質問ですみません。

どうぞよろしくお願いします。

2010/07/08 01:20 kiyoid への返信

先のコメントで「特定のDock接続機器で操作できるアプリ」を開発すると書きました。Dockコネクタを利用するアプリは、本来は次のように作ることになります。

1)Dockコネクタ付の機器を開発する。(既存のイヤホンマイクやiPodリモコンは不可)

2)開発した機器をコントロールする専用アプリを開発する。


既存の機器(医療機器や業務用機器など)をコントロールすることは不可能かというと、そんなことはありません。

1)既存の機器をコントロールする別のDockコネクタ付機器を開発する。

2)開発した機器をコントロールする専用アプリを開発する。


通話ボタンのついたイヤホンマイクか、再生停止ボタンがついた音楽プレイヤー用のリモコン


最初のコメントに書きましたように、これらの既存のDock接続機器は音楽プレーヤにOSレベルで紐付けられているので、別の種類のアプリでは使用できません。

つまり、アプリの操作中にこれらのボタンを操作すると、バックグラウンドの音楽プレーヤ(モバイルミュージックプレーヤ=iPodアプリ)が反応してしまいます。

または、ユーザーがインストールした別の音楽プレーヤが反応します。


たとえばリモコンの再生ボタンを押した時のイベントで、「音楽を再生する」という処理をするのではなく、「何かを開始したい」など自分のやりたい処理をさせれば良いということなのでしょうか?


上に書かれたように、アプリを開発する際にOSに対して音楽プレーヤの一種として振る舞うように作成すれば、これらの既存の機器で操作可能なはずです。

ただし、それはアプリの種類を詐称することになるので、Appleによる審査ではねられるかもしれません。こちらについては、私には何とも言えません。

2010/07/08 04:52 野尻隆裕 への返信

ポインティングデバイスはiPad/iPhoneに無視されます。


Bluetooth接続のマウスを持っていることを思い出し、接続を試みましたがiPod touch (iOS 4) からは検出すらされないのですね。

これはもしや・・・と思ったのですがどうやら企画倒れのようです。失礼いたしました m(_ _)m

2010/07/08 06:29 野尻隆裕 への返信

便乗で余計なことかも知れませんが、ご参考情報です。


方法3)ヘッドフォンミニジャックを使う方法

赤外線の送受信器を差し込んでリモコンの代わりに iPhone を使う面白い方法を見つけました。


http://thinkflood.com/products/redeye-mini/what-is-redeye-mini/


今春(4月)と言われていますが、まだ発売されていない様子です。

この仕組みを考えれば kiyoid さんの参考になるのではと思いました。

2010/07/20 23:18 野尻隆裕 への返信

皆さんどうもありがとうございました。

さっそく、スイッチ代わりにBluetoothのテンキー(小さいものが良かったのでキーボードではなくテンキーにしました)を買って、問題なく接続することが出来ました。

とてもためになりました。


ここでまた質問なのですが・・・。

キーボード(テンキー)からの入力を受け取るkeydownやkeypressといったキーボードを押した事を感知させる処理はiPhoneSDKでは出来るのでしょうか?

テキストフィールド内では出来たのですが、何もないところではよくわかりません。

自分でも調べているのですが、まだ見つからないので質問させていただきました。

毎回毎回、初心者質問で申し訳ありません。

どうぞよろしくお願いします。

2013/06/23 08:07 kiyoid への返信

「できマウス。」プロジェクトの町田です。

「できiPad。」というBluetooth対応のスイッチインターフェイスを開発し、販売しております。

スイッチ1個/2個/4個での操作をサポートしております。iPhoneでは、かかってきた電話にも対応できます。
カメラ撮影/音楽再生停止など・・・

http://dekimouse.org/wp/

http://www.facebook.com/dekimouse.org

なお、アプリをスイッチに対応させる場合は、共通仕様ができつつなりますので、上記facebookをご確認ください。

ご質問された時期からだいぶ日時が経過しており、申し訳ございません。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

iPhoneの外部スイッチについて

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。