(57)【要約】【課題】第１のアプリケーションから連携起動された第２のアプリケーションに自動的にデータを移行させる。【解決手段】情報処理装置１００のＣＰＵ１０１は、第１のアプリケーションからの第２のアプリケーションの起動要求を受け付けると、第１のアプリケーションから第２のアプリケーションに受け渡すデータを取得し、第２のアプリケーションが情報処理装置１００にインストールされているか否かを判定する。ＣＰＵ１０１は、第２のアプリケーションが情報処理装置１００にインストールされていない場合に、第２のアプリケーションを外部機器からダウンロードし、インストールして起動する。ＣＰＵ１０１は更に、第１のアプリケーションから取得したデータを起動した第２のアプリケーションに自動的に引き継ぐことで第２のアプリケーションでの処理の実行を可能にする。【選択図】図２
2018116632.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
第１のアプリケーションからの第２のアプリケーションの起動要求を受け付ける受け付け手段と、
前記第１のアプリケーションから前記第２のアプリケーションに受け渡すデータを取得する取得手段と、
前記第２のアプリケーションが前記情報処理装置にインストールされているか否かを判定する判定手段と、
前記第２のアプリケーションが前記情報処理装置にインストールされていると前記判定手段により判定された場合に該第２のアプリケーションを起動し、前記第２のアプリケーションが前記情報処理装置にインストールされていないと前記判定手段により判定された場合に前記第２のアプリケーションをインストールして起動する起動手段と、
前記起動手段により起動された前記第２のアプリケーションに前記取得手段が取得したデータを自動的に引き継ぎ、前記第２のアプリケーションでの前記データに対する処理の実行を可能にする実行手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記第１のアプリケーションから起動する第２のアプリケーションのバージョンを指定する指定手段と、
前記情報処理装置に前記第２のアプリケーションがインストールされている場合に該第２のアプリケーションのバージョンを検出する検出手段と、を備え、
前記判定手段は、前記検出手段が検出した第２のアプリケーションのバージョンが前記指定手段により指定されたバージョンであるか否かを更に判定し、
前記検出手段により検出された第２のアプリケーションのバージョンが前記指定手段により指定されたバージョンでないと前記判定手段により判定された場合に、前記起動手段は前記指定されたバージョンの第２のアプリケーションを前記情報処理装置にインストールして起動することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置に前記第２のアプリケーションがインストールされている場合に該第２のアプリケーションのバージョンを検出する検出手段と、
前記第２のアプリケーションの最新バージョンを確認する確認手段と、を備え、
前記判定手段は、前記検出手段が検出した前記第２のアプリケーションのバージョンが前記確認手段により確認された最新バージョンであるか否かを更に判定し、
前記検出手段により検出された前記第２のアプリケーションのバージョンが前記確認手段により確認された最新バージョンでないと前記判定手段により判定された場合に、前記起動手段は、前記最新バージョンの第２のアプリケーションをインストールして起動することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第２のアプリケーションを前記情報処理装置へインストールすることができない場合に、前記第２のアプリケーションと互換性のある第３のアプリケーションを選択する選択手段を更に備え、
前記起動手段は、前記第２のアプリケーションに代えて前記第３のアプリケーションを前記情報処理装置にインストールして起動し、
前記実行手段は、前記起動された第３のアプリケーションに前記取得手段が取得したデータを自動的に引き継ぎ、前記第３のアプリケーションでの前記データに対する処理の実行を可能にすることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第２のアプリケーションが前記情報処理装置にインストールされていないと前記判定手段により判定された場合に、前記情報処理装置のユーザに前記第２のアプリケーションの前記情報処理装置へのインストールを促す通知を表示手段に表示する通知手段を更に備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
外部機器と通信する通信手段を備え、
前記起動手段は、前記通信手段を用いて前記第２のアプリケーションを前記外部機器からダウンロードして前記情報処理装置にインストールすることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記判定手段は、前記通信手段を介して外部機器に格納されている前記第２のアプリケーションを実行することが可能な場合には、前記第２のアプリケーションは前記情報処理装置にインストールされていると判定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
情報処理装置の制御方法であって、
第１のアプリケーションからの第２のアプリケーションの起動要求を受け付ける受け付けステップと、
前記第１のアプリケーションから前記第２のアプリケーションに受け渡すデータを取得する取得ステップと、
前記第２のアプリケーションが前記情報処理装置にインストールされているか否かを判定する判定ステップと、
前記第２のアプリケーションが前記情報処理装置にインストールされていると判定された場合に該第２のアプリケーションを起動し、前記第２のアプリケーションが前記情報処理装置にインストールされていないと判定された場合に前記第２のアプリケーションをインストールして起動する起動ステップと、
起動された前記第２のアプリケーションに前記取得ステップで取得したデータを自動的に引き継ぎ、前記第２のアプリケーションでの前記データに対する処理の実行を可能にする実行ステップと、を有することを特徴とする情報処理装置の制御方法。
【請求項９】
コンピュータを請求項１乃至７のいずれか１項に記載の情報処理装置の各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションを連携起動する情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
スマートフォンやタブレット型ＰＣ等の情報処理装置では、簡単にアプリケーションをシステムにインストールして使用可能とするオペレーティングシステム（ＯＳ）が用いられている。また、このような情報処理装置では、複数のアプリケーションをインストールし、インストールした各アプリケーションに別々の機能を持たせて連携動作させることも可能となっている。
【０００３】
ここで、情報処理装置に用いられているＯＳには、連携元アプリケーションから連携先アプリケーションを指定して起動する連携起動機能を有し、連携起動の際にデータを受け渡すインテント機能を有するものがある。しかし、所定のデータを連携先アプリケーションに渡すために連携元アプリケーションから連携先アプリケーションを起動しようとしたが、連携先アプリケーションが未インストールの場合がある。この場合、ユーザが、急遽、連携先アプリケーションをインストールして起動したとしても、連携先アプリケーションは、連携元アプリケーションで使用していたデータを受け取ることができない。
【０００４】
そこで、複数のアプリケーションの連携起動が可能な情報処理装置に関して、特許文献１には、以下のような技術が提案されている。即ち、情報処理装置の制御部（起動要求受付部）は、連携元アプリケーションから連携先アプリケーションの起動要求を受け付け、起動要求情報を記憶して保持する。続いて、制御部は、アプリケーション配信サーバへ連携先アプリケーションのダウンロードを要求し、ダウンロードした連携先アプリケーションを情報処理装置のシステムにインストールする。そして、制御部は、記憶保持しておいた起動要求情報を用いて、連携先アプリケーションに起動要求を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２４３２６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載された技術では、連携先アプリケーションがインストールされて起動しても、連携先アプリケーションは自動的に連携元アプリケーションからデータを受け取ることはできない。したがって、ユーザは、連携元アプリケーションが使用していたデータを、連携先のアプリケーションの起動後に手動で読み込む必要がある。
【０００７】
本発明は、第１のアプリケーションから連携起動された第２のアプリケーションに対して、第１のアプリケーションのデータを自動的に移行させることができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、第１のアプリケーションからの第２のアプリケーションの起動要求を受け付ける受け付け手段と、前記第１のアプリケーションから前記第２のアプリケーションに受け渡すデータを取得する取得手段と、前記第２のアプリケーションが前記情報処理装置にインストールされているか否かを判定する判定手段と、前記第２のアプリケーションが前記情報処理装置にインストールされていると前記判定手段により判定された場合に該第２のアプリケーションを起動し、前記第２のアプリケーションが前記情報処理装置にインストールされていないと前記判定手段により判定された場合に前記第２のアプリケーションをインストールして起動する起動手段と、前記起動手段により起動された前記第２のアプリケーションに前記取得手段が取得したデータを自動的に引き継ぎ、前記第２のアプリケーションでの前記データに対する処理の実行を可能にする実行手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、情報処理装置において、第１のアプリケーションから連携起動された第２のアプリケーションに対して、第１のアプリケーションで処理していたデータを自動的に移行させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図２】情報処理装置で複数のアプリケーションを連携起動する第１実施形態に係る処理のフローチャートである。
【図３】第２のアプリケーションがインストール済みの場合のアプリケーション連携起動の一例を説明する図である。
【図４】第２のアプリケーションが未インストールの場合のアプリケーション連携起動の一例を説明する図である。
【図５】第１のアプリケーションから第２のアプリケーションに渡されるデータの構成を説明する図である。
【図６】情報処理装置で複数のアプリケーションを連携起動する第２実施形態に係る処理のフローチャートである。
【図７】情報処理装置で複数のアプリケーションを連携起動する第３実施形態に係る処理のフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。本発明に係る情報処理装置としては、具体的には、スマートフォンや携帯電話等の情報通信端末、各種のパーソナルコンピュータ（タブレット型、ラップトップ型、デスクトップ型等）等が挙げられるが、これらに限定されるものではない。
【００１２】
図１は、本発明の実施形態に係る情報処理装置１００の概略構成を示すブロック図である。情報処理装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ディスプレイ１０４、タッチパネル１０５、カメラ１０６、リムーバブルメディア１０７及び通信モジュール１０８を備え、これらはシステムバス１０９を介して通信可能に接続されている。ＣＰＵ１０１は、ＲＯＭ１０２に格納されている所定のプログラムを実行することにより、後述する複数のアプリケーションの連携起動処理を実現し、また、情報処理装置１００を構成する各部の動作を制御することにより情報処理装置の全体的な動作を制御する。
【００１３】
ＲＯＭ１０２は、ＣＰＵ１０１が情報処理装置１００での各種の動作を制御するためのプログラムやパラメータ等を記憶する記憶手段である。ＲＡＭ１０３は、ＣＰＵ１０１がＲＯＭ１０２から読み出したプログラムを展開する作業領域と、ＣＰＵ１０１による演算処理の実行中に生成される各種データを一時的に記憶する記憶領域を有する記憶手段である。また、ＲＡＭ１０３は、後述する第１のアプリケーションや第２のアプリケーションを記憶し、保持することができる。ディスプレイ１０４は、情報処理装置１００で起動するアプリケーションを選択起動するためのアイコンや情報処理装置１００上で動作するアプリケーションの操作画面等の各種ユーザインタフェース（ＵＩ）を表示して、ユーザに対して各種の情報を提供する。タッチパネル１０５は、ユーザが操作する操作手段の１つであり、ディスプレイ１０４に重畳配置されており、ユーザがタッチしたディスプレイ１０４の座標を取得する。
【００１４】
カメラ１０６は、光学系を通過して撮像素子に結像した光学像を電気信号に変換し、デジタルデータからなる画像データを生成する。リムーバブルメディア１０７は、例えば、情報処理装置１００に対して着脱可能な半導体メモリカード等の記憶媒体であるが、これに限定されるものではなく、ハードディスクや光学式記憶メディア等であってもよい。通信モジュール１０８は、周知の無線通信手段や有線通信手段を介して、外部機器とのデータ通信を行う。ＣＰＵ１０１は、カメラ１０６で撮影した画像データや通信モジュール１０８を介した取得した各種データ（プログラムを含む）を、ＲＡＭ１０３又はリムーバブルメディア１０７に記憶する。また、ＣＰＵ１０１は、ＲＡＭ１０３やリムーバブルメディア１０７に記憶された各種データを読み出してディスプレイ１０４に表示し、通信モジュール１０８を介して外部で送信する。システムバス１０９は、アドレスバス、データバス及び制御バスを含む。
【００１５】
以上に説明した情報処理装置１００の構成は、以下に説明する第１乃至第３実施形態乃に係る複数のアプリケーションの連携起動処理に共通する。
【００１６】
次に、第１実施形態に係る、複数のアプリケーションの連携起動処理について説明する。図２は、情報処理装置１００で複数のアプリケーションを連携起動する第１実施形態に係る処理のフローチャートである。図２のフローチャートの各処理は、ＣＰＵ１０１がＲＯＭ１０２に格納された所定のプログラムをＲＡＭ１０３の作業領域に展開し、情報処理装置１００の各部の動作を制御することにより実現される。ＣＰＵ１０１は、ユーザによる連携元アプリケーションである第１のアプリケーションの実行中に、連携先アプリケーションである第２のアプリケーションの起動要求を行ったことをトリガとして、ステップＳ２０１の処理を開始する。なお、図２のフローチャートでは、「第２のアプリケーション」を「第２のアプリ」と略記している。
【００１７】
ステップＳ２０１においてＣＰＵ１０１は、情報処理装置１００のオペレーティングシステム（ＯＳ）の処理として、第１のアプリケーションから第２のアプリケーションを特定するための情報（名前等）と、第２のアプリケーションに受け渡すデータを受け取る。ステップＳ２０２においてＣＰＵ１０１は、ＯＳの処理として、第２のアプリケーションが情報処理装置１００にインストールされているか否かを判定する。ステップＳ２０２の判定は、具体的には、第２のアプリケーションがＲＯＭ１０２、ＲＡＭ１０３又はリムーバブルメディア１０７に格納されており、実行可能な状態にあるか否かが判定される。
【００１８】
ＣＰＵ１０１は、第２のアプリケーションがインストールされていると判定した場合（Ｓ２０２でＹＥＳ）、処理をステップＳ２０５へ進める。一方、ＣＰＵ１０１は、第２のアプリケーションがインストールされていないと判定した場合（Ｓ２０２でＮＯ）、処理をステップＳ２０３へ進める。ステップＳ２０３においてＣＰＵ１０１は、第１のアプリケーションの処理として、ユーザに第２のアプリケーションのインストールを促す通知を行う。その際、ＣＰＵ１０１は、第１のアプリケーションに第２のアプリケーションが存在しないことを示すデータを渡す。なお、ＣＰＵ１０１はステップＳ２０３の処理をＯＳの処理として行う構成となっていてもよい。
【００１９】
ステップＳ２０４においてＣＰＵ１０１は、ＯＳの処理として、第２のアプリケーションがインストールされたか否かを判定する。ＣＰＵ１０１は、第２のアプリケーションがインストールされたと判定した場合（Ｓ２０４でＹＥＳ）、処理をステップＳ２０５へ進め、第２のアプリケーションがインストールされていない判定した場合（Ｓ２０４でＮＯ）、処理をステップＳ２０６へ進める。ステップＳ２０６においてＣＰＵ１０１は、ＯＳの処理として、予め設定された割込時間の間だけ待機し、その後、処理をステップＳ２０４へ戻す。なお、ステップＳ２０４の判定がＮＯのままである（第２のアプリケーションがインストールされない）場合の対処方法については後述する。ステップＳ２０５においてＣＰＵ１０１は、ＯＳの処理として、第２のアプリケーションを起動する。なお、ＣＰＵ１０１はステップＳ２０５の処理を第１のアプリケーションの処理として行う構成となっていてもよい。続くステップＳ２０７においてＣＰＵ１０１は、ＯＳの処理として、ステップＳ２０１で第１のアプリケーションから受け取ったデータを第２のアプリケーションにデータを渡す。これにより、本処理は終了となる。
【００２０】
図２のフローチャートを参照して説明した複数アプリケーションの連携起動処理が実行される際のＵＩの例について説明する。図３は、第２のアプリケーションがインストール済みである場合におけるアプリケーションの連携起動の動作例を示す図である。図３（ａ）に示された画面３０１は、ＣＰＵ１０１が第１のアプリケーションの実行中にディスプレイ１０４に表示した編集画面の一例である。ここでは、第１のアプリケーションの例として、簡易的なペイント機能（画像編集機能）を備えた「簡易ペイントソフト」という名前（名称）のアプリケーションが起動しており、且つ、画像編集が可能な状態にある画面が表示されているものとする。
【００２１】
画面３０１は、第１のアプリケーションで編集中の画像を表示する領域３０２を含む。また、画面３０１は、戻るボタン３０３、スタンプボタン３０４、切り抜きボタン３０５及び連携起動ボタン３０６を含む。領域３０２の画像に対して所定の処理がなされた後に戻るボタン３０３が押下（タッチ操作）されると、ＣＰＵ１０１は、領域３０２に表示する画像をその処理がなされる前の画像に戻す。また、領域３０２の画像に対して何ら編集が行われていない場合に戻るボタン３０３が押下されると、例えば、不図示であるが、ＣＰＵ１０１は領域３０２に表示された画像を含む複数のサムネイル（縮小画像）が表示されている画面へ戻す。そして、このような複数のサムネイルが表示されている画面で所定の画像がユーザにより選択されると、ＣＰＵ１０１は選択された画像が領域３０２に拡大表示された画面３０１をディスプレイ１０４に表示する。
【００２２】
スタンプボタン３０４は、画像中に所定のスタンプ（マーク）を追記（付加）する機能を実行するための操作手段である。切り抜きボタン３０５は、ユーザが指定する大きさや形の画像を領域３０２から切り抜く画像処理を実行するための操作手段である。連携起動ボタン３０６は、ＣＰＵ１０１に対して第２のアプリケーションの起動要求を行う操作手段である。
【００２３】
図３（ｂ）に示された画面３０７は、画面３０１で連携起動ボタン３０６が押下された場合に、ＣＰＵ１０１が第２のアプリケーションの起動要求を受け付けることによりディスプレイ１０４に表示する第２のアプリケーションの編集画面の一例である。画面３０７は、第２のアプリケーションで編集する画像を表示する領域３０８を含む。また、画面３０７は、戻るボタン３０９、明るさボタン３１０、フィルタボタン３１１、ビネットボタン３１２、色温度ボタン３１３及び彩度ボタン３１４を含む。
【００２４】
戻るボタン３０９は、第２のアプリケーションが第１のアプリケーションから連携起動された場合に、画面３０７を画面３０１へ戻すための操作手段である。なお、第２のアプリケーションは、第１のアプリケーションからの連携起動が可能であるものの、通常にＯＳからの起動が可能で、第１のアプリケーションとは独立して動作可能なアプリケーションでもある場合が多い。したがって、第２のアプリケーションは、起動して第１のアプリケーションからのデータを引き継いだ後は、第１のアプリケーションから独立して動作する構成となっていてもよい。その場合、例えば、領域３０８の画像に対して所定の処理がなされた後に戻るボタン３０９が押下されると、領域３０８に表示する画像をその処理がなされる前の画像に戻されるようになっていてもよい。また、領域３０８の画像に対して何ら編集が行われていない場合に戻るボタン３０９が押下されると、不図示であるが、例えば、第２のアプリケーションの初期画面（例えば、メニュー画面）に遷移するようになっていてもよい。
【００２５】
明るさボタン３１０は、画像の明るさを調整する機能を実行するための操作手段である。フィルタボタン３１１は、画像に対して所定のフィルタを掛ける機能を実行するための操作手段である。ビネットボタン３１２は、画像に対して周辺光量補正を掛ける機能を実行するための操作手段である。色温度ボタン３１３は、画像に対して色温度調整をする機能を実行するための操作手段である。彩度ボタン３１４は、画像の彩度を調整する機能を実行するための操作手段である。
【００２６】
続いて、図２のフローチャートと図３のＵＩとの対応関係について説明する。ユーザが第１のアプリケーションの画面３０１から第２のアプリケーションの起動要求を行うために連携起動ボタン３０６を押下したことをトリガにして、ＣＰＵ１０１はステップＳ２０１の処理を開始する。ステップＳ２０１においてＣＰＵ１０１は、第２のアプリケーションの名前として「高機能ペイントソフト」という名前を受け取ると共に第１のアプリケーションで編集中の画面３０１内の領域３０２に表示されている画像データを受け取る。情報処理装置１００に第２のアプリケーション（高機能ペイントソフト）はインストール済みである場合、ＣＰＵ１０１はステップＳ２０２の処理で「ＹＥＳ」と判定し、処理をステップＳ２０５へ進める。
【００２７】
ステップＳ２０５においてＣＰＵ１０１が第２のアプリケーションを起動し、続くステップＳ２０６においてＣＰＵ１０１が第１のアプリケーションから取得した領域３０２の画像データを第２のアプリケーションへ渡す。これにより、画面３０１の領域３０２に表示されていた画像が領域３０８に表示された画面３０７がディスプレイ１０４に表示され、第２のアプリケーションでの画像編集が可能となる。こうして、第１のアプリケーションで編集していた画像を、連携起動させた第２のアプリケーションで引き継いで編集することが可能となる。
【００２８】
図４は、第２のアプリケーションが未インストールである場合におけるアプリケーションの連携起動の動作例を示す図である。図４（ａ），（ｄ）はそれぞれ、図３（ａ），（ｂ）と同じであるため、ここでの説明を省略する。図４（ｂ）には、画面３０１内の連携起動ボタン３０６が押下されたことによる画面３０１からの遷移後の画面４０１が示されている。ＣＰＵ１０１は、第２のアプリケーションが情報処理装置１００に未インストールの状態であるため、画面４０１に第２のアプリケーションのインストールを促す通知であるダイアログボックス４０２をポップアップ表示させている。ダイアログボックス４０２は、いいえボタン４０３と、はいボタン４０４を含む。いいえボタン４０３が押下されると、ＣＰＵ１０１は第２のアプリケーションの連携起動処理を中止して画面４０１を画面３０１に戻す。一方、はいボタン４０４が押下されると、ＣＰＵ１０１は第２のアプリケーションをインストールするための図４（ｃ）に示すインストール画面４０５をディスプレイ１０４に表示する。
【００２９】
インストール画面４０５は、情報処理装置１００のＯＳにより提供される。インストール画面４０５は、アイコン４０６、インストールボタン４０７、評価表示欄４０８及びスクリーンショット４０９を含む。アイコン４０６は、第２のアプリケーションが情報処理装置１００にインストールされた際にディスプレイ１０４に表示されるもので、ＯＳからの第２のアプリケーションの起動等に用いられる。インストールボタン４０７が押下されると、ＣＰＵ１０１は、通信モジュール１０８を制御して第２のアプリケーションとして高機能ペイントソフトを所定の外部機器（例えば、配信サーバ）からダウンロードしてインストールする。評価表示欄４０８には、高機能ペイントソフトに対するユーザ評価が５段階の星印で表示されている。ユーザは、評価表示欄４０８の評価を参考にして、情報処理装置１００に実際に高機能ペイントソフトをインストールするか否かを判断することができる。スクリーンショット４０９は、高機能ペイントソフトがインストールされて起動した場合の編集画面を簡易的に示している。
【００３０】
続いて、図２のフローチャートと図４のＵＩとの対応関係について説明する。ユーザが第１のアプリケーションの画面３０１から第２のアプリケーションの起動要求を行うために連携起動ボタン３０６を押下したことをトリガにして、ＣＰＵ１０１はステップＳ２０１の処理を開始する。ステップＳ２０１においてＣＰＵ１０１は、第２のアプリケーションの名前として「高機能ペイントソフト」という名前を受け取ると共に第１のアプリケーションで編集中の領域３０２に表示されている画像データを受け取り、処理をステップＳ２０２へ進める。第２のアプリケーション（高機能ペイントソフト）は情報処理装置１００に未インストールであるため、ＣＰＵ１０１は、ステップＳ２０２の処理では「ＮＯ」と判定し、処理をステップＳ２０３へ進める。
【００３１】
ステップＳ２０３の通知処理において、ＣＰＵ１０１は、ディスプレイ１０４での表示を図４（ａ）の画面３０１からダイアログボックス４０２を含む図４（ｂ）の画面４０１へ遷移させる。ユーザがはいボタン４０４を押下すると、ＣＰＵ１０１は、画面４０１を図４（ｃ）のインストール画面４０５へ遷移させる。ユーザがインストールボタン４０７を押下すると、ＣＰＵ１０１は、通信モジュール１０８を制御して高機能ペイントソフトを所定の外部機器からダウンロードして、情報処理装置１００にインストールする。高機能ペイントソフトのインストールが完了するまでの間は、ステップＳ２０４の判定はＮＯとなるため、ＣＰＵ１０１はステップＳ２０４，Ｓ２０６の処理を繰り返す。このとき、ＣＰＵ１０１は、ステップＳ２０６において割込時間の間だけ待機し、割込時間の経過後に処理をステップＳ２０５へ戻す。
【００３２】
高機能ペイントソフトのインストールが完了すると、ＣＰＵ１０１は、ステップＳ２０４の処理で「ＹＥＳ」と判定し、処理をステップＳ２０５へ進める。ステップＳ２０５においてＣＰＵ１０１が第２のアプリケーションを起動することで、ディスプレイ１０４の表示がインストール画面４０５から画面３０７へ遷移する。なお、ディスプレイ１０４での表示がインストール画面４０５から画面３０７へ遷移することを除いて、ステップＳ２０５，Ｓ２０７の処理は、図３を図２のフローチャートと対比させて前述した通りであるので、ここでの説明を省略する。
【００３３】
ここで、第１のアプリケーションからＣＰＵ１０１を介して第２のアプリケーションに渡されるデータの構成について説明する。図５は、ステップＳ２０１で第１のアプリケーションからＣＰＵ１０１が受け取り、ステップＳ２０７でＣＰＵ１０１が第２のアプリケーションに渡すデータの構成を説明する図である。データは、データとしてのインテント情報を格納するキュー５０１を有し、キュー５０１は先入れ先出しである。キュー５０１の１番目にはデータとしてのインテント情報５０２が、キュー５０１の二番目にはデータとしてのインテント情報５０３が、キュー５０１の３番目にはデータとしてのインテント情報５０４が格納されている。なお、より多くのインテント情報をキュー５０１に格納可能であるが、ここでは説明を省略する。キュー５０１は、初回起動時は空であるが、ユーザが複数のアプリケーションの連携起動を指示するごとにキュー５０１にインテント情報が追加される。ＣＰＵ１０１は、第２のアプリケーションへデータを渡す際には、キュー５０１から所定のインテント情報を取り出す。
【００３４】
インテント情報５０２〜５０４のそれぞれのデータ構成は同等であるので、ここでは、インテント情報５０２のデータ構成について説明し、インテント情報５０３，５０４についての説明は省略する。インテント情報５０２は、連携先アプリ名５０８、データ本体５０９及びアクション本体５１１を保持している。インテント情報５０２は、連携先アプリ名５０８として「高機能ペイントソフト」を保持している。データ本体５０９は、データ５１０の総数の情報と、データ５１０の総数に応じた数のデータを含む。アクション本体５１１は、アクション５１２の総数の情報と、アクション５１２の総数に応じた数のアクションを含む。
【００３５】
インテント情報５０２について、具体的に説明する。第１のアプリケーション（簡易ペイントソフト）で「ａｂｃ．ｊｐｇ」というファイル名の画像を編集中であり、且つ、画像の明るさのパラメータを１２３に変更した状態で、第２のアプリケーション（高機能ペイントソフト）が連携起動されたとする。すると、ステップＳ２０１においてＣＰＵ１０１は、第２のアプリケーションの名前（高機能ペイントソフト）とデータ（ファイル名「ａｂｃ．ｊｐｇ」と明るさのパラメータ「１２３」）を第１のアプリケーションから受け取る。これにより、インテント情報５０２の連携先アプリ名５０８に「高機能ペイントソフト」が格納され、データ５１０としてファイル名「ａｂｃ．ｊｐｇ」と明るさのパラメータ「１２３」の２つがデータ本体５０９に格納される。よって、データ本体５０９が保持するデータ５１０の総数は２となる。また、アクション本体５１１にアクション５１２として、ファイル「ａｂｃ．ｊｐｇ」を開く、明るさを変更する、画面表示を行う、の３つのアクション５１２が格納される。よって、アクション本体５１１が保持するアクション５１２の総数は３となる。
【００３６】
アクション５１２は、データ５１０に対して実行される内容を記述したものである。ステップＳ２０７においてＣＰＵ１０１は、第２のアプリにデータを渡す際にアクション５１２の内容を解釈し、その内容に応じた処理を実行する。したがって、ＣＰＵ１０１は、高機能ペイントソフトを起動すると、高機能ペイントソフト上で画像ファイル「ａｂｃ．ｊｐｇ」を開き、開いた画像の明るさパラメータが１２３になるように処理を行い、その処理の結果をディスプレイ１０４に表示する。
【００３７】
以上の説明の通り、本実施形態によれば、高機能ペイントソフトが情報処理装置１００に未インストールであっても、簡易ペイントソフト上での操作により高機能ペイントソフトのインストールが可能である。そして、高機能ペイントソフトが簡易ペイントソフトから連携起動された際には、簡易ペイントソフトで編集中の画像データを高機能ペイントソフト上で手動で読み出すことを必要とせずに、自動的に高機能ペイントソフトに引き継いで編集することが可能になる。即ち、従来は、第１のアプリケーションの実行中に未インストールの第２のアプリケーションを連携起動する場合には、まず、第２のアプリケーションをダウンロードしてインストールする。続いて、第２のアプリケーションを起動すると共に、第１のアプリケーションでの処理していたデータを、再度、手動で第２のアプリケーションで読み出す必要があった。これに対して、本実施形態では、第２のアプリケーションがインストールされて起動されると、第１のアプリケーションで処理中のデータを手動で読み出す処理や操作を必要とすることなく、第２のアプリケーションに引き渡して、処理を実行することができる。
【００３８】
ところで、第２のアプリケーションを情報処理装置１００にインストールすることができない事態（ステップＳ２０４の判定がＹＥＳにならない事態）が生じ得る。その原因の１つとして、第１のアプリケーションがＯＳから第２のアプリケーションのインストールに失敗した旨の通知を受け取ったことが挙げられる。また、別の原因として、一定時間が経過しても第２のアプリケーションのインストールが完了した旨の通知を第１のアプリケーションがＯＳから受け取らないことが挙げられる。このような理由で第２のアプリケーションを情報処理装置１００にインストールすることができない場合には、ＯＳは、ＣＰＵ１０１が第１のアプリケーションから受け取って保持しているデータを削除するようにしてもよい。なお、データ削除の前にインストール画面４０５に、第２のアプリケーションのインストールに失敗したことが表示されると共にインストールを再試行するか或いは処理を中断するかをユーザに選択させるためのダイアログボックスが表示されるようにしてもよい。そして、処理の中断が選択された場合に、ＯＳは、ＣＰＵ１０１が保持しているデータを削除し、ディスプレイ１０４での表示を例えば画面３０１に戻すようにしてもよい。
【００３９】
また、ＣＰＵ１０１が第１のアプリケーションから受け取ったデータをステップＳ２０７において第２のアプリケーションが受け取ることができない事態が生じる可能性がある。この場合、第２のアプリケーションが、ＯＳに対して、ＣＰＵ１０１が保持しているデータの削除を要求するようにしてもよい。また、第２のアプリケーションがＣＰＵ１０１から受け取ったデータの形式が第２のアプリケーションでは処理することができない形式である等の理由により、受け取ったデータを削除する場合がある。この場合には、第２のアプリケーションからＯＳへその旨を通知した上で、デフォルト設定で第２のアプリケーションが再起動されるようにしてもよい。ＯＳは、第２のアプリケーション又はＣＰＵ１０１においてデータが削除されたと判断した場合、データが削除されたことを第１のアプリケーショへ通知するようにしてもよい。
【００４０】
次に、第２実施形態に係る複数のアプリケーションの連携起動処理について説明する。上記第１実施形態では、第２のアプリケーションがインストール済みの場合と未インストールの場合の処理について説明した。ここで、第２のアプリケーションがインストール済みであるが、バージョンが古いためにユーザが所望する処理をインストール済みの第２のアプリケーションでは実行することができない場合がある。また、最新バージョンの第２のアプリケーションは、第１のアプリケーションで使用していたデータをそのまま使用可能であるが、古いバージョンの第２のアプリケーションでは第１のアプリケーションで使用していたデータを使用することができないことがある。このような状況を考慮すると、第２のアプリケーションが情報処理装置１００にインストール済みか否かに加えて、インストール済みの第２のアプリケーションが最新のバージョン或いはユーザが指定するバージョンか否かを検査することが望ましい。そこで、本実施形態では、上述の第１実施形態での処理内容に、第２のアプリケーションのバージョン検査を加えた処理について説明する。
【００４１】
図６は、情報処理装置１００で複数のアプリケーションを連携起動する、第２実施形態に係る処理のフローチャートである。図６のフローチャートの各処理は、ＣＰＵ１０１がＲＯＭ１０２に格納された所定のプログラムをＲＡＭ１０３の作業領域に展開し、情報処理装置１００の各部の動作を制御することにより実現される。なお、図６のフローチャートの処理のうち、図２のフローチャートの処理と同じ処理については、同じステップ番号を付して、適宜、ここでの説明を省略する。
【００４２】
ステップＳ２０１，Ｓ２０２の処理については、説明済みであるので、ここでの説明を省略する。ＣＰＵ１０１は、第２のアプリケーションがインストール済みであると判定した場合（Ｓ２０２でＹＥＳ）、処理をステップＳ６０１へ進める。ステップＳ６０１においてＣＰＵ１０１は、第１のアプリケーションの処理として、インストール済みの第２のアプリケーションのバージョンを検出し、検出されたバージョンが指定されたバージョンか否かを判定する。第２のアプリケーションのバージョン指定は、例えば、連携起動ボタン３０６が押下されたときにバージョンを指定するダイアログボックスをディスプレイ１０４に表示し、ユーザに所望のバージョンを指定させる方法等によって行うことができる。なお、ステップＳ６０１では、インストール済みの第２のアプリケーションのバージョンが所定のバージョンよりも新しいバージョンであるか否か又は最新バージョンであるか否かを判定するようにしてもよい。最新バージョンであるか否かを判定する場合、バージョンを指定するためのダイアログボックスをディスプレイ１０４に表示する必要はなく、ＣＰＵ１０１は通信モジュール１０８を介して所定の外部機器にアクセスして最新バージョンを確認する。
【００４３】
ＣＰＵ１０１は、第２のアプリケーションのバージョンが指定されたバージョンであると判定した場合（Ｓ６０１でＹＥＳ）、処理をステップＳ６０２へ進める。ステップＳ６０２においてＣＰＵ１０１は、第２のアプリケーションが情報処理装置１００に存在すると判定する。ＣＰＵ１０１は、ステップＳ６０２の判定後に、処理をステップＳ２０５へ進める。
【００４４】
一方、ステップＳ２０２においてＣＰＵ１０１は、第２のアプリケーションが未インストールであると判定した場合（Ｓ２０２でＮＯ）、処理をステップＳ６０３へ進める。また、ステップＳ６０１においてＣＰＵ１０１は、第２のアプリケーションのバージョンが指定されたバージョンではないと判定した場合（Ｓ６０１でＮＯ）、処理をステップＳ６０３へ進める。ステップＳ６０３においてＣＰＵ１０１は、第２のアプリケーションは情報処理装置１００に存在しないと判定する。つまり、第２のアプリケーションがインストール済みであっても、指定のバージョンではない場合には、インストールされていないものとみなす。ＣＰＵ１０１は、ステップＳ６０３の判定後に、処理をステップＳ２０３へ進める。ステップＳ２０３〜２０７の処理については説明済みであるため、ここでの説明を省略する。
【００４５】
続いて、図６のフローチャートと図３及び図４のＵＩとの対応関係について説明する。ステップＳ２０１，Ｓ２０２でＹＥＳ，Ｓ６０１でＹＥＳ，Ｓ６０２，Ｓ２０５，Ｓ２０７の順に処理が進む場合、図３（ａ）の画面３０１で連携起動ボタン３０６が押下されると、ディスプレイ１０４の表示は、画面３０１から図３（ｂ）の画面３０７へ遷移する。このような表示の遷移は、図２のフローチャートと図３のＵＩとの対応関係について説明した表示の遷移と結果的に同じである。
【００４６】
一方、ステップＳ２０１，Ｓ２０２でＮＯ，Ｓ６０３でＮＯ，Ｓ２０３の順に処理が進んだ場合、図４（ａ）の画面３０１で連携起動ボタン３０６が押下されると、ディスプレイ１０４の表示は、画面３０１から図４（ｂ）の画面４０１へ遷移する。ステップＳ２０３〜Ｓ２０７の処理が行われることで、画面４０１は、図４（ｃ）のインストール画面４０５へ遷移した後、更に図４（ｄ）の画面３０７へ遷移する。このような表示の遷移は、図２のフローチャートと図４のＵＩとの対応関係について説明した表示の遷移と結果的に同じとなる。
【００４７】
なお、ステップＳ６０３の判定を経る場合、情報処理装置１００に元々インストールされていた第２のアプリケーションは、指定されたバージョンの第２のアプリケーションがインストールされる際にシステムから削除される。こうして、ステップＳ２０５では、新たにインストールされた指定されたバージョンの第２のアプリケーションが起動されることになる。また、ステップＳ６０１で、インストール済みの第２のアプリケーションのバージョンが最新バージョンか否かを判定する場合、以下のように処理を行えばよい。即ち、ＯＳが、通信モジュール１０８を介して第２のアプリケーションのダウンロードサイト又は製品紹介サイトにアクセスし、最新バージョンを確認し、その確認結果に基づいて判定を行うようにすればよい。これにより、ユーザが第２のアプリケーションの最新バージョンを、別途の操作により確認する作業は不要となる。
【００４８】
以上の説明の通り、本実施形態によれば、インストール済みの第２のアプリケーションが指定されたバージョンではない場合には、指定されたバージョンの第２のアプリケーションがダウンロードされ、起動される。これにより、第１のアプリケーションで使用中のデータが第２のアプリケーションに自動的に引き継がれた際に、引き継がれたデータが第２のアプリケーションで使用することができないという事態が生じるのを回避することができる。
【００４９】
次に、第３実施形態に係る複数のアプリケーションの連携起動処理について説明する。第１のアプリケーションから第２のアプリケーションへＣＰＵ１０１を介してデータを渡そうとして情報処理装置１００への第２のアプリケーションのインストールを試行したが、第２のアプリケーションのインストールに失敗する場合がある。本実施形態では、このような事態が発生した場合に、第２のアプリケーションと互換性を有する第３のアプリケーションのインストールをユーザに提案し、第３のアプリケーションを第１のアプリケーションと連携させる構成について説明する。
【００５０】
図７は、情報処理装置１００で複数のアプリケーションを連携起動する、第３実施形態に係る処理のフローチャートである。図７のフローチャートの各処理は、ＣＰＵ１０１がＲＯＭ１０２に格納された所定のプログラムをＲＡＭ１０３の作業領域に展開し、情報処理装置１００の各部の動作を制御することにより実現される。なお、図７では、「第３のアプリケーション」を「第３のアプリ」と略記している。また、図７のフローチャートの処理のうち、図２のフローチャートの処理と同じ処理については、同じステップ番号を付して、説明を省略する。
【００５１】
図７のフローチャートのステップＳ２０１〜Ｓ２０７の処理の内容は、図２のフローチャートのステップＳ２０１〜Ｓ２０７の処理の内容と同じであるため、ここでの説明を省略する。但し、本実施形態では、ステップ２０６においてＣＰＵ１０１は、割込時間の待機後にステップＳ７０１へ処理を進める。ステップＳ７０１においてＣＰＵ１０１は、ＯＳの処理として、第２のアプリケーションのインストールに失敗した状態か否かを判定する。ＣＰＵ１０１は、第２のアプリケーションのインストールに失敗した状態ではないと判定した場合（Ｓ７０１でＮＯ）、処理をステップＳ２０４へ戻す。一方、ＣＰＵ１０１は、第２のアプリケーションのインストールに失敗した状態にあると判定した場合（Ｓ７０１でＹＥＳ）、処理をステップＳ７０２へ進める。
【００５２】
ステップＳ７０２においてＣＰＵ１０１は、ＯＳの処理として、ステップＳ２０３の通知から一定時間が経過したか否かを判定する。ＣＰＵ１０１は、一定時間が経過していないと判定した場合（Ｓ７０２でＮＯ）、処理をステップＳ２０４へ戻し、一定時間が経過したと判定した場合（Ｓ７０２でＹＥＳ）、処理をステップＳ７０３へ進める。ステップＳ７０３においてＣＰＵ１０１は、第１のアプリケーションの処理として、第２のアプリケーションのインストールを中止し、第２のアプリケーションと互換性があり、且つ、未インストールの第３のアプリケーションを選択する。ステップＳ７０４においてＣＰＵ１０１は、第１のアプリケーションの処理として、ユーザに第３のアプリケーションのインストールを促す通知を行う。この通知には、第２のアプリケーションのインストールに失敗したこと及び第３のアプリケーションは第２のアプリケーションと互換性があることを明記したメッセージと、第３のアプリケーションのインストールを実行するか否かの選択ボタンが含まれる。
【００５３】
以下の説明では、ステップＳ７０４の通知に対して、第３のアプリケーションのインストールを実行することが選択されたものとして、説明を続ける。なお、第３のアプリケーションをインストールしないことが選択された場合には、ＣＰＵ１０１は、本処理を終了させ、例えば、ディスプレイ１０４の表示を図４（ａ）の画面３０１に戻す。
【００５４】
ステップＳ７０５においてＣＰＵ１０１は、ＯＳの処理として、第３のアプリケーションが情報処理装置１００にインストールされたか否かを判定する。ＣＰＵ１０１は、第３のアプリケーションがインストールされたと判定した場合（Ｓ７０５でＹＥＳ）、処理をステップＳ７０６へ進める。ステップＳ７０６においてＣＰＵ１０１は、ＯＳの処理として、第３のアプリケーションを起動する。なお、ＣＰＵ１０１はステップＳ７０６の処理を第１のアプリケーションの処理として行ってもよい。ステップＳ７０７においてＣＰＵ１０１は、第１のアプリケーションから受け取ったデータを第３のアプリケーションに渡し、これにより本処理は終了となる。
【００５５】
一方、ＣＰＵ１０１は、ステップＳ７０５の判定において第３のアプリケーションがインストールされていないと判定した場合（Ｓ７０５でＮＯ）、処理をステップＳ７０８へ進める。ステップＳ７０８においてＣＰＵ１０１は、ＯＳの処理として、割込時間の間だけ待機する。割込時間の経過後のステップＳ７０９においてＣＰＵ１０１は、ＯＳの処理として、第３のアプリケーションのインストールに失敗した状態か否かを判定する。ＣＰＵ１０１は、第３のアプリケーションのインストールに失敗した状態ではないと判定した場合（Ｓ７０９でＮＯ）、処理をステップＳ７０５へ戻す。一方、ＣＰＵ１０１は、第３のアプリケーションのインストールに失敗した状態であると判定した場合（Ｓ７０９でＹＥＳ）、処理をステップＳ７１０へ進める。
【００５６】
ステップＳ７１０においてＣＰＵ１０１は、ＯＳの処理として、ステップＳ７０４の通知から一定時間が経過したか否かを判定する。ＣＰＵ１０１は、一定時間が経過していない判定した場合（Ｓ７１０でＮＯ）、処理をステップＳ７０５へ戻し、一定時間が経過したと判定した場合（Ｓ７１０でＹＥＳ）、処理をステップＳ７１１へ進める。ステップＳ７１１においてＣＰＵ１０１は、第１のアプリケーションの処理として、アプリケーション連携起動に失敗した旨をユーザに通知し、これにより本処理は終了となる。
【００５７】
続いて、図７のフローチャートと図４のＵＩとの対応関係について説明する。なお、ステップＳ２０１，Ｓ２０２，Ｓ２０５，Ｓ２０７の順で処理が進んだ場合は、第１実施形態で説明した図２と図３のＵＩとの対応関係の説明を流用することができるため、ここでの説明を省略する。また、ステップＳ２０１，Ｓ２０２，Ｓ２０３，Ｓ２０４，Ｓ２０５，Ｓ２０７の順で処理が進んだ場合は、第１実施形態で説明した図２と図４のＵＩとの対応関係の説明を流用することができるため、ここでの説明を省略する。
【００５８】
ステップＳ２０３からステップＳ２０４へ処理が進められ、インストール画面４０５のインストールボタン４０７が押下されると、第２のアプリケーションのインストールが試行される。このとき、情報処理装置１００への第２のアプリケーションのインストールに失敗する場合がある。その理由としては、情報処理装置１００が第２のアプリケーションのダウンロードが可能な外部機器に接続されていなかったこと、第２のアプリケーションを格納するＲＡＭ１０３等の記憶手段の記憶容量が不足していることが挙げられる。また、別の理由として、第２のアプリケーションの動作環境が情報処理装置１００のハードウェア構成に適合しないことやＯＳとの整合性がないことが挙げられる。更に別の理由として、第２のアプリケーションのダウンロードサイト（アプリケーションストア）が公開停止となっていることや、ユーザにより第２のアプリケーションのインストールがキャンセルされたこと等が挙げられる。このような理由が生じ、理由が解消しない場合には、ステップＳ７０１では第２のアプリケーションのインストールに失敗した状態であると判定され、ステップＳ７０２で一定時間経過したと判定される。
【００５９】
すると、ステップＳ７０３において、第２のアプリケーションと互換性のある第３のアプリケーションが選択される。そして、ステップＳ７０４において、図４（ｂ）の画面４０１に、第２のアプリケーションに代えて第３のアプリケーションのインストールを促すダイアログボックス（不図示）が表示される。ここで、この通知にしたがってユーザが第３のアプリケーションをインストールすることを決定した場合には、図４（ｃ）のインストール画面４０５に対応する第３のアプリケーションのインストール画面が表示されるようにしてもよい。
【００６０】
第３のアプリケーションのインストールに成功すると、図４（ｄ）に示した画面５０７と同様の、第３のアプリケーションでの編集画面がディスプレイ１０４に表示され、編集画面内に第１のアプリケーションから引き継がれたデータが表示される。こうして第１のアプリケーションから第３のアプリケーションが連携起動された場合に、ユーザは、第１のアプリケーションで使用していたデータを第３のアプリケーション上で手動で読み込む操作を必要とすることなく、編集作業を行うことができる。
【００６１】
以上の説明の通り、本実施形態では、第２のアプリケーションの情報処理装置１００へのインストールが不可能な場合に、第２のアプリケーションと互換性のある第３のアプリケーションがインストールされ、起動される。そして、起動された第３のアプリケーションに、第１のアプリケーションで使用（編集）していたデータが自動的に引き継がれる。よって、ユーザは、第１のアプリケーションで使用していたデータを第３のアプリケーション上で手動で読み込む操作を必要とすることなく、第３のアプリケーションで使用することができる。
【００６２】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。更に、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
【００６３】
例えば、上記実施形態では、第２のアプリケーションが情報処理装置１００にインストールされているか否かを、第２のアプリケーションが情報処理装置１００の記憶手段に格納されて実行が可能な状態にあるか否かを判定することによって行った。但し、これに限られず、通信モジュール１０８を介して外部機器に格納されている第２のアプリケーションを実行することが可能な環境となっている場合も、第２のアプリケーションが情報処理装置１００にインストールされているとみなすことができる。
【００６４】
本発明は以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００６５】
１００    情報処理装置
１０１    ＣＰＵ
１０２    ＲＯＭ
１０３    ＲＡＭ
１０４    ディスプレイ
１０８    通信モジュール
【図１】
2018116632.tif 000003
【図２】
2018116632.tif 000004
【図３】
2018116632.tif 000005
【図４】
2018116632.tif 000006
【図５】
2018116632.tif 000007
【図６】
2018116632.tif 000008
【図７】
2018116632.tif 000009