(57)【要約】 【課題】携帯端末において実行されるソフトウェアが、外部から制御されることを前提に作成されたものでなくても、携帯端末を制御できる携帯端末制御装置を提供する。【解決手段】携帯端末制御装置は、携帯端末の外部に設けられた操作部への操作を受け付ける操作受付手段と、第２の操作部への操作内容を表す１以上の操作内容情報と前記携帯端末に発生させる操作イベントを表す１以上の操作イベント情報とを対応付けた対応情報を記憶する記憶手段と、記憶手段が記憶する対応情報に基づいて、操作受付手段が受け付けた第２の操作部への操作内容を表す操作内容情報に対応付けられた操作イベント情報を特定する特定手段と、備える。そして、特定手段が特定した操作イベント情報が表す操作イベントを携帯端末を制御して携帯端末に発生させる。【選択図】図７
2013211676.tif 000002
【特許請求の範囲】
【請求項１】
第１の操作部を備え、前記第１の操作部への操作に対応する操作イベントを発生させ、発生させた前記操作イベントに対応する処理を現在実行中のソフトウェア上で実行する携帯端末を外部から制御する携帯端末制御装置であって、
前記携帯端末の外部に設けられた第２の操作部への操作を受け付ける操作受付手段と、
前記第２の操作部への操作内容を表す１以上の操作内容情報と前記携帯端末に発生させる操作イベントを表す１以上の操作イベント情報とを対応付けた対応情報を記憶する記憶手段と、
前記記憶手段が記憶する前記対応情報に基づいて、前記操作受付手段が受け付けた前記第２の操作部への操作内容を表す操作内容情報に対応付けられた操作イベント情報を特定する特定手段と、
前記特定手段が特定した前記操作イベント情報が表す操作イベントを前記携帯端末に発生させることで、前記携帯端末に前記発生させた操作イベントに対応する処理を現在実行中のソフトウェア上で実行させる発生制御手段と、
を備えることを特徴とする携帯端末制御装置。
【請求項２】
前記携帯端末から出力される出力情報を取得し、取得した前記出力情報に基づいて、前記携帯端末において現在実行中のソフトウェア又はソフトウェアの種別を推定する推定手段を更に備え、
前記対応情報では、前記操作内容情報と前記操作イベント情報とがソフトウェア又はソフトウェアの種別ごとに対応付けられており、
前記特定手段は、前記対応情報に基づいて、前記操作受付手段が受け付けた前記第２の操作部への操作内容を表す操作内容情報に、前記推定手段が推定した前記ソフトウェア又はソフトウェアの種別に応じて対応付けられた前記操作イベント情報を特定する、
ことを特徴とする請求項１に記載の携帯端末制御装置。
【請求項３】
前記ソフトウェアは、前記携帯端末のＯＳ上で実行されるアプリケーションソフトウェアであり、
前記操作イベントは、前記ＯＳ上で発生し、
前記発生制御手段は、前記ＯＳ上に前記操作イベントを発生させる、
ことを特徴とする請求項１又は２に記載の携帯端末制御装置。
【請求項４】
前記対応情報における前記操作イベント情報の少なくとも１つは、前記携帯端末への第1の回数分の操作に対応して前記携帯端末に発生させる１以上の操作イベントを表し、
前記対応情報における前記操作内容情報の少なくとも１つは、前記第２の操作部を第２の回数操作した操作内容を表し、
前記第１の回数と前記第２の回数とは異なる回数である、
ことを特徴とする請求項１乃至３のいずれか１項に記載の携帯端末制御装置。
【請求項５】
前記対応情報における前記操作イベント情報の少なくとも１つは、第Ｎ（Ｎは自然数）番目に発生させる操作イベントと、前記Ｎ番目の操作イベントを発生させてから所定期間経過後に発生させる第Ｎ＋１番目の操作イベントとを少なくとも表す、
ことを特徴とする請求項１乃至４のいずれか１項に記載の携帯端末制御装置。
【請求項６】
前記対応関係の内容は、変更可能である、
ことを特徴とする請求項１乃至５のいずれか１項に記載の携帯端末制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯電話機などの携帯端末を外部から制御する携帯端末制御装置に関する。 
【背景技術】
【０００２】
例えば、特許文献１には、特に乗用車や二輪車等の自動車両内の少なくとも一つのモバイル端末を利用するシステムであって、前記少なくとも一つのモバイル端末と、車内に配置される表示装置と、車内に備えられる操作装置と、前記自動車両と前記モバイル端末間の通信用インタフェースとを有している、システムにおいて、前記モバイル端末および／または車内に備えられる端末統合装置に、端末シーケンス制御が備えられ、当該端末シーケンス制御は、前記モバイル端末の各種機能および／またはソフトウェア・アプリケーションを操作するための操作および／または表示表面を車両表示装置に呼び出すようになっていて、車両操作装置を介して操作されることを特徴とする、システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００８−５２３７４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記システムでは、携帯端末（モバイル端末）のソフトウェア・アプリケーションを操作するためには、ソフトウェア・アプリケーションが外部から制御されることが考慮されて作成されたものであることが前提となるが、携帯端末（モバイル端末）のソフトウェア・アプリケーションは、多様であり、外部から制御する場合に、前記の前提が必ずしも成り立つとは限らない。
【０００５】
本発明は、上記実情に鑑みてなされたものであり、携帯端末において実行されるソフトウェアが、外部から制御されることを前提に作成されたものでなくても、携帯端末を制御できる携帯端末制御装置を提供することを目的とする。 
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係る携帯端末制御装置は、 
第１の操作部を備え、前記第１の操作部への操作に対応する操作イベントを発生させ、発生させた前記操作イベントに対応する処理を現在実行中のソフトウェア上で実行する携帯端末を外部から制御する携帯端末制御装置であって、
前記携帯端末の外部に設けられた第２の操作部への操作を受け付ける操作受付手段と、
前記第２の操作部への操作内容を表す１以上の操作内容情報と前記携帯端末に発生させる操作イベントを表す１以上の操作イベント情報とを対応付けた対応情報を記憶する記憶手段と、
前記記憶手段が記憶する前記対応情報に基づいて、前記操作受付手段が受け付けた前記第２の操作部への操作内容を表す操作内容情報に対応付けられた操作イベント情報を特定する特定手段と、
前記特定手段が特定した前記操作イベント情報が表す操作イベントを前記携帯端末に発生させることで、前記携帯端末に前記発生させた操作イベントに対応する処理を現在実行中のソフトウェア上で実行させる発生制御手段と、
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、携帯端末において実行されるソフトウェアが、外部から制御されることを前提に作成されたものでなくても、携帯端末を制御できる。 
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施の形態に係る携帯端末制御装置、携帯端末、操作部、音響装置などの構成を説明する図である。
【図２】図１に示す携帯端末制御装置の構成図である。
【図３】図１に示す携帯端末の構成図である。
【図４】携帯端末を外部から制御するときの概要を示す制御図である。
【図５】携帯端末制御処理の一例を示すフローチャートである。
【図６】携帯端末の表示画面（ランチャソフト実行時）である。
【図７】実行中のアプリケーションが音楽再生ソフトであると推定された場合に参照される対応関係の一例を示す図である。
【図８】携帯端末の表示画面（音楽再生ソフト実行時）である。
【図９】実行中のアプリケーションが地図ソフトであると推定された場合に参照される対応関係の一例を示す図である。
【図１０】携帯端末の表示画面（地図ソフト実行時）である。
【図１１】携帯端末のログの一例を示す図である。
【図１２】携帯端末のログに基づいて現在実行中のアプリケーションソフトの種別を推定するためのプログラムの一部を示す図である。
【図１３】対応関係を定義するプログラムの記述の一例の一部を示す図である。
【発明を実施するための形態】
【０００９】
本発明の一実施の形態に係る携帯端末制御装置を説明する。
【００１０】
図１のように、本実施形態に係る携帯端末制御装置１００は、携帯端末３００と通信可能に接続されている。携帯端末制御装置１００は、自動車などの車両に搭載された車両用計器などである。携帯端末３００は、車両の運転手、同乗者などのユーザによって車両内に持ち込まれ、携帯端末制御装置１００にＵＳＢ（Universal Serial Bus）接続などで接続される。また、携帯端末制御装置１００は、ハンドルなどに設けられた操作部２００とも接続されている。携帯端末３００には、車両内に設けられた音響装置４００と接続される。携帯端末制御装置１００、操作部２００、携帯端末３００、及び、音響装置４００は、同じ車両内にある。
【００１１】
（携帯端末制御装置１００）
携帯端末制御装置１００は、第１指針式計器１０３、第２指針式計器１０７を備える。第１指針式計器１０３は、例えば、車両の車速を報知するスピードメータである。第２指針式計器１０７は、例えば、車両のエンジンの回転数を報知するタコメータである。また、携帯端末制御装置１００は、携帯端末３００が表示する表示画像などを表示する表示部１４０も備える。
【００１２】
携帯端末制御装置１００は、図２のように、第１指針駆動部１０５と、第２指針駆動部１０９と、制御部１１０と、記憶部１２０と、表示部１４０と、通信部１５０と、を備える。第１指針駆動部１０５と、第２指針駆動部１０９と、記憶部１２０と、表示部１４０と、通信部１５０と、は、それぞれが制御部１１０に接続されている。
【００１３】
第１指針駆動部１０５は、第１指針式計器１０３の指針を回転させるものであり、例えば、ステッピングモータなどによって構成される。
【００１４】
第２指針駆動部１０９は、第２指針式計器１０７の指針を回転させるものであり、例えば、ステッピングモータなどによって構成される。
【００１５】
制御部１１０は、例えば、制御部１１０が実行する処理（携帯端末制御装置１００全体の制御など）を実際に行うＣＰＵ（Central Processing Unit）と、ＣＰＵのメインメモリとして機能するＲＡＭ（Random Access Memory）と、制御部１１０に入出力される情報（信号）をＣＰＵ用にデジタルに変換したり出力用にアナログに変換したりする各種変換器と、を備える。制御部１１０は、ＣＰＵに加えて、制御部１１０が行う処理の一部をＣＰＵの代わりに実行するための各種専用回路（例えば、画像処理回路など）を備えても良い。
【００１６】
制御部１１０は、推定部１１０ａと、操作受付部１１０ｂと、特定部１１０ｃと、発生制御部１１０ｄと、を備え、これらは、特に制御部１１０によって実行される後述の処理を行う。本実施形態では、推定部１１０ａと、操作受付部１１０ｂと、特定部１１０ｃと、発生制御部１１０ｄと、は、制御部１１０を構成するＣＰＵなどが後述の処理を行うことによって実現されることになる。
【００１７】
記憶部１２０は、制御部１１０のＣＰＵに後述の処理を実行させる各種プログラム、制御部１１０が処理を実行する際に使用するデータなどを記憶する（詳しくは後述する。）。記憶部１２０は、フラッシュメモリなどのデータを書き換え可能な不揮発性記憶装置などを含んで構成される。記憶部１２０は、ＲＯＭ（Read Only Memory）などを含んでも良い。
【００１８】
制御部１１０の少なくとも一部（例えば、ＣＰＵとＲＡＭ）と記憶部１２０の少なくとも一部（例えば、ＲＯＭ）とは、例えば、ワンチップのマイクロコンピュータなどによって構成されるようにしてもよい。
【００１９】
表示部１４０は、画像を表示するものであり、液晶ディスプレイなどを含んで構成される。制御部１１０は、表示部１４０に画像信号を供給するなどして表示部１４０を制御し、表示部１４０に画像（画像信号などによって表される画像）を表示させる。
【００２０】
通信部１５０は、携帯端末３００に接続されるものであり、例えば、ＵＳＢコネクタなどから構成される。制御部１１０は、通信部１５０を介して、携帯端末３００と情報を送受信し、後述の処理を実行する。
【００２１】
制御部１１０にはＥＣＵ（Electric Control Unit）５０が接続され、制御部１１０は、ＥＣＵ５０と情報の送受信を行う。制御部１１０には第１指針駆動部１０５及び第２指針駆動部１０９が接続される。制御部１１０は、第１指針駆動部１０５及び第２指針駆動部１０９それぞれに各指針を回転させる駆動信号を供給することで、第１指針駆動部１０５及び第２指針駆動部１０９それぞれを駆動する。
【００２２】
例えば、ＥＣＵ５０は、車両の各センサによって車両の状態を検出し、車両の状態を表す各種情報を制御部１１０に供給する。例えば、ＥＣＵ５０は、車両の車速を表す車速情報を制御部１１０に供給する。制御部１１０は、ＥＣＵ５０から供給された車速情報に基づき、第１指針駆動部１０５を駆動し、第１指針式計器１０３の指針を回転させ、第１指針式計器１０３に車速を表示させる。例えば、ＥＣＵ５０は、車両のエンジン回転数を表す回転数情報を制御部１１０に供給する。制御部１１０は、ＥＣＵ５０から供給された回転数情報に基づき、第２指針駆動部１０９を駆動し、第２指針式計器１０７の指針を回転させ、第２指針式計器１０７にエンジン回転数を表示させる。
【００２３】
（操作部２００）
操作部２００は、車両のハンドルなどに設けられる。操作部２００は、図１に示すように、例えば、上方向ボタン２０１、下方向ボタン２０２、Ａボタン２０３、Ｂボタン２０４などを備える。各ボタンは、例えば、各種操作に用いられる（詳しくは後述する。）。操作部２００は、各ボタンに対応した検出スイッチなどを備え、ボタンが押下（操作）されたことに応答して、どのボタンが操作されたかなどを特定可能な操作情報（操作内容を表す操作情報）を制御部１１０に供給する。制御部１１０は、操作情報が供給されると、供給された操作情報に応じた後述の処理を行う。
【００２４】
なお、操作部２００の具体的構成は、上方向ボタン２０１、下方向ボタン２０２、Ａボタン２０３、Ｂボタン２０４に限らず、適宜の構成であればよい。操作部２００は、ジョグダイヤルや各種レバーなどであってもよい。操作部２００は、ユーザからの操作があった場合に、その操作内容を表す操作情報を制御部１１０に供給できればよい。
【００２５】
（携帯端末３００）
携帯端末３００は、スマートフォン（多機能携帯電話など）、タブレット型コンピューターなどであればよい。携帯端末３００の構成は、適宜の構成であればよい。
【００２６】
例えば、携帯端末３００は、図３のように、制御部３１０と、記憶部３２０、操作部３３０と、表示操作部３４０と、通信部３５０と、アンテナ３５１と、外部接続部３６０と、外部接続部３７０と、を備える。記憶部３２０、操作部３３０と、表示操作部３４０と、通信部３５０と、外部接続部３６０と、外部接続部３７０と、は、それぞれが制御部３１０に接続されている。
【００２７】
制御部３１０は、例えば、制御部３１０が実行する処理（携帯端末３００全体の制御など）を実際に行うＣＰＵと、ＣＰＵのメインメモリとして機能するＲＡＭと、制御部３１０に入出力される情報（信号）をＣＰＵ用にデジタルに変換したり出力用にアナログに変換したりする各種変換器と、を備える。制御部３１０は、ＣＰＵに加えて、制御部３１０が行う処理の一部をＣＰＵの代わりに実行するための各種専用回路（例えば、画像処理回路など）を備えても良い。
【００２８】
記憶部３２０は、制御部３１０のＣＰＵに後述の処理を実行させる各種プログラム、制御部３１０が処理を実行する際に使用するデータなどを記憶する（詳しくは後述する。）。記憶部３２０は、フラッシュメモリなどのデータを書き換え可能な不揮発性記憶装置などを含んで構成される。記憶部３２０は、ＲＯＭ（Read Only Memory）などを含んでも良い。
【００２９】
操作部３３０は、携帯端末３００の前面に設けられたエンターキー３３０ａ、方向入力キー（カーソル移動キー）３３０ｂ、ホームボタン３３０ｃ、終了ボタン３３０ｄと、各キー及びボタン３３０ａから３３０ｄそれぞれに対応した検出スイッチなどと、を備え、キー及びボタン３３０ａから３３０ｄのいずれかが押下操作されたことに応答して、どの操作ボタンが操作されたかを特定可能な操作情報（操作内容を表す操作情報）を制御部３１０に供給する。制御部３１０は、操作部３３０から供給された操作情報に基づいて、処理を実行する（詳しくは後述する）。操作部３３０の具体的構成は、上記に限らず、適宜の構成であればよい。操作部３３０は、ユーザからの操作があった場合に、その操作内容を表す操作情報を制御部３１０に供給できればよい。
【００３０】
表示操作部３４０は、例えば、各種タッチパネルによって構成されている。タッチパネルは、例えば、液晶ディスプレイや有機ＥＬディスプレイなどの各種表示装置と、静電容量式、感圧式などの各種方式の位置入力装置と、を備える。制御部３１０は、表示操作部３４０（表示装置）に画像信号を供給するなどして表示操作部３４０を制御し、表示操作部３４０に画像（例えば、画像信号によって表される画像）を表示させる。また、表示操作部３４０（位置入力装置）は、タッチパネルにおけるユーザの指の接触位置などを検出し、検出した前記接触位置などを特定可能な操作情報（操作内容を表す操作情報）を制御部３１０に供給する。制御部３１０は、表示操作部３４０から供給された操作情報に基づいて、処理を実行する。表示操作部３４０は、操作入力ができない表示装置からなる表示部として構成されてもよい。
【００３１】
この実施の形態では、操作部３３０と、表示操作部３４０の操作を受け付ける部分（位置入力装置など）と、によって、携帯端末３００におけるユーザからの操作を受け付ける操作部が構成されている。
【００３２】
通信部３５０は、各種復調器及び変調器を含み、例えば、アンテナ３５１を介してインターネットなどのネットワークに接続され、他の装置（例えば、ＷＥＢサーバ）からネットワークを介して供給された情報（プログラムも含む。）を受信して、制御部３１０に供給したり、制御部３１０が送信する情報を、ネットワークを介して他の装置に供給したりする。
【００３３】
外部接続部３６０は、車両内に設けられた後述の音響装置４００と接続されるものであり、ステレオピンジャック端子などから構成される。制御部３１０は、後述の音楽再生ソフトの実行時に、例えば、記憶部３２０に格納されている音楽データに基づいて音楽信号を生成して出力し、音楽信号を順次外部接続部３６０を介して音響装置４００に供給する。
【００３４】
外部接続部３７０は、携帯端末制御装置１００と接続されるものであり、例えば、ＵＳＢコネクタなどから構成される。制御部３１０は、外部接続部３７０を介して、携帯端末制御装置１００と情報を送受信する。
【００３５】
（音響装置４００）
音響装置４００は、車両内に設けられたカーオーディオなどであり、携帯端末３００と接続されるＡＵＸ端子などを備える。音響装置４００は、携帯端末３００（制御部３１０）からＡＵＸ端子などを介して供給される音楽信号をスピーカーに供給し、音楽信号が表す音楽を再生出力する。このようにして、携帯端末３００の記憶部３２０に記憶された音楽データが表す音楽は、音響装置４００を介して再生出力され、ユーザに聴取される。音響装置４００と携帯端末３００とは無線で通信、携帯端末３００の記憶部３２０に記憶された音楽データが表す音楽が無線通信によって音響装置４００を介して再生出力されるようにしてもよい。
【００３６】
（携帯端末３００、携帯端末制御装置１００の動作など）
携帯端末３００は、記憶部３２０に、携帯端末３００のプラットフォームを構成するＯＳ（Operating System）及びプログラムと、上記プラットフォームのＯＳ上で実行されるアプリケーションソフトと呼ばれるソフトウェア（プログラム）と、を記憶し、制御部３１０は、これらを実行して処理を行う。
【００３７】
アプリケーションソフトは、上記プラットフォームの一部などとして記憶部３２０に最初から記憶されているものの他、ユーザの選択によって、アンテナ３５１を介してインターネットなどのネットワークからダウンロードされ、記憶部３２０に格納される。
【００３８】
アプリケーションソフトは、例えば、音楽再生ソフトであったり、地図を表示する地図ソフト（ナビゲーションを行うナビソフトを含む）であったり、実行可能なアプリケーションソフト（携帯端末３００にインストールされているアプリケーションソフト）をアイコンで一覧表示するランチャーソフトであったりする。
【００３９】
プラットフォームは、例えば、「Android」（登録商標）であり、この実施の形態では、携帯端末３００は、所謂「アンドロイド携帯」である。なお、アンドロイド携帯では、デバックモードが用意されている。このデバックモードでは、アンドロイド携帯を外部から制御できる。以下では、携帯端末３００がデバックモードになっており、かつ、携帯端末３００と携帯端末制御装置１００とがＵＳＢ接続されていることを前提として説明を行う。携帯端末３００は、ユーザの設定によっては、ＵＳＢ接続されたときに自動でデバックモードになることも出来る。
【００４０】
携帯端末３００は、ユーザによって操作部３３０や表示操作部３４０が操作されると、その操作内容に応答した処理を実行するが、さらに、携帯端末制御装置１００からの指令に応答した処理も実行する。つまり、携帯端末３００は、携帯端末制御装置１００によっても制御される。以下、この制御について、図４を参照して説明する。
【００４１】
制御部３１０がアプリケーションソフト３０４を実行しているときにユーザが操作部３３０や表示操作部３４０を操作すると（操作Ｘ）、制御部３１０にはその操作内容を表す操作情報が供給される。制御部３１０は、ＯＳ３０３上で、操作部３３０から供給された操作情報に応じた操作イベントＺを発生させる。制御部３１０は、実行しているアプリケーションソフト３０４上で、ＯＳ３０３上で発生した操作イベントＺを解釈し、解釈した内容に応じた処理を行う。操作イベントＺに応じて行われる処理は、実行されているアプリケーションソフト毎に異なる。
【００４２】
ここで、携帯端末３００への１回の操作に対応して発生する操作イベントを１つの操作イベントと捉える。これは、操作イベントＺに限らず、全て操作イベントについて該当する。１つの操作イベントは、プログラム的には、１以上のプリミティブ（操作イベントを構成する単位の記述）の列で表される。例えば、エンターキー３３０ａを１回操作した場合（例えば、エンターキー３３０ａを押して離す操作）に発生する操作イベントは、エンターキー３３０ａが押されたことを示す第１プリミティブと、第１プリミティブの後に発生する、エンターキー３３０ａが離されたことを示す第２プリミティブと、からなる。例えば、表示操作部３４０の所定位置をタッチする操作（例えば、前記所定位置を指で触れて離す操作）を行う場合に発生する操作イベントは、表示操作部３４０に指が触れたことを示す第１プリミティブと、第１プリミティブの後に発生する、前記所定位置の座標を示す第２プリミティブと、第２プリミティブの後に発生する、表示操作部３４０から指が離れたことを示す第２プリミティブと、からなる。
【００４３】
例えば、制御部３１０は、アプリケーションソフト３０４として地図ソフトを実行している場合、制御部３１０は、表示操作部３４０に図１０に示す画像を表示しているものとする。このとき、操作Ｘとして、表示操作部３４０の領域Ｆ（地図拡大のマークを表示した領域）をユーザが指で触れて離した場合（タッチする操作を行った場合）、この領域Ｆの位置を示す操作情報が表示操作部３４０から制御部３１０に供給される。制御部３１０は、この操作情報に対応する操作イベント（領域Ｆへのタッチ操作を示す操作イベント）ＺをＯＳ３０３上で発生させる。地図ソフトを実行している制御部３１０は、この操作イベントＺを解釈し、この操作イベントＺに対応する処理として、領域Ｆ内の地図拡大のマークに対応した地図の拡大を実行する。このように、図１０に示す画面において、領域Ｆを指でタッチする操作が行われると、地図ソフトが表示する地図が拡大されることになる。同様にして、図１０に示す画面において、領域Ｇ（地図縮小のマークを表示した領域）を指でタッチする操作が行われると、地図が縮小されることになる。
【００４４】
一方、制御部３１０がアプリケーションソフト３０４を実行しているときにユーザが操作部２００を操作すると（操作Ｙ）、操作部２００から制御部１１０（操作受付部１１０ｂ）に、その操作内容を表す操作情報が供給される。制御部１１０（発生制御部１１０ｄ）は、供給された操作Ｙの操作情報に対応する操作イベントＺの発生指示を携帯端末３００に対して供給する。制御部１１０からの発生指示が携帯端末３００（制御部３１０）に供給されると、制御部３１０はイベント発生プログラム３０２を実行し、供給された発生指示に従って、ＯＳ３０３上に操作イベントＺを発生させる処理を行う。以下、携帯端末３００では、上記と同様の処理が行われ、操作イベントＺに応じた処理が実行されることになる。
【００４５】
イベント発生プログラムは、プラットフォームを構成するプログラムとして、記憶部３２０に記憶されている。イベント発生プログラムは、外部からの発生指示（例えば、いずれの操作イベントをＯＳ３０３上に発生させるかを指定する指示コマンドの形で送信される。）に応じて、発生指示が指示する操作イベントをＯＳ３０３上に発生させるプログラムである。このようなイベント発生プログラムとしては、モンキーテストを行うためのプログラム「Monkey」がある。制御部３１０は、イベント発生プログラムの実行を、発生指示の供給を契機として開始するか、携帯端末３００がデバックモードに設定されたことを契機として開始するか、ユーザによる携帯端末３００への操作（イベント発生プログラム実行開始を指示する操作）を契機として開始するなど、適宜のタイミングで開始する。
【００４６】
上記と同様に、制御部３１０が地図ソフトを実行している場合に、操作Ｙとして、操作部２００の上方向ボタン２０１がユーザによって押圧操作された場合、この上方向ボタン２０１が操作されたことを示す操作情報が操作部２００から制御部１１０（操作受付部１１０ｂ）に供給される。制御部１１０（特定部１１０ｃ）は、この操作情報に対応する操作イベント（ここでは、地図の拡大操作によって発生する操作イベント（領域Ｆのタッチを示す操作イベント）であるとする。）Ｚを特定する。制御部１１０（発生制御部１１０ｄ）は、操作イベントＺの発生指示を携帯端末３００に対して供給する。制御部１１０からの発生指示が携帯端末３００（制御部３１０）に供給されると、制御部３１０（イベント発生プログラムを実行する制御部３１０）は供給された発生指示に従って、ＯＳ３０３上に操作イベントＺを発生させる。以下、携帯端末３００では、上記と同様の処理が行われ、操作イベントＺに応じた処理が実行されることになる。このように、図１０に示す画面が表示されている場合に、操作部２００の上方向ボタン２０１が操作されると、地図ソフトが表示する地図が拡大されることになる。同様にして、図１０に示す画面が表示されている場合に、操作部２００の下方向ボタン２０２が操作されると、地図ソフトが表示する地図が縮小されることになる。
【００４７】
以上のように、操作部２００を操作すること（例えば、上方向ボタン２０１や下方向ボタン２０２の操作すること）によって、携帯端末３００を直接操作したとき（例えば、領域Ｆや領域Ｇをタッチする操作をしたとき）と同じ処理が携帯端末３００上で実行されることになる。
【００４８】
ところで、実行されるアプリケーションソフトによって、携帯端末３００への操作は異なるため、操作部２００への操作が同じであっても、実行中のアプリケーションソフトが何であるかに応じて携帯端末３００のＯＳ上で発生させる操作イベントを異ならせるようにするとよい。以下、これに対応した制御内容を説明する。
【００４９】
制御部１１０は、以下の処理を、例えば、携帯端末３００が携帯端末制御装置１００にＵＳＢ接続したことを契機として開始する。携帯端末３００（制御部３１０）は、携帯端末制御装置１００（制御部１１０）に対して、所定情報を出力可能である。特に、携帯端末３００（制御部３１０）は、表示操作部３４０が表示する表示画像を表す画像データを携帯端末制御装置１００（制御部１１０）に供給することができる。制御部１１０は、供給された画像データに基づいて、表示部１４０を制御し、表示操作部３４０の表示画像を表示部１４０に表示する。
【００５０】
制御部１１０の推定部１１０ａは、携帯端末３００から出力（供給）される所定情報（出力情報）に基づいて、推定部１１０ａは、前記出力情報が供給されるたびに、現在実行中のアプリケーションソフトを推定する処理を行う。アプリケーションソフトの推定方法は複数種ある。以下にその方法を例示する。下記の方法は組み合わせて使用してもよい。なお、推定部１１０ａは、アプリケーションソフトの推定値を取得することによって、現在実行中のアプリケーションを推定する。推定値は、現在実行しているアプリケーションソフトや現在実行しているアプリケーションの種別を特定可能な情報であればよい。
【００５１】
（方法１）
携帯端末３００の制御部３１０が、現在実行しているアプリケーションソフトを特定可能な情報（例えば、アプリケーションソフト名の情報などであり、以下ではアプリケーションソフト特定情報という。）を出力情報として推定部１１０ａに供給可能であれば、推定部１１０ａは、この出力情報を取得することで、実行中のアプリケーションソフトを推定できる。例えば、推定部１１０ａは、制御部３１０に対して、現在実行しているアプリケーションソフトのアプリケーションソフト特定情報を要求し、制御部３１０は、この要求に応じて、現在実行しているアプリケーションソフトのアプリケーションソフト特定情報を出力する。推定部１１０ａは、このアプリケーションソフト特定情報を取得し、取得したアプリケーションソフト特定情報をもって推定値とする。
【００５２】
（方法２）
携帯端末３００によってはランチャーソフトが用意されているものがある。ランチャーソフトが起動されると（つまり、制御部３１０がランチャーソフトの実行を開始すると）、制御部３１０は、例えば、表示操作部３４０に図６の画像を表示するものとする。ユーザは、表示された画像を見て、実行するアプリケーションのアイコンをタッチする操作を行うことで実行するアプリケーションソフトを選択する。ここで、ランチャーソフト実行時に表示されるアイコンの位置は固定である。このため、タッチ操作においてユーザが画面上のどの位置をタッチしたかが分かれば、ユーザが選択したアイコン、つまり、起動されたアプリケーションソフト（現在実行中のアプリケーションソフト）を特定できる。
【００５３】
例えば、携帯端末３００は、表示操作部３４０の操作状態（タッチ位置）を表す出力情報（例えば、表示操作部３４０への操作を表す操作イベントを表す情報など）を携帯端末制御装置１００に出力する。推定部１１０ａは、ランチャーソフトのアイコンの配置を表すアイコン配置情報を作成しておき、携帯端末３００から出力された出力情報を取得し、取得した出力情報が表す操作状態に対応するアイコン（タッチ位置に表示されているアイコン）をアイコン配置情報から特定し、特定したアイコンが表すアプリケーションソフトの推定値を記憶部１２０から取得する。
【００５４】
例えば、推定部１１０ａは、取得した出力情報が、図６における領域Ｍをタッチする操作を示すものであれば、地図ソフトが選択されたこと、つまり、起動したアプリケーションが地図ソフトであることを推定できる（地図ソフトの推定値を取得できる）。例えば、推定部１１０ａは、取得した出力情報が、図６における領域Ｎをタッチする操作を示すものであれば、音楽再生ソフトが選択されたこと、つまり、起動したアプリケーションが音楽再生ソフトであることを推定できる（音楽再生ソフトの推定値を取得できる）。
【００５５】
なお、ランチャーソフトで表示された各アイコンのうち起動したいアイコンを、方向入力キー３３０ｂを操作することで選択し、エンターキー３３０ａを操作することで現在選択されているアイコンのアプリケーションソフトを起動するようにしてもよい。この場合には、この方向入力キー３３０ｂ及びエンターキー３３０ａの操作状態に対応する推定値（方向入力キー３３０ｂ及びエンターキー３３０ａの操作状態によって特定される、ユーザが選択して起動されるアプリケーションソフトの推定値）を記憶部１２０から取得する。
【００５６】
（方法３）
上記のように、制御部１１０には、携帯端末３００が現在表示している画像の画像データが出力情報として供給されるので、推定部１１０ａは、この画像データを用いても現在実行されているアプリケーションソフトを推定できる。実行されるアプリケーションソフトによって、携帯端末３００に表示される表示画像は異なる。このため、推定部１１０ａは、供給された画像データが表す画像（表示画像）に、どのような画像が含まれるかなどを特定することによって、現在実行中のアプリケーションソフトを推定する。例えば、推定部１１０ａは、表示画像とアプリケーションソフト毎に用意されたテンプレート画像（そのアプリケーションソフトを実行した場合に表示される画像）とにおける特徴量の比較、表示画像とテンプレート画像とのパターンマッチングなどの処理を実行することによって、現在実行中のアプリケーションソフトを推定する。
【００５７】
特徴量の比較では、例えば、記憶部１２０には、アプリケーションソフトの推定値と、このアプリケーションの表示画像全体又は一部（表示画像の特徴的な部分の画像）からなるテンプレート画像の特徴量と、を対応付けたテーブルが記憶されており、推定部１１０ａは、携帯端末３００から供給される画像データに基づいて、この画像データが表す表示画像の特徴量を抽出するとともに、抽出した特徴量に基づいて、前記テーブルを参照し、抽出した特徴量とテーブルにおける各特徴量とを比較し、両者の差が所定の閾値未満となる特徴量（複数ある場合には、両者の差が最も小さい特徴量）があれば、この特徴量に対応付けられた推定値を取得する。これによって、携帯端末３００の表示画像が、どのアプリケーションソフトを実行したときに表示される画像（又は当該画像に類似する画像）を含むかによって、現在実行中のアプリケーションソフトを推定できる。
【００５８】
パターンマッチングでは、例えば、記憶部１２０には、アプリケーションソフトの推定値と、このアプリケーションソフトの表示画像全体又は一部（表示画像の特徴的な部分の画像）の画像データとを対応付けたテーブルが記憶されており、推定部１１０ａは、記憶部１２０に記憶された前記テーブルを参照し、当該テーブルにおける各画像データと、携帯端末３００から供給された画像データと、に基づいて、両画像のパターンマッチングを行う。記憶部１２０の画像データが表示画像の一部を表すものであれば、推定部１１０ａは、表示画像の一部同士のパターンマッチングを行う。
推定部１１０ａは、パターンマッチングによって得られる、比較対象の両画像の類似度（同一度）が予め設定された閾値以上であるか判別し、閾値以上であると判別した画像データがあれば、この画像データに対応する推定値を取得する。これによって、携帯端末３００の表示画像が、どのアプリケーションソフトを実行したときに表示される画像（又は当該画像に類似する画像）を含むかによって、現在実行中のアプリケーションソフトを推定できる。
【００５９】
（方法４）
アンドロイド携帯では、アプリケーション起動時など、その動作ごとにインテントと呼ばれるものが発行される。携帯端末３００は、このインテントも携帯端末制御装置１００に出力情報として供給可能である。インテントには、起動又は終了されるアプリケーションソフトが何であるかを特定できる情報が含まれているので、推定部１１０ａは、インテントを取得し、取得したインテントを解析することで、現在実行中のアプリケーションソフトを推定できる。
【００６０】
具体的には、携帯端末３００は、プラットフォームを構成するプログラムとして、インテントを取得し、取得したインテントを携帯端末制御装置１００に供給するプログラムを記憶部３２０に記憶している。このようなプログラムとしては、インテントを含むログを供給するプログラムである「logcat」がある。このプログラムは、携帯端末制御装置１００から起動を指示できる。
【００６１】
推定部１１０ａは、ＵＳＢ接続時に、前記プログラムの実行指示を携帯端末３００に供給し、制御部３１０は、この実行指示の供給によって、前記プログラムの実行を開始する。これによって、ＵＳＢ接続後、推定部１１０ａには、順次発行されたログ（インテント含む。）が順次供給されることになる。推定部１１０ａは、供給された（取得した）ログ（ログ中のインテント）を解析し、現在実行中のアプリケーションソフトを推定する。
【００６２】
図１１に「logcat」で供給されるログ（ログ中のインテント）の一部を示す（なお、図１１において、「I/ActivityManager( 2477)〜Launcher }」、「I/ActivityManager( 2477)〜 bnds=[581,368][710,478] }」、「I/ActivityManager( 2477)〜bnds=[410,368][539,478] }」、「I/ActivityManager( 2477)〜app.NavigationActivity）」は、一行の記述である。）。ログはインテント一つにつき一行出力される。新たに供給されるログの文字列を解析することで、特定のアプリケーションソフトの起動を推定する。例えば、「Starting activity」、または「Displayed activity」がログ中に現れ、且つ、「Maps」がログに含まれていることで地図ソフトの起動が、「Navi」がログに含まれていることでナビソフトの起動が推定できる。新たに供給されるログの中に「Starting activity」または「Displayed activity」が現れ、且つ、「Maps」も「Navi」も現れなければ、地図ソフトもナビソフトも起動していない、ことが推定できる。このような推定を行うプログラムの記述を図１２に示す。図１２の「setZoomable」が推定値（ここでは、ナビソフト及び地図ソフトを含む地図関係のアプリケーションソフトの種別を特定するデータ）になる。推定の方法はアプリケーションソフトによって変わる。記憶部１２０には、インテントに含まれる文字列と、この文字列が表すアプリケーションソフトの推定値と、を対応付けたテーブルが記憶され、推定部１１０ａは、テーブルにおける文字列が、新たに発行されたインテントに含まれるかを判別し、含まれる場合には、その文字列に対応する推定値を取得する。
【００６３】
（方法５）
アンドロイド携帯では、アプリケーションは仮想マシン「Dalvik VM」上で動いており、推定部１１０ａは、「Dalvik VM」に問い合わせを行い、現在実行中のアプリケーションを特定できる動作情報を携帯端末からの出力情報として、ＪＤＷＰ（Java（登録商標） Debug Wire Protocol）で取得できる。推定部１１０ａは、この動作情報を推定値として取得する。
【００６４】
方法１から方法５で推定できるアプリケーションソフトは、予め定められた特定のアプリケーションソフトのうちの１つである。推定部１１０ａは、前記出力情報が供給されるたびに、別プロセスあるいは別スレッドとして制御部１１０の他の部分（操作受付部１１０ｂ、特定部１１０ｃ、発生制御部１１０ｄなど）と非同期に動き、最新で取得した推定値をＲＡＭなどに保持する。
【００６５】
制御部１１０は、図５に示す携帯端末制御処理を実行することによって、携帯端末３００の制御を行う。この処理は、繰り返し行われる。なお、操作部２００への操作に応じて操作情報が供給されるが、操作受付部１１０ｂがこの操作情報を取得するものとする。
【００６６】
特定部１１０ｃは、推定部１１０ａが現在保持している推定値を取得し、今回取得した推定値が前回のステップＳ１で取得した推定値とは異なる（推定値が変化した）かを判別する（ステップＳ１）。なお、最初にステップＳ１を行うなど、以前に取得した推定値がない場合には、推定値が変化したと判別する（ステップＳ１；Ｙｅｓ）。推定値が変化した場合（ステップＳ１；Ｙｅｓ）、新たなアプリケーションソフトが起動されて実行されていることになるので、特定部１１０ｃは、このアプリケーションソフトに対応する対応関係を、これ以降に参照する対応関係としてセットする。例えば、記憶部１２０には、推定値と対応関係とが対応付けられたテーブルが記憶されており、特定部１１０ｃは、このテーブルを参照し、今回取得した推定値に対応付けられた対応関係を、以降で参照する対応関係としてＲＡＭなどに新たにセットする（ステップＳ２）。対応関係は、各拡張コードに、アプリケーションソフトに応じて携帯端末３００に発生させる１以上の操作イベントが対応付けられた情報である。対応関係は、推定値毎、つまり、アプリケーションソフト又はアプリケーションソフトの種別毎（例えば、地図を表示するアプリケーションソフトを１つの種別としたものなど）に１以上用意されていればよい。
【００６７】
ステップＳ２の実行後、又は、推定値が異ならない場合（ステップＳ１；Ｎｏ）、操作受付部１１０ｂは、操作部２００への操作に応じて供給されている１以上の操作情報に基づいて、この１以上の操作情報が表す１以上の操作（操作内容）が、現在セットされている対応関係に応じて定義されている拡張コードが成立したかを判別する（ステップＳ３）。拡張コードとは、操作部２００に含まれる操作ボタンなどを仮想的に増やしたコードであり、操作部２００の操作内容に割り当てられる。ステップＳ３は、例えば、有限オートマトン(FSM Finite State Machine)を用いた方法や、その他適宜のロジックを用いた方法で行われる。
【００６８】
この実施の形態では、操作内容が上方向ボタン２０１の押下操作（押して離す、以下、押下する操作などについても同様。）であれば、この操作内容に対応する拡張コードは「２７３」になる。操作内容が下方向ボタン２０２の押下操作であれば、この操作内容に対応する拡張コードは「２７４」になる。操作内容がＡボタン２０３の押下操作であれば、この操作内容に対応する拡張コードは「１３」になる。操作内容が所定期間内にＢボタン２０４を２回連続で押下する操作であれば、この操作内容に対応する拡張コードは「１５０」になる。操作内容が、所定期間内にＢボタン２０４を押下してＡボタン２０３を押下する連続操作であれば、この操作内容に対応する拡張コードは「２７５」になる。操作内容が、所定期間内にＡボタン２０３を押下してＢボタン２０４を押下する連続操作であれば、この操作内容に対応する拡張コードは「２７６」になる。拡張コードと操作内容との関係は、共通であるが、どの拡張コードが用いられるか（定義されているか）は、現在セットされている対応関係（現在の推定値）に応じて異なる。このため、操作受付部１１０ｂは、記憶部１２０に記憶された、対応関係（又は推定値）と拡張コードと操作内容とを対応付けたテーブルを参照するなどして、現在セットされている対応関係（現在の推定値）に応じて、１以上の操作情報が表す操作内容が拡張コードを完成させるものであるかを判定する。
【００６９】
この実施の形態では、拡張コードが成立していない場合（ステップＳ３；Ｎｏ）、ステップＳ１の処理が再度行われる。拡張コードが成立している場合（ステップＳ３；Ｙｅｓ）、特定部１１０ｃは、現在セットされている対応関係を参照し、操作受付部１１０ｂが完成したと判別した拡張コードに対応付けられた１以上の操作イベントを取得するとともに、発生制御部１１０ｄは特定部１１０ｃによって取得された１以上の操作イベントを携帯端末３００に発生させ（ステップＳ４）、携帯端末制御処理を終了する。携帯端末制御処理は、終了後に再度実行される。１以上の操作イベントは、ここでは、操作イベントが複数の場合には、発生順序も規定された一連の複数の操作イベントとなる。また、後述のように、一連の操作イベントの間に待機時間が含まれるようにしてもよい（例えば、この待機も操作イベントとして規定する。）。ステップＳ４において、操作受付部１１０ｂが完成したと判別した拡張コードに対応付けられた１以上の操作イベントが特定されない場合には、ステップＳ４はスキップされる。
【００７０】
図７に所定の音楽再生ソフト用の対応関係の一例を示す。現在の推定値が前記所定の音楽再生ソフトを示すものであれば、図７のような対応関係がセットされ、参照される。図７のように、この音楽再生ソフト用の対応関係では、拡張コードと、このソフトについて操作部２００への操作に応答して発生させる１以上の操作イベントと、が対応付けて格納されている。図８は、携帯端末３００において前記所定の音楽再生ソフトを実行したときに、表示操作部３４０に表示される表示画面である。なお、前記所定の音楽再生ソフトの実行中に再生される音楽データは、予め記憶部３２０に記憶されている。
【００７１】
拡張コードが「２７３」又は「２７４」の場合（操作部２００への操作内容が上方向ボタン２０１又は下方向ボタン２０２への押下操作である場合）、発生させる１以上の操作イベントは、方向入力キー３３０ｂの上方向又は下方向が押下操作されたこと（上方向の場合には音楽の再生音量を上げる操作、下方向の場合には音楽の再生音量を下げる操作）を示す操作イベントになる。
【００７２】
拡張コードが「１３」の場合（操作部２００への操作内容がＡボタン２０３への１回の押下操作である場合）、発生させる１以上の操作イベントは、エンターキー３３０ａが押下操作されたこと（つまり、音楽の停止中には音楽の再生を指示する操作又は音楽が再生中には音楽の停止を指示する操作）を示す操作イベントになる。
【００７３】
拡張コードが「１５０」の場合（操作部２００への操作内容が前記所定期間内におけるＢボタン２０４への２回連続の押下操作である場合）、発生させる１以上の操作イベントは、ホームボタン３３０ｃが操作されたこと（つまり、実行中のアプリケーションソフトを終了させ、ランチャーソフトを起動させ図６に示す画像（ホーム画面）を表示させることを指示する操作）を示す操作イベントと、その後１秒間待機すること（１秒間操作イベントを発生させないことを定義する操作イベント）と、表示操作部３４０の領域Ｍがタッチされたこと（つまり、地図ソフトを起動することを指示する操作）を示す操作イベントと、を含むもの（つまり、音楽再生ソフトを終了し、所定期間待機し、地図ソフトを起動する一連の操作を示す一連の操作イベント）になる。
【００７４】
拡張コードが「２７５」又は「２７６」の場合（操作部２００への操作内容が、所定期間内にＢボタン２０４を操作した後にＡボタン２０３を操作するもの、又は、所定期間内にＡボタン２０３を操作した後にＢボタン２０４を操作するもの、である場合）、発生させる１以上の操作イベントは、方向入力キー３３０ｂの右方向が押下操作されたこと（次の曲の頭出し再生を指示する操作）、又は、方向入力キー３３０ｂの左方向が押下操作されたこと（現在又は前の曲の頭出し再生を指示する操作）を示す操作イベントになる。
【００７５】
図９に所定の地図ソフト（又はナビソフトであってもよい。）用の対応関係の一例を示す。現在の推定値が前記所定の地図ソフトを示すものであれば、図９のような対応関係がセットされ、参照される。図９のように、この地図ソフト用の対応関係では、操作部２００への操作内容と、このソフトについて操作部２００への操作に応答して発生させる１以上の操作イベントと、が対応付けて格納されている。図１０は、地図ソフトを実行したときに、表示操作部３４０に表示される表示画面である。なお、地図ソフトの実行中に表示される地図の画像データは、適宜、通信部３５０からダウンロードされて使用される。
【００７６】
拡張コードが「２７３」又は「２７４」の場合（操作部２００への操作内容が上方向ボタン２０１又は下方向ボタン２０２への操作である場合）、発生させる１以上の操作イベントは、表示操作部３４０の領域Ｆ又はＧがタッチされたこと（つまり、地図の拡大又は縮小を指示する操作）を示す操作イベントになる。
【００７７】
拡張コードが「１３」の場合（操作部２００への操作内容が、Ａボタン２０３を操作するものである場合）、発生させる１以上の操作イベントは、ホームボタン３３０ｃが操作されたこと（つまり、実行中のアプリケーションソフトを終了させ、ランチャーソフトを起動させ図６に示す画像（ホーム画面）を表示させることを指示する操作）を示す操作イベントと、その後１秒間待機すること（１秒間操作イベントを発生させないことを定義する操作イベント）と、表示操作部３４０の領域Ｎがタッチされたこと（つまり、音楽再生ソフトを起動することを指示する操作）を示す操作イベントと、を含むもの（つまり、地図ソフトを終了し、音楽ソフトを起動する一連の操作を示す一連の操作イベント）になる。
【００７８】
ステップＳ４において、発生制御部１１０ｄは、特定部１１０ｃが特定した内容の１以上の操作イベントを携帯端末３００に発生させるコマンドを生成し、携帯端末３００に送信するなどして、携帯端末３００を制御し、携帯端末３００のＯＳ上に、特定部１１０ｃが特定した操作イベントを発生させる。携帯端末３００のイベント発生プログラムが「Monkey」である場合、発生制御部１１０ｄは、コマンドを、携帯端末３００、携帯端末制御装置１００それぞれのＴＣＰ（Transmission Control Protocol）ポート間で、ａｄｂプロトコルで送信する。以降、携帯端末３００では、イベント発生プログラムにより、操作イベントが発生する。こうして、操作部３３０や表示操作部３４０が操作されたときと同様の処理が、操作部２００への操作に応じて実行されることになる。上記対応関係における１以上の操作イベントが、所定期間の間、操作イベントを発生させないことを定義する操作イベントを含む場合、発生制御部１１０ｄは、この操作イベントに従って、この操作イベントが定義する所定期間だけ次の操作イベントの発生を指定するコマンドの送信を待機するなどして、この操作イベントが定義する、操作イベントを発生させない期間を確保する。
【００７９】
本実施形態では、上記の構成によって、携帯端末３００は、操作部３３０や表示操作部３４０を備え、これら操作部への操作に対応する操作イベントを発生させ、発生させた操作イベントに対応する処理を現在実行中のソフトウェア上で実行する。
【００８０】
さらに、本実施形態では、上記の構成によって、携帯端末３００の外部に設けられた操作部２００への操作を受け付ける操作受付部１１０ｂと、操作部２００への操作内容を表す複数の操作内容情報（本実施形態では拡張コード。なお、操作内容情報は１つであってもよい。操作内容情報は、操作内容を直接示す情報などであってもよい。）と携帯端末３００に発生させる操作イベントを表す１以上の操作イベント情報（本実施形態では１以上の操作イベント。なお、操作内容情報は１つであってもよい。操作イベント情報は、携帯端末３００に送信される前記コマンドなどで記述されてもよい。）とを対応付けた対応情報（本実施形態では、アプリケーションソフト毎に用意された対応関係の集合である。対応情報は、１つの対応関係から構成されるなどしてもよい。）を記憶する記憶部１２０と、記憶部１２０が記憶する対応情報に基づいて（本実施形態では、参照して）、操作受付部１１０ｂが受け付けた操作部２００への操作内容を表す操作内容情報に対応付けられた操作イベント情報を特定（本実施形態では「取得」）する特定部１１０ｃと、特定部１１０ｃが特定した操作イベント情報が表す操作イベントを携帯端末３００に発生させることで、発生させた操作イベントに対応する処理を前記携帯端末に現在実行中のソフトウェア上で実行させる発生制御部１１０ｄと、が設けられている。
【００８１】
本実施形態では、操作イベントの発生は、実行中のソフトウェアによらず行えるので、本実施形態のように、操作イベントを発生させることを指示するコマンドを携帯端末制御装置１００から携帯端末３００から供給することなどによって、操作イベントを外部から発生させ、操作イベントに応じた処理を携帯端末３００に行わせることで、携帯端末３００において実行されるソフトウェアが、外部から制御されることを前提に作成されたものでなくても、このソフトウェアを実行している携帯端末３００を、携帯端末制御装置１００を用いて制御できる。
【００８２】
また、本実施形態では、上記構成によって、携帯端末３００から出力される出力情報（画像データ、ログ、アプリケーションソフト特定情報などの実行中のソフトウェア又はソフトウェアの種別を特定するのに使用できる情報）を取得し、取得した出力情報に基づいて、携帯端末３００において現在実行中のソフトウェア又はソフトウェアの種別を推定する推定部１１０ａがさらに設けられている。そして、対応情報では、操作内容情報と操作イベント情報とがソフトウェア又はソフトウェアの種別ごとに対応付けられて記憶部１２０に記憶され（この実施の形態では、ソフトウェア又はソフトウェアの種別（同じ対応関係を用いることができるソフトウェアで区分けされた種別）ごとに対応関係が記憶部１２０に記憶されている。）、特定部１１０ｃは、前記対応情報に基づいて、操作受付部１１０ｂが受け付けた操作部２００への操作内容を表す操作内容情報に、前記推定手段が推定した前記ソフトウェア又はソフトウェアの種別に応じて対応付けられた操作イベント情報を特定する。
【００８３】
本実施形態では、上記のように、現在実行中のソフトウェアが推定され、対応情報では操作内容情報と操作イベント情報とがソフトウェア又はソフウェアの種別ごとに対応付けられている（本実施形態では、実行中のソフトウェアに応じて内容の異なる対応関係が用意されている）。携帯端末３００に実行されるソフトウェアは無数にあるが、前記対応情報を用意することで、例えば、操作部２００への操作方法に限りがあっても、操作部２００への操作に適切に対応した操作イベントを携帯端末３００に発生させることができる。上記実施の形態では、上方向ボタン２０１と下方向ボタン２０２とが、実行中のソフトウェアに応じて、音量の増減又は地図の拡大・縮小に割り当てられており、ユーザの感覚に合わせた処理が行われる。
【００８４】
ソフトウェアは、携帯端末３００のＯＳ上で実行されるアプリケーションソフトウェアであり、操作イベントはＯＳ上で発生し、発生制御部１１０ｄは、ＯＳ上に操作イベントを発生させることによって、操作イベントを容易に発生させることができ、携帯端末３００において実行されるソフトウェアが、外部から制御されることを前提に作成されたものでなくても、そのソフトウェアを実行中の携帯端末３００を、携帯端末制御装置１００を用いて制御できる。
【００８５】
上記実施形態のように、対応情報における操作イベント情報の少なくとも１つは、前記携帯端末への第1の回数分の操作に対応して前記携帯端末に発生させる１以上の操作イベントを表し、対応情報における操作内容情報の少なくとも１つは、第２の操作部を第２の回数操作した操作内容（例えば、所定期間において第２の操作部を第２の回数操作した操作内容）を表し、第１の回数と第２の回数とは異なる回数としてもよい。これによって、例えば、操作部２００への少ない操作で、それよりも多い複数の操作イベントを発生させて、操作部２００への操作の容易化を図ることができ、又、例えば、操作部２００への複数の操作で、それよりも少ない数の特定の操作イベントを発生させることができ、操作部２００の操作ボタンの数が少ないなど、１回の操作の種類が少ない操作部２００であっても、多彩な操作イベントの発生を実現できる。このように、操作部２００の操作と携帯端末３００に発生させるイベントは一対一である必要はない。例えば、一つの操作で複数の操作イベントを発生させてもよいし、逆に、複数の操作で一つの操作イベントを発生させてもよい。前者は運転に集中しなければならない操作者に代わって操作イベント列を発行するものである。また遅すぎる反応の反応速度を上げることにも応用出来る。後者は、操作部２００の操作ボタン数を仮想的に増やすことに相当する。複雑な組み合わせは運転の妨げになり好ましくないが、ダブルクリック、長押し、2つのボタンの同時押し等の単純な組み合わせは自然な操作体系に取り込みやすい。例えば、「戻る」ボタンの長押しを「ホーム」に割り当てると、「戻る」の連打と長押しが同じ結果になり自然である。また、速過ぎる反応の速度を落とすことにも利用出来る。
【００８６】
また、上記実施形態のように、対応情報における操作イベント情報の少なくとも１つは、第Ｎ（Ｎは自然数）番目に発生させる操作イベントと、Ｎ番目の操作イベントを発生させてから所定期間経過後に発生させる第Ｎ＋１番目の操作イベントとを少なくとも表すようにしてもよい。複数回の操作イベントを発生させるときに、操作イベントの発生間隔を所定期間確保することによって（例えば、上記実施形態のように、所定期間何もしない仮想的な操作イベントを定義することによって）、実際に発生させる操作イベントの発生間隔を所定期間確保することができ、ある操作イベントに対応する処理（例えば、ソフトウェアを終了させる処理、起動する処理など）が終わっていないのに、次の操作イベントが発生してしまうことを防止することが可能になる。例えば、メニュー階層の深い位置にある操作等、操作可能になるまで一定の時間を要する操作についての操作イベントも発生対象とすることができる。例えば、ブラウザアプリの「再読み込み」が「設定」メニューの中にあり、設定メニューが現れるまで０．５秒ほどかかるとき、再読み込みのための操作イベントは、「設定」、「「再読み込み」の位置でタッチ」等にそれぞれ対応するものとすればよく、「設定」と「「再読み込み」の位置でタッチ」との発生間隔を１秒などとすればよい。
【００８７】
本発明は、上記の実施の形態に限られず、上記の実施の形態について適宜の変形が可能である。例えば、上記対応情報やテーブル、プログラム（プラットフォーム、ＯＳ、アプリケーションソフトを含む。）、各種のデータ構造の具体的内容は上記実施形態で説明したものには限られない。
【００８８】
特にプログラムなどは、「Android」に限らず、上記と同様の必要な機能を実現する他のプログラムなどで構成されてもよい。
【００８９】
操作部２００は、携帯端末制御装置１００が備えるものであってもよい。
【００９０】
携帯端末３００と携帯端末制御装置１００とは、有線又は無線で、情報の送受信が可能なように接続されていればよい。
【００９１】
携帯端末制御処理では、拡張コードの完成の判別を最初に行っても良い。この場合には、アプリケーションソフトによらず、定義された全ての拡張コードを対象として、拡張コードの完成が判別される。拡張コードの完成まで、操作受付部１１０ｂは待機し、拡張コードの完成があってから特定部１１０ｃなどが処理を実行するようにしてもよい。なお、この場合に、アプリケーションソフトやその種別に応じて、前記で完成した拡張コードが使用されない（定義されない）場合には、特定部１１０ｃなどは、処理をスキップし、携帯端末制御処理が終了するようにしてもよい。
【００９２】
携帯端末制御装置１００は、乗り物に搭載される計器装置の他、乗り物に搭載される他の装置（例えば、カーオーディオなど）であってもよい。
【００９３】
推定部１１０ａに推定され、発生制御部１１０ｄによって発生した操作イベントに応じて処理を実行するアプリケーションソフトは、ＯＳによらないソフトウェアであってもよい。
【００９４】
また、複数のアプリケーションが同時に実行されている場合には、表で実行されているアプリケーションソフト（例えば、表示操作部３４０に画面が表示されているソフト）を推定対象、制御対象としてもよい。
【００９５】
また、上記では、操作イベントの発生間隔を予め設定された固定値としているが、例えば、ある操作イベントがアプリケーションソフトを起動する操作イベントの後に発生するものであれば、発生制御部１１０ｄは、推定部１１０ａが実行するパターンマッチング、特徴量を用いた処理と同様の処理などで、起動対象のアプリケーションソフトの表示画面が表示操作部３４０に表示されたかを判別し、表示されたと判別したことを契機として前記ある操作イベントを発生させるコマンドを携帯端末３００に送るなどして、前記ある操作イベントを発生させてもよい。
【００９６】
また、上記記憶部１２０に記憶された対応情報は、操作部２００などから変更（追加、削除含む）可能に構成してもよい。これによって、後から登場するアプリケーションソフトにも対応が可能になる。例えば、操作部２００を操作して対応情報の内容を変更する指示があると、制御部１１０は、操作に対応した内容で対応情報を変更する。
【００９７】
対応情報を変更可能にする場合には、対応情報をテーブルとするほか、プログラムで記述するとよい。特に、操作イベントを指定する部分（操作イベントを記述する部分）は、スクリプト言語で記述し、速度が要求される部分はコンパイラ言語とするとよい。これによって、内容変更が容易になる。
【００９８】
例として、対応情報を、Ｃ／Ｃ＋＋にスクリプト言語Ｌｕａを組み合わせたものとした場合について説明する。メインルーチンはＣ／Ｃ＋＋で記述し、操作イベントの発生を指示する定義を関数の一例としてＬｕａで記述する（図１３にその一部を示す。）。メインルーチンの初期化部分でＬｕａエンジンをオープンし、Ｌｕａで記述されたコマンドの定義を読み込む。コマンドの定義の読み込み先をＳＤカードやＵＳＢメモリ等のリムーバブルメディアの公開されたファイルフォーマットとすることもでき、これによって、ユーザ自身が書き換えることができる。更に、リムーバブルメディアから携帯端末制御装置１００の記憶部１２０に読み込んでおくことによって、メディアが挿入されていなくても実行できるようになる。
【００９９】
図１３の「ａｃｔｉｏｎ」が、操作内容と操作イベントの対応を保持する。図１３の推定値の結果を参照し、「ａｃｔｉｏｎ」に、推定値に応じた適切な対応の組（拡張コードの数字と、操作内容を示す情報と、を対応付けた対応関係）を代入（セット）する。「ｋｅｙ」（［］内の数字）は操作部２００から受信した操作部２００への１以上の操作の組み合わせで構成される上記の拡張コードである。対応する操作イベント（「ｏｎＫｅｙＥｎｔｅｒ」など）は、単なる関数で記述され、携帯端末３００に発生させる操作イベントは勿論、推定部１１０ａの結果の参照、条件判断、時間待ち等が組み合わせて記述されることが可能になっている。なお、「ｋｅｙ」と操作イベントも一対一である必要はない。図１３では「１３」と「３２」のｋｅｙを「ｏｎＫｅｙＥｎｔｅｒ」に対応させている。発生制御部１１０ｄは、特定部１１０ｃが操作イベント情報として「ｏｎＫｅｙＥｎｔｅｒ」を特定した場合には、この「ｏｎＫｅｙＥｎｔｅｒ」を定義する関数を記憶部１２０などから読み込み、関数に従って、「ｏｎＫｅｙＥｎｔｅｒ」に対応する操作イベント（例えば、エンターキーが押されたことを示す操作イベント）の発生を指示するコマンドを携帯端末３００に送信する。
【０１００】
図１３の例では、「ｏｎＫｅｙＥｎｔｅｒ」は、エンターキー３３０ａが押下操作された場合に発生する操作イベントであり、Ａボタン２０３が押下操作されたときの拡張コード「１３」などに対応付けられている。「ｏｎＫｅｙＵｐ」は、方向入力キー３３０ｂの上方向が押下操作された場合に発生する操作イベントであり、上方向ボタン２０１が押下操作されたときの拡張コード「２７３」に対応付けられている。「ｏｎＫｅｙＤｏｗｎ」は、方向入力キー３３０ｂの下方向が押下操作された場合に発生する操作イベントであり、下方向ボタン２０２が押下操作されたときの拡張コード「２７４」に対応付けられている。「ｏｎＫｅｙＲｉｇｈｔ」は、方向入力キー３３０ｂの右方向が押下操作された場合に発生する操作イベントであり、Ｂボタン２０４を押下操作した後にＡボタン２０３を押下操作する連続操作が所定期間内にされたときの拡張コード「２７５」に対応付けられている。「ｏｎＫｅｙｌｅｆｔ」は、方向入力キー３３０ｂの左方向が押下操作された場合に発生する操作イベントであり、Ａボタン２０３を押下操作した後にＢボタン２０４を押下操作する連続操作が所定期間内にされたときの拡張コード「２７６」に対応付けられている。
【符号の説明】
【０１０１】
１００  携帯端末制御装置
１１０  制御部
１１０ａ  推定部
１１０ｂ  操作受付部
１１０ｃ  特定部
１１０ｄ  発生制御部
２００  操作部
３００  携帯端末
３１０  制御部
３３０  操作部
３４０  表示操作部
【図１】
2013211676.tif 000003
【図２】
2013211676.tif 000004
【図３】
2013211676.tif 000005
【図４】
2013211676.tif 000006
【図５】
2013211676.tif 000007
【図６】
2013211676.tif 000008
【図７】
2013211676.tif 000009
【図８】
2013211676.tif 000010
【図９】
2013211676.tif 000011
【図１０】
2013211676.tif 000012
【図１１】
2013211676.tif 000013
【図１２】
2013211676.tif 000014
【図１３】
2013211676.tif 000015