(実施例1)
本開示を具体的に説明する前に、概要を述べる。本開示の実施例1は、車両に搭載される電子機器に関する。電子機器の一例は、ナビゲーション装置である。電子機器には、ナビゲーション機能を実行可能なアプリケーション、音楽あるいは映像の再生機能を実行可能なアプリケーション等が内部アプリケーションとしてインストールされている。また、電子機器は、無線あるいは有線により外部機器と通信可能である。外部機器の一例は、スマートフォンである。外部機器には、電子機器と接続している場合に内部アプリケーションと連携して動作する外部アプリケーションがインストールされている。例えば、外部アプリケーションにおいて目的地が設定されると、内部アプリケーションは当該目的地までの経路案内を実行する。また、外部アプリケーションにおいて再生すべき音楽が選択されると、内部アプリケーションは当該音楽を再生する。
このような外部アプリケーションと内部アプリケーションでは、新たな機能が追加される場合に、バージョンアップがなされる。内部アプリケーションのバージョンアップがなされた場合に、外部アプリケーションのバージョンアップがなされていなければ、新たな機能を使用できなかったり、2つのアプリケーションの接続ができなかったりする。これによりアプリケーションの信頼性が確保されなくなる。また、外部アプリケーションと内部アプリケーションでは、セキュリティホールが発見された場合、これを修正するための修正プログラムがバージョンアップとして配布される。このような状況において外部アプリケーションのバージョンアップがなされていなければ、セキュリティホールが残ったままになり、アプリケーションの信頼性が確保されなくなる。
信頼性を確保するために、バージョンアップが必要となるが、その際の操作性が容易である方が好ましい。そのため、信頼性を確保と操作性の容易さとの両立が求められる。信頼性を確保と操作性の容易さとを両立するために、本実施例にかかる電子機器は、接続可能な外部機器を予め設定する。電子機器は、内部アプリケーションの実行要求を外部機器から受信すると、当該外部機器が通信対象として設定されているか否かを判定する。設定されている場合、電子機器は、外部機器において実行される外部アプリケーションのバージョンを当該外部機器に確認する。確認したバージョンがしきい値よりも前のバージョンである場合、電子機器は、警告を報知する。例えば、「接続できません」等のメッセージが電子機器のモニタに表示される。これにより、外部機器のユーザは、外部アプリケーションのバージョンアップを容易に実行する。
図1は、車両10の車室内の構造を示す。車室の前方に配置されたダッシュボード50の前方にはウインドシールド52が配置される。ダッシュボード50の右側部分にステアリングホイール54が配置されるが、ステアリングホイール54は、ダッシュボード50の左側に配置されてもよい。ダッシュボード50の中央部分には上下方向に延びるセンターコンソール56が配置されており、センターコンソール56内には電子機器100が嵌め込まれる。センターコンソール56の上部には載置台60が設置される。載置台60は、外部機器300を支持する。外部機器300は、車両10の乗員によって把持されてもよい。外部機器300と電子機器100は無線あるいは有線により接続可能である。
図2は、車両10に搭載される電子機器100の構成と、外部機器300とサーバ400との構成を示す。電子機器100は、測位装置200、センサ210を接続可能であり、通信部110、処理部112、記憶部114、操作部116、表示部118を含む。処理部112は、受付部150、判定部152、確認部154、実行制御部156、報知部158を含む。外部機器300は、第1通信部310、処理部312、記憶部314、操作部316、表示部318、第2通信部320を含む。
電子機器100は、前述のごとく、ナビゲーション装置等であり、車両10に搭載される。電子機器100に接続された測位装置200は、GNSS(Global Navigation Satellite System)衛星からの信号をもとに車両10の位置を測位し、測位した位置情報を電子機器100に出力する。また、電子機器100に接続されたセンサ210は、車両10の周囲の環境を検出し、検出した結果(以下、「検出結果」)を電子機器100に出力する。センサ210には、例えば、赤外線センサ、超音波センサ、近接センサが使用される。また、センサ210は、撮像装置と一体化されていてもよく、撮像装置において撮像した映像に対して画像認識処理を実行する。これらには公知の技術が使用されればよいので、ここでは説明を省略する。
通信部110は、無線あるいは有線の通信を実行する。通信部110は、無線通信機能として、例えば、Bluetooth(登録商標)、無線LAN(Local Area Network)に対応する。記憶部114には、内部アプリケーションのプログラム(以下、「内部アプリケーション」という)が記憶される。内部アプリケーションは、例えば、ナビゲーション機能を実行可能なアプリケーション、音楽あるいは映像の再生機能を実行可能なアプリケーションであるが、これらが一体化されていてもよい。記憶部114は、内部アプリケーション以外の情報も記憶するが、それについては後述する。操作部116は、乗員によって操作されるインタフェースであり、例えばボタンである。また、操作部116は、後述の表示部118と一体化されてタッチパネルとして構成されてもよい。操作部116は乗員からの指示を受けつけ、受けつけた指示を処理部112に出力する。表示部118はモニタであり、処理部112から出力される映像、画像、メッセージを表示する。
このような構成において、処理部112の実行制御部156は、操作部116からの指示を受けつけると、記憶部114に記憶された内部アプリケーションを実行して、その結果を表示部118に表示する。内部アプリケーションがナビゲーション機能を実行可能である場合、実行制御部156は、内部アプリケーションを実行することによって、経路案内等の画面を表示部118に表示する。経路案内の際に、測位装置200からの位置情報、センサ210からの検出結果が使用される。また、内部アプリケーションが映像の再生機能を実行可能である場合、実行制御部156は、内部アプリケーションを実行することによって、再生された映像を表示部118に表示する。さらに、内部アプリケーションが音楽の再生機能を実行可能である場合、実行制御部156は、内部アプリケーションを実行することによって、再生された音楽をスピーカ(図示せず)から出力する。これらの内部アプリケーションの実行については公知の技術が使用されればよいので、ここでは説明を省略する。通信部110を介して外部機器300に接続される場合、実行制御部156は、外部機器300において実行される外部アプリケーションと連携して、内部アプリケーションを実行させることも可能である。
外部機器300は、前述のごとく、スマートフォン等である。第1通信部310は、電子機器100の通信部110と共通の通信方式に対応し、通信部110と通信可能である。第2通信部320は、無線通信を実行する。第2通信部320は、無線通信機能として、例えば、LTE(Long Term Evolution)、MAN(Metropolitan Area Network)に対応する。ここで、第2通信部320が対応する通信方式は、第1通信部310が対応する通信方式よりも、通信可能な距離が長い。第2通信部320は、サーバ400と通信可能である。
記憶部314には、外部アプリケーションのプログラム(以下、「外部アプリケーション」という)が記憶される。ここで、外部アプリケーションは、さまざまなアプリケーションのうち、内部アプリケーションと連携して動作するアプリケーションを示す。外部アプリケーションは、例えば、ナビゲーション機能を実行可能な内部アプリケーションに連携するアプリケーション、音楽あるいは映像の再生機能を実行可能な内部アプリケーションに連携するアプリケーションであるが、これらが一体化されていてもよい。記憶部314には、外部アプリケーション以外のアプリケーションが記憶されてもよいが、そのようなアプリケーションの説明は省略する。また、記憶部314は、アプリケーション以外の情報を記憶してもよい。
操作部316は、乗員によって操作されるインタフェースであり、例えばボタンである。また、操作部316は、後述の表示部318と一体化されてタッチパネルとして構成されてもよい。操作部316は乗員からの指示を受けつけ、受けつけた指示を処理部312に出力する。表示部318はモニタであり、処理部312から出力される映像、画像、メッセージを表示する。
サーバ400は、電子機器100において実行される内部アプリケーション、外部機器300において実行される外部アプリケーション、外部機器300に置いて実行される外部アプリケーション以外のアプリケーションを提供する。また、サーバ400は、これらのアプリケーションのうちの少なくとも1つに関連するデータを提供する。ここでは、サーバ400は、外部アプリケーションのバージョンアップ用のデータを管理する。また、サーバ400は、外部アプリケーションのバージョンを管理する。
以下では、このような構成において、乗員が外部機器300の外部アプリケーションを操作しながら、電子機器100の内部アプリケーションを起動させるまでの処理を説明する。乗員は、外部機器300の操作部316を使用して、外部アプリケーションの起動の指示を入力する。処理部312は、受けつけた指示にしたがって、記憶部314に記憶された外部アプリケーションを起動する。前述のごとく、外部アプリケーションは、内部アプリケーションと連携して動作するアプリケーションである。そのため、処理部312において実行されている外部アプリケーションは、内部アプリケーションの起動を要求するための信号(以下、「実行要求」という)を生成して、実行要求を第1通信部310に出力する。実行要求には、外部機器300を識別するための識別情報が含まれる。第1通信部310は実行要求を電子機器100に送信する。
電子機器100の通信部110は、実行要求を外部機器300から受信する。通信部110は、受信した実行要求を処理部112に出力する。処理部112の受付部150は、内部アプリケーションの実行要求を通信部110から受けつける。受付部150は、受けつけた実行要求を判定部152に出力する。判定部152は、実行要求を受付部150から受けつける。判定部152は、実行要求から識別情報を抽出する。判定部152は、抽出した識別情報が記憶部114に記憶されているか否かを判定する。ここで、記憶部114には、1つ以上の識別情報が予め記憶されている。この識別情報は、受付部150において実行要求を受けつけた内部アプリケーションの通信対象として設定された外部機器300を示す。そのため、判定部152は、実行要求を送信した外部機器300が設定されているか否かを判定するともいえる。外部機器300が通信対象として設定されていないと判定した場合、判定部152は、処理を終了する。一方、外部機器300が通信対象として設定されていると判定した場合、判定部152は、実行要求を確認部154に出力する。
確認部154は、実行要求を確認部154から受けつけた場合、外部機器300において実行される外部アプリケーションのバージョンが示された情報の送信を要求するための信号(以下、「バージョン要求」という)を通信部110に出力する。ここで、外部アプリケーションのバージョンが示された情報は、「バージョン情報」とも呼ばれる。通信部110は、バージョン要求を確認部154から受けつけると、バージョン要求を外部機器300に送信する。
外部機器300の第1通信部310は、バージョン要求を電子機器100から受信する。第1通信部310は、受信したバージョン要求を処理部312に出力する。処理部312において実行されている外部アプリケーションは、バージョン要求を受けつけると、当該外部アプリケーションのバージョン情報を第1通信部310に出力する。第1通信部310は、受けつけたバージョン情報を電子機器100に送信する。
電子機器100の通信部110は、バージョン情報を外部機器300から受信する。通信部110は、受信したバージョン情報を確認部154に出力する。記憶部114は、バージョンに対するしきい値を記憶する。このしきい値は、内部アプリケーションと連携した場合に、問題なく動作する外部アプリケーションのバージョンとして予め設定される。例えば、処理部112は、通信部110、外部機器300を介してサーバ400に接続し、サーバ400からしきい値を取得して記憶部114に記憶する。また、処理部112は、通信部110とは別に、サーバ400に接続可能な通信部を備え、当該通信部を介してサーバ400に接続し、サーバ400からしきい値を取得して記憶部114に記憶してもよい。
確認部154は、バージョン情報を通信部110から受けつけると、記憶部114に記憶されたしきい値を取得する。確認部154は、バージョン情報に示されたバージョンと、しきい値とを比較する。確認部154は、バージョンがしきい値以降のバージョンである場合、内部アプリケーションの実行を決定し、内部アプリケーションの実行を実行制御部156に指示する。一方、確認部154は、バージョンがしきい値よりも前のバージョンである場合、警告の報知を報知部158に指示する。
実行制御部156は、内部アプリケーションの実行を確認部154から指示された場合、内部アプリケーションを実行する。内部アプリケーションの実行については、前述の通りであるが、ここでは、通信部110を介して外部機器300での外部アプリケーションと連携する。例えば、外部アプリケーションに対して操作部316から入力された指示が第1通信部310、通信部110を介して実行制御部156に入力され、内部アプリケーションは当該指示に応じた処理を実行する。また、内部アプリケーションの処理の結果が通信部110、第1通信部310を介して処理部312に入力され、外部アプリケーションは当該結果を表示部318に表示する。
報知部158は、警告の報知を確認部154から指示された場合、警告を表示部118に表示する。報知部158は、警告に対応した音声をスピーカ(図示せず)から出力してもよい。図3(a)-(b)は、表示部118に表示される警告を示す。図3(a)では、「こちらのソフトバージョンでは接続できません」とのメッセージが表示される。これは、接続不可能が示される警告を表示することに相当する。図3(b)では、「こちらのソフトバージョンでは接続しても一部機能は使用できません」、「接続しますか」とのメッセージとともに、「はい」と「いいえ」のボタンが表示される。これは、内部アプリケーションの一部機能の使用不可能が示される警告を表示することに相当する。図2に戻る。乗員は、接続する場合に操作部116を操作して「はい」ボタンを選択し、接続しない場合に操作部116を操作して「いいえ」ボタンを選択する。確認部154は、選択結果を操作部116から受けつける。選択結果が「はい」である場合、確認部154は、内部アプリケーションの実行を実行制御部156に指示する。一方、選択結果が「いいえ」である場合、確認部154は処理を終了する。
図4(a)-(b)は、表示部118に表示される別の警告を示す。図4(a)では、図3(a)と同様の「こちらのソフトバージョンでは接続できません」とのメッセージに加えて、「最新のソフトにバージョンアップして接続しますか」とのメッセージも表示される。さらに、「はい」と「いいえ」のボタンが表示される。これは、外部アプリケーションのバージョンアップを促すための警告を表示することに相当する。図2に戻る。乗員は、バージョンアップしない場合に操作部116を操作して「いいえ」ボタンを選択し、バージョンアップする場合に操作部116を操作して「はい」ボタンを選択する。確認部154は、選択結果を操作部116から受けつける。選択結果が「いいえ」である場合、確認部154は処理を終了する。選択結果が「はい」である場合、確認部154は、外部機器300に対してバージョンアップを指示するための信号(以下、「バージョンアップ指示」という)を通信部110に出力する。通信部110は、バージョンアップ指示を外部機器300に送信する。
外部機器300の第1通信部310は、バージョン指示を電子機器100から受信する。第1通信部310は、受信したバージョン指示を処理部312に出力する。処理部312において実行されている外部アプリケーションは、バージョン指示を受けつけると、バージョンアップを要求するための信号(以下、「バージョンアップ要求」という)を第2通信部320に出力する。第2通信部320は、バージョンアップ要求をサーバ400に送信する。サーバ400は、バージョンアップ要求を外部機器300から受信すると、新しいバージョンへの更新プログラムを外部機器300に送信する。
外部機器300の第2通信部320は、更新プログラムをサーバ400から受信する。第2通信部320は、更新プログラムを処理部312に出力する。処理部312は、更新プログラムにより外部アプリケーションを更新する。この処理が、外部アプリケーションのバージョンアップに相当する。バージョンアップがなされた外部アプリケーションは、当該外部アプリケーションのバージョン情報を第1通信部310に出力する。第1通信部310は、受けつけたバージョン情報を電子機器100に送信する。
確認部154は、バージョン情報を通信部110から受けつけると、記憶部114に記憶されたしきい値を取得する。確認部154は、バージョン情報に示されたバージョンと、しきい値とを比較する。確認部154は、バージョンがしきい値以降のバージョンであるので、内部アプリケーションの実行を決定し、内部アプリケーションの実行を実行制御部156に指示する。
図4(b)では、図3(b)と同様の「こちらのソフトバージョンでは接続しても一部機能は使用できません」とのメッセージに加えて、図4(a)と同様の「最新のソフトにバージョンアップして接続しますか」とのメッセージも表示される。さらに、「バージョンアップして接続」、「バージョンアップせずに接続」、「接続しない」のボタンが表示される。これも、外部アプリケーションのバージョンアップを促すための警告を表示することに相当する。図2に戻る。
乗員は、バージョンアップする場合に操作部116を操作して「バージョンアップして接続」ボタンを選択し、バージョンアップせずに接続する場合に操作部116を操作して「バージョンアップせずに接続」ボタンを選択する。また、乗員は、接続しない場合に操作部116を操作して「接続しない」ボタンを選択する。確認部154は、選択結果を操作部116から受けつける。選択結果が「バージョンアップして接続」である場合、確認部154は、図4(a)において選択結果が「はい」である場合と同様の処理を実行する。選択結果が「バージョンアップせずに接続」である場合、確認部154は、図3(b)において選択結果が「はい」である場合と同様の処理を実行する。選択結果が「接続しない」である場合、確認部154は、図3(b)において選択結果が「いいえ」である場合と同様の処理を実行する。
以下では、確認部154における別の処理を説明する。確認部154は、バージョン情報に示されたバージョンと、しきい値とを比較する。確認部154は、バージョンがしきい値以降のバージョンである場合、これまでと同様に、内部アプリケーションの実行を決定し、内部アプリケーションの実行を実行制御部156に指示する。一方、確認部154は、バージョンがしきい値よりも前のバージョンである場合、バージョンがしきい値から所定の間隔以内である(以下、「第1状態」という)か、バージョンがしきい値から所定の間隔よりも前である(以下、「第2状態」という)かを判定する。第2状態は第1状態よりも古いバージョンであることに相当する。
図5(a)-(b)は、表示部118に表示されるさらに別の警告を示す。図5(a)は、確認部154において第1状態であると判定された場合の画面を示す。「現在のソフトバージョンでは接続できません。古いソフトバージョンのため、バージョンアップを推奨します。最新のソフトにバージョンアップして接続しますか。」とのメッセージが表示される。さらに、「はい」、「いいえ」のボタンが表示される。図2に戻る。乗員は、バージョンアップする場合に操作部116を操作して「はい」ボタンを選択し、接続しない場合に操作部116を操作して「いいえ」ボタンを選択する。確認部154は、選択結果を操作部116から受けつける。選択結果が「はい」である場合、確認部154は、図4(a)において選択結果が「はい」である場合と同様の処理を実行する。選択結果が「いいえ」である場合、確認部154は、図4(a)において選択結果が「いいえ」である場合と同様の処理を実行する。
図5(b)は、確認部154において第2状態であると判定された場合の画面を示す。「現在のソフトバージョンでは接続できません。非常に古いソフトバージョンのため、早急にバージョンアップすることを推奨します。最新のソフトにバージョンアップして接続しますか。」とのメッセージが表示される。さらに、「はい」、「いいえ」のボタンが表示される。図2に戻る。乗員は、バージョンアップする場合に操作部116を操作して「はい」ボタンを選択し、接続しない場合に操作部116を操作して「いいえ」ボタンを選択する。確認部154は、選択結果を操作部116から受けつける。選択結果が「はい」である場合、確認部154は、図4(a)において選択結果が「はい」である場合と同様の処理を実行する。選択結果が「いいえ」である場合、確認部154は、図4(a)において選択結果が「いいえ」である場合と同様の処理を実行する。このように、報知部158は、確認部154において確認したバージョンとしきい値との違いに応じて警告の内容を変更する。
これまで、通信部110と第1通信部310との間では、無線あるいは有線による通信が実行されている。以下では、通信部110と第1通信部310との間において2種類の通信が実行されてもよい。2種類の通信の一方を第1の通信回線と呼ぶ場合、他方は第2の通信回線と呼ばれる。例えば、第1の通信回線が無線通信回線であり、第2の通信回線が有線通信回線である。このような構成において、第1の通信回線を使用して、内部アプリケーションと外部アプリケーションとが連携して動作している間に、第1の通信回線による通信品質が悪化した場合、通信部110と第1通信部310は、第1の通信回線を第2の通信回線に切りかえる。例えば、通信部110あるいは第1通信部310の一方が通信品質の悪化を検出した場合に、他方に対して通信回線の切替を要求する。通信部110あるいは第1通信部310の他方が、通信回線の切替に承認した場合、通信部110と第1通信部310は、通信回線を切りかえる。その結果、第2の通信回線を使用して、内部アプリケーションと外部アプリケーションとが連携して動作する。一方、第2の通信回線がない場合、通信部110は第1の通信回線を切断し、報知部158は、警告を操作部116に表示させる。当該警告では、第1の通信回線が切断されたことが示される。
この構成は、ハードウエア的には、任意のコンピュータのCPU(Central Processing Unit)、メモリ、その他のLSI(Large Scale Integration)で実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ハードウエアとソフトウエアの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
以上の構成による電子機器100と外部機器300とサーバ400の動作を説明する。図6は、電子機器100と外部機器300とサーバ400による処理手順を示すシーケンス図である。外部機器300は、実行要求を電子機器100に送信する(S10)。電子機器100は設定を確認し(S12)、設定されているのでバージョン要求を外部機器300に送信する(S14)。外部機器300は、バージョン情報を電子機器100に送信する(S16)。電子機器100は、バージョンがしきい値よりも前のバージョンであることを確認する(S18)。電子機器100は、警告を報知する(S20)。電子機器100は、バージョンアップ指示を外部機器300に送信し(S22)、外部機器300は、バージョンアップ要求をサーバ400に送信する(S24)。サーバ400は、更新プログラムを外部機器300に送信し(S26)、外部機器300は、バージョンアップを実行してから、バージョン情報を電子機器100に送信する(S28)。電子機器100は、内部アプリケーションを実行する(S30)。
図7は、電子機器100による処理手順を示すフローチャートである。受付部150は、実行要求を受けつける(S100)。判定部152において、外部機器300が設定されていると判定された場合(S102のY)、確認部154は、外部アプリケーションのバージョンを確認する(S104)。バージョンがしきい値以降である場合(S106のY)、実行制御部156は内部アプリケーションを実行する(S108)。バージョンがしきい値以降でない場合(S106のN)、報知部158は、警告を報知する(S110)。外部機器300が設定されていないと判定された場合(S102のN)、処理が終了される。
図8は、電子機器100による接続手順を示すフローチャートである。通信部110は、内部アプリケーションと外部アプリケーションとの通信を実行する(S150)。通信部110は、通信回線を切断する(S152)。別の通信回線がある場合(S154のY)、通信部110は、別の通信回線での再接続を実行する(S156)。別の通信回線がない場合(S154のN)、報知部158は、警告を報知する(S158)。
本開示の実施例によれば、外部機器が通信対象として設定されている場合、外部アプリケーションのバージョンがしきい値よりも前のバージョンであれば、警告を報知するので、古いバージョンのアプリケーションの使用を知らせることができる。また、古いバージョンのアプリケーションの使用が知らされるので、信頼性を確保できる。また、古いバージョンのアプリケーションの使用が自動的に知らされるので、操作性を容易にできる。また、外部機器が通信対象として設定されている場合、外部アプリケーションのバージョンがしきい値よりも前のバージョンであれば、警告を報知するので、2つのアプリケーションを接続する場合に、信頼性の確保と操作性の容易さとを両立できる。
また、接続不可能が示される警告を報知するので、接続不可能を知らせることができる。また、内部アプリケーションの一部機能の使用不可能が示される警告を報知するので、内部アプリケーションの一部機能の使用不可能を知らせることができる。また、外部アプリケーションのバージョンアップを促すための警告を報知するので、バージョンアップをさせやすくできる。また、バージョンとしきい値との違いに応じて警告の内容を変更するので、バージョンの古さの程度を知らせることができる。また、バージョンの古さの程度が知らされるので、バージョンアップを促すことができる。また、第1の通信回線による通信品質が悪化した場合、第1の通信回線を第2の通信回線に切りかえるので、通信品質が悪化しても2つのアプリケーションの連携を継続できる。
(実施例2)
次に、実施例2を説明する。実施例2は、実施例1と同様に、車両に搭載される電子機器に関する。また、電子機器における内部アプリケーションと、外部機器における外部アプリケーションとが連携して動作する。このようなアプリケーションの信頼性を確保するために、電子機器は、内部アプリケーションの実行要求を外部機器から受信すると、当該外部機器が通信対象として設定されているか否かを判定する。電子機器は、設定されている場合に内部アプリケーションを実行するが、設定されていない場合に内部アプリケーションを実行しない。このような処理を実現するために、電子機器において、通信対象として外部機器が予め設定されなければならない。さらに、電子機器の通信対象として複数の外部機器が存在する場合、各外部機器を電子機器に予め設定しなければならない。乗員に対する操作性の容易さを考慮すると、このような設定が容易になされる方が望ましい。
信頼性を確保と操作性の容易さとを両立するために、本実施例にかかる電子機器は、1つの外部機器(以下、「第1外部機器」という)を通信対象として設定せず、別の1つの外部機器(以下、「第2外部機器」という)を予め設定する。ここで、第1外部機器を携帯する第1乗員と、第2外部機器を携帯する第2乗員とが車両に乗車する状況を想定する。第1乗員が第1外部機器を操作して外部アプリケーションを起動させる。外部アプリケーションは、電子機器の内部アプリケーションと連携して動作するために、内部アプリケーションの実行要求を電子機器に送信する。電子機器は、内部アプリケーションの実行要求を第1外部機器から受信すると、第1外部機器が通信対象として設定されているか否かを判定する。電子機器は、第1外部機器が通信対象として設定されていないので、接続している第2外部機器に対して、第1外部機器と通信してよいか否かを確認する。確認の結果、第1外部機器と通信してよければ、電子機器は、内部アプリケーションを起動する。これにより、電子機器の内部アプリケーションと第1外部機器の外部アプリケーションとが連係して動作する。ここではこれまでとの差異を中心に説明する。
図9は、車両10に搭載される電子機器100の構成と、外部機器300の構成を示す。電子機器100は、外部機器300と総称される第1外部機器300a、第2外部機器300bと通信可能である。電子機器100と通信可能な外部機器300の数は「3以上」であってもよい。電子機器100は、測位装置200、センサ210を接続可能であり、通信部110、処理部112、記憶部114、操作部116、表示部118を含む。処理部112は、受付部150、判定部152、確認部154、実行制御部156を含む。外部機器300は、処理部312、記憶部314、操作部316、表示部318、通信部330を含む。
前述のごとく、電子機器100の記憶部114には、1つ以上の識別情報が予め記憶されている。この識別情報は、受付部150において実行要求を受けつけた内部アプリケーションの通信対象として設定された外部機器300を示す。ここでは、第1外部機器300aの識別情報は記憶部114に記憶されていないが、第2外部機器300bの識別情報は記憶部114に記憶されている。
以下では、このような構成において、第1乗員が第1外部機器300aの外部アプリケーションを操作しながら、電子機器100の内部アプリケーションを起動させるまでの処理を説明する。第1乗員は、第1外部機器300aの操作部316を使用して、外部アプリケーションの起動の指示を入力する。処理部312は、受けつけた指示にしたがって、記憶部314に記憶された外部アプリケーションを起動する。処理部312において実行されている外部アプリケーションは、実行要求を通信部330に出力する。実行要求には、第1外部機器300aを識別するための識別情報が含まれる。通信部330は実行要求を電子機器100に送信する。
電子機器100の通信部110は、実行要求を第1外部機器300aから受信する。通信部110は、受信した実行要求を処理部112に出力する。処理部112の受付部150は、内部アプリケーションの実行要求を通信部110から受けつける。受付部150は、受けつけた実行要求を判定部152に出力する。判定部152は、実行要求を受付部150から受けつける。判定部152は、実行要求から識別情報を抽出する。当該識別情報は、第1外部機器300aの識別情報である。判定部152は、抽出した識別情報が記憶部114に記憶されているか否かを判定する。そのため、判定部152は、実行要求を送信した第1外部機器300aが設定されているか否かを判定するともいえる。第1外部機器300aが通信対象として設定されていると判定した場合、判定部152は、内部アプリケーションの実行を決定し、内部アプリケーションの実行を実行制御部156に指示する。第1外部機器300aが通信対象として設定されていないと判定した場合、判定部152は、第1外部機器300aの確認を確認部154に指示する。
確認部154は、第1外部機器300aの確認の指示を判定部152から受けつける。確認部154は、記憶部114を参照して、第2外部機器300bが通信対象として設定されていることを確認する。確認部154は、第2外部機器300bに対して、第1外部機器300aと通信してよいか否かを確認するための信号(以下、「確認要求」という)を通信部110に出力する。確認要求には、第1外部機器300aの識別情報が含まれる。通信部110は、確認要求を第2外部機器300bに送信する。
第2外部機器300bの通信部330は、確認要求を電子機器100から受信する。通信部330は、確認要求を処理部312に出力する。処理部312は、受けつけた確認要求から、第1外部機器300aの識別情報を抽出する。処理部312は、識別情報をもとに、第1外部機器300aと通信してよいか否かを判定する。例えば、記憶部314に記憶された外部アプリケーションに、内部アプリケーションと通信可能な外部機器300の識別情報が設定されており、処理部312は、設定された識別情報に、第1外部機器300aの識別情報が含まれているかを判定する。処理部312は、第1外部機器300aの識別情報が含まれている場合、第1外部機器300aと通信してよいと判定し、第1外部機器300aの識別情報が含まれていない場合、第1外部機器300aと通信してはならないと判定する。
また、処理部312は、第1外部機器300aの識別情報が電話帳アプリケーションに登録されている場合、第1外部機器300aと通信してよいと判定してもよい。一方、処理部312は、第1外部機器300aの識別情報が電話帳アプリケーションに登録されていない場合、第1外部機器300aと通信してはならないと判定してもよい。電話帳アプリケーションは、外部アプリケーション以外のアプリケーションに相当する。
さらに、処理部312は、第1外部機器300aと通信してよいか否かを第2乗員に問い合わせるためのメッセージを表示部318に表示してもよい。当該メッセージを確認した第2乗員は、操作部316を操作して、第1外部機器300aと通信してよいか否かを入力する。処理部312は、第1外部機器300aと通信してよいか否かの入力を操作部316から受けつける。処理部312は、第1外部機器300aと通信してよいか否かが示された信号(以下、「確認応答」という)を通信部330に出力する。通信部330は、確認応答を電子機器100に送信する。つまり、確認部154から確認を要求された第2外部機器300bは、外部アプリケーション内の設定をもとに、第1外部機器300aと通信してよいか否かを応答する。また、確認部154から確認を要求された第2外部機器300bは、外部アプリケーション以外のアプリケーション内の設定をもとに、第1外部機器300aと通信してよいか否かを応答してもよい。
電子機器100の通信部110は、確認応答を第2外部機器300bから受信する。通信部110は、受信した確認応答を確認部154に出力する。確認部154は、確認応答を受けつける。確認部154は、受けつけた確認応答から、第1外部機器300aと通信してよいか否かを確認する。確認応答において、第1外部機器300aと通信してはならないと示されている場合、確認部154は処理を終了する。一方、確認応答において、第1外部機器300aと通信してよいと示されている場合、確認部154は、内部アプリケーションの実行を決定し、内部アプリケーションの実行を実行制御部156に指示する。
実行制御部156は、内部アプリケーションの実行を確認部154から指示された場合、内部アプリケーションを実行する。内部アプリケーションは、第1外部機器300aの外部アプリケーションと連携して動作する。本実施例においても、通信部110と通信部330との間において2種類の通信が実行されてもよい。このような構成において、第1の通信回線を使用して、内部アプリケーションと外部アプリケーションとが連携して動作している間に、第1の通信回線による通信品質が悪化した場合、通信部110と通信部330は、第1の通信回線を第2の通信回線に切りかえる。
図10は、電子機器100による処理手順を示すフローチャートである。受付部150は、実行要求を受けつける(S200)。実行要求の送信元になる外部機器300が設定されていると判定部152が判定した場合(S202のY)、実行制御部156は、内部アプリケーションを実行する(S208)。実行要求の送信元になる外部機器300が設定されていないと判定部152が判定した場合(S202のN)、設定された外部機器300が通信部110に接続されていれば(S204のY)、接続された外部機器300に対して、実行要求の送信元になる外部機器300との通信が許可されているかを確認部154が確認する(S206)。許可されている場合(S206のY)、実行制御部156は、内部アプリケーションを実行する(S208)。設定された外部機器300が通信部110に接続されていない場合(S204のN)、あるいは許可されていない場合(S206のN)、処理は終了される。
本実施例によれば、第1外部機器が通信対象として設定されていないと判定した場合、通信対象として設定されている第2外部機器に対して、第1外部機器と通信してよいか否かを確認するので、第1外部機器を接続する際の信頼性を確保できる。また、第1外部機器が通信対象として設定されていないと判定した場合、通信対象として設定されている第2外部機器に対して、第1外部機器と通信してよいか否かを確認するので、第1外部機器に対する設定を不要にできる。また、第1外部機器に対する設定が不要になるので、操作性を容易にできる。また、第1外部機器が通信対象として設定されていないと判定した場合、通信対象として設定されている第2外部機器に対して、第1外部機器と通信してよいか否かを確認するので、信頼性の確保と操作性の容易さとを両立できる。
また、第2外部機器は、外部アプリケーション内の設定をもとに、第1外部機器と通信してよいか否かを応答するので、信頼性の確保と操作性の容易さとを両立できる。また、第2外部機器は、外部アプリケーション以外のアプリケーション内の設定をもとに、第1外部機器と通信してよいか否かを応答するので、信頼性の確保と操作性の容易さとを両立できる。また、第1の通信回線による通信品質が悪化した場合、第1の通信回線を第2の通信回線に切りかえるので、通信品質が悪化しても2つのアプリケーションの連携を継続できる。
本開示の一態様の概要は、次の通りである。本開示のある態様の電子機器は、外部機器において実行される外部アプリケーションと連携して動作する内部アプリケーションを実行可能な電子機器であって、内部アプリケーションの実行要求を外部機器から受けつける受付部と、受付部において実行要求を受けつけた内部アプリケーションの通信対象として、実行要求を送信した外部機器が設定されているか否かを判定する判定部と、判定部において、外部機器が通信対象として設定されていると判定した場合、外部機器において実行される外部アプリケーションのバージョンを確認する確認部と、確認部において確認したバージョンがしきい値以降のバージョンである場合、内部アプリケーションを実行する実行制御部と、確認部において確認したバージョンがしきい値よりも前のバージョンである場合、警告を報知する報知部と、を備える。
この態様によると、外部機器が通信対象として設定されている場合、外部アプリケーションのバージョンがしきい値よりも前のバージョンであれば、警告を報知するので、2つのアプリケーションを接続する場合に、信頼性の確保と操作性の容易さとを両立できる。
報知部は、接続不可能が示される警告を報知してもよい。この場合、接続不可能が示される警告を報知するので、接続不可能を知らせることができる。
報知部は、内部アプリケーションの一部機能の使用不可能が示される警告を報知してもよい。この場合、内部アプリケーションの一部機能の使用不可能が示される警告を報知するので、内部アプリケーションの一部機能の使用不可能を知らせることができる。
報知部は、外部アプリケーションのバージョンアップを促すための警告を報知してもよい。この場合、外部アプリケーションのバージョンアップを促すための警告を報知するので、バージョンアップをさせやすくできる。
報知部は、確認部において確認したバージョンとしきい値との違いに応じて警告の内容を変更してもよい。この場合、バージョンとしきい値との違いに応じて警告の内容を変更するので、バージョンの古さの程度を知らせることができる。
外部機器との通信を実行する通信部をさらに備えてもよい。通信部は、第1の通信回線による通信品質が悪化した場合、第1の通信回線とは異なった第2の通信回線に切りかえてもよい。この場合、第1の通信回線による通信品質が悪化した場合、第1の通信回線を第2の通信回線に切りかえるので、通信品質が悪化しても2つのアプリケーションの連携を継続できる。
本開示の別の態様もまた、電子機器である。この電子機器は、外部機器において実行される外部アプリケーションと連携して動作する内部アプリケーションを実行可能な電子機器であって、内部アプリケーションの実行要求を第1の外部機器から受けつける受付部と、受付部において実行要求を受けつけた内部アプリケーションの通信対象として、実行要求を送信した第1の外部機器が設定されているか否かを判定する判定部と、判定部において、第1の外部機器が通信対象として設定されていないと判定した場合、通信対象として設定されている第2の外部機器に対して、第1の外部機器と通信してよいか否かを確認する確認部と、確認部において、第1の外部機器と通信してよいことを確認した場合、内部アプリケーションを実行する実行制御部と、を備える。
この態様によると、第1の外部機器が通信対象として設定されていないと判定した場合、通信対象として設定されている第2の外部機器に対して、第1の外部機器と通信してよいか否かを確認するので、信頼性の確保と操作性の容易さとを両立できる。
確認部から確認を要求された第2の外部機器は、第2の外部機器における外部アプリケーション内の設定をもとに、第1の外部機器と通信してよいか否かを応答してもよい。この場合、第2の外部機器は、外部アプリケーション内の設定をもとに、第1の外部機器と通信してよいか否かを応答するので、信頼性の確保と操作性の容易さとを両立できる。
確認部から確認を要求された第2の外部機器は、第2の外部機器における外部アプリケーション以外のアプリケーション内の設定をもとに、第1の外部機器と通信してよいか否かを応答してもよい。この場合、第2の外部機器は、外部アプリケーション以外のアプリケーション内の設定をもとに、第1の外部機器と通信してよいか否かを応答するので、信頼性の確保と操作性の容易さとを両立できる。
第1の外部機器および第2の外部機器との通信を実行する通信部をさらに備えてもよい。通信部は、第1の通信回線による通信品質が悪化した場合、第1の通信回線とは異なった第2の通信回線に切りかえてもよい。この場合、第1の通信回線による通信品質が悪化した場合、第1の通信回線を第2の通信回線に切りかえるので、通信品質が悪化しても2つのアプリケーションの連携を継続できる。
本開示のさらに別の態様は、処理方法である。この方法は、外部機器において実行される外部アプリケーションと連携して動作する内部アプリケーションを実行可能な電子機器における処理方法であって、内部アプリケーションの実行要求を外部機器から受けつけるステップと、実行要求を受けつけた内部アプリケーションの通信対象として、実行要求を送信した外部機器が設定されているか否かを判定するステップと、外部機器が通信対象として設定されていると判定した場合、外部機器において実行される外部アプリケーションのバージョンを確認するステップと、確認したバージョンがしきい値以降のバージョンである場合、内部アプリケーションを実行するステップと、確認したバージョンがしきい値よりも前のバージョンである場合、警告を報知するステップと、を備える。
以上、本開示を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素あるいは各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本開示の範囲にあることは当業者に理解されるところである。
実施例1と2の任意の組合せも有効である。本変形例によれば、任意の組合せによる効果を得ることができる。