以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の第1実施形態であるデバイス制御アプリケーション14bが搭載された携帯端末10の電気的構成を示すブロック図である。
携帯端末10は、携帯電話網100を介して、他の装置との間で音声通話を行い、またはインターネットを利用可能な携帯電話機である。また、携帯端末10は、アクセスポイント50を介したインフラストラクチャモードにより、デバイス30との間で無線通信を行う。携帯端末10には、CPU11、ROM12、RAM13、フラッシュメモリ14、無線LAN送受信部15、操作キー16、タッチパネル17、液晶表示装置18(以下、LCD18)、メモリカードインターフェース19(以下、メモリカードI/F19)、音声入出力部21、電話網通信部22が設けられる。これらは、バスライン23を介して互いに接続されている。
CPU11は、ROM12等に記憶される固定値やプログラム等に従って、バスライン23と接続された各部を制御する。ROM12は、書換不能な不揮発性のメモリであって、RAM13は、書換可能な揮発性のメモリである。
フラッシュメモリ14は、書換可能な不揮発性のメモリであり、オペレーティングシステム14a(以下、OS14a)やデバイス制御アプリケーション14b、その他の複数種類のアプリケーション(図示せず)が格納される。以降、アプリケーションやオペレーティングシステムなどのプログラムを実行するCPU11のことを、単にプログラム名で記載する場合もある。例えば「アプリケーション」という記載が、「アプリケーションを実行するCPU11」を意味する場合もある。
OS14aは、携帯端末10の標準機能を実現するための基本ソフトウェアであって、本実施形態の場合、アンドロイド(登録商標)OSである。OS14aのAPIをアプリケーションが用いることにより、アプリケーション間でデータを受け渡す共有機能が実現される。
デバイス制御アプリケーション14bは、デバイス30のベンダによって提供されるアプリケーションであって、ユーザによって携帯端末10にインストールされ、携帯端末10からのデバイス30の利用を可能とする。例えば、パーソナルコンピュータなどを経由せずに、携帯端末10から直接、デバイス30の印刷機能およびスキャン機能を利用することを可能にする。特に、本実施形態のデバイス制御アプリケーション14bは、他のアプリケーション(共有元のアプリケーション)から、デバイス30の印刷機能を利用する目的で共有機能によって起動された場合に、所定の条件下ではBACKキー16aが操作されても、問い合わせ画面74(図3(b)参照)を表示することによって即座に本アプリケーション(デバイス制御アプリケーション14b)を終了させないように構成されており、ユーザビリティが高められている。
また、フラッシュメモリ14は、印刷設定メモリ14cを有している。印刷設定メモリ14cには、デバイス30で印刷を行うときの印刷設定(例えば、カラー印刷/モノクロ印刷の設定や、用紙サイズや、用紙向きや、レイアウトなど)が記憶されている。なお、印刷設定は、デバイス制御アプリケーション14bがLCD18に表示させた印刷設定画面(図示せず)に対し、ユーザが行った所定の操作に基づき適宜変更することが可能に構成されており、印刷設定が変更される毎に印刷設定メモリ14cの内容は書き換えられる。
無線LAN送受信部15は、IEEE802.11b/gの規格に準拠した無線LANにより、携帯端末10と他の機器とをWi−Fi(登録商標)接続する回路である。この無線LAN送受信部15により、アクセスポイント50を介して、デバイス30との間が無線接続される。
操作キー16は、携帯端末10の筺体10a(図3参照)の正面や側面などに設けられたハードウェアキーであり、携帯端末10に設定情報や指示を入力する。操作キー16は、画面を前画面に戻したり、直前のアプリケーションを再度アクティブ化する動作を割り当てるためのBACKキー16aを含む。本実施形態のデバイス制御アプリケーション14bでは、他のアプリケーション(共有元のアプリケーション)から、デバイス30の印刷機能を利用する目的で共有機能によって起動された場合には、本アプリケーション(デバイス制御アプリケーション14b)を終了して共有元のアプリケーションをアクティブ化する(遷移する)動作が、BACKキー16aに対して割り当てられている。
タッチパネル17は、LCD18に重ねて設けられ、携帯端末10に設定情報や指示を入力する。LCD18は、各種の操作画面や、選択されたデータに基づく画像を表示する。メモリカードI/F19は、不揮発性のメモリカード20が装着されるインターフェースであって、メモリカード20に対するデータの書き込み又は読み出しを制御する。メモリカード20は、一例として、SDカード(登録商標)である。
音声入出力部21は、マイクやスピーカなどで構成された音声入出力用デバイスであり、電話網通信部22は、携帯電話網100を介した通信を行うための回路である。携帯電話網100は、IMT−2000(International Mobile Telecommunication-2000)方式の通信網であって、携帯端末10による音声通話やインターネット(図示せず)の利用を可能にする。
なお、携帯端末10にインストールされた各アプリケーション(デバイス制御アプリケーション14bを含む)は、OS14aのAPIを呼び出して、無線LAN送受信部15、操作キー16、タッチパネル17、LCD18、メモリカードI/F19、音声入出力部21、電話網通信部22など、携帯端末10の各構成に受け渡したいデータをOS14aに出力する。すなわち、各アプリケーションは、OS14aのAPIを呼び出すことによって、携帯端末10の各構成を制御する。また、各アプリケーションは、OS14aのAPIを呼び出して、携帯端末10の各構成が出力するデータや各構成の状態を示すデータをOS14aから取得する。すなわち、OS14aのAPIを呼び出すことによって、携帯端末10の各構成の状態(携帯端末10への操作入力の状態も含む)を示すデータをOS14aから取得する。また、OS14aは、携帯端末10の各構成が出力するデータや各構成の状態を示すデータを、定期的に、あるいは各構成の状態変化の都度、各アプリケーションに通知することもある。すなわち、各アプリケーションは、OS14aからの通知を受けることによって、携帯端末10の各構成の状態(携帯端末10への操作入力の状態も含む)を示すデータをOS14aから取得する。
デバイス30は、プリンタ機能、スキャン機能、コピー機能などを有する複合機であって、携帯端末10の無線LAN送受信部15と同様に構成された無線LAN送受信部(図示せず)を備え、アクセスポイント50を介した無線通信により、携帯端末10とWi−Fi接続される。また、デバイス30は、携帯端末10のデバイス制御アプリケーション14bにより制御され、携帯端末10から送信されてくるデータに基づいて画像を印刷し、または、原稿を読み取ってスキャンデータを生成し、携帯端末10へ送信する。アクセスポイント50は、Wi−Fi端末間の通信を中継する。
図2を参照して、携帯端末10のOS14aのAPIを用いることにより実現される共有機能について説明する。共有機能は、データ出力元のアプリケーションが出力するデータを、データ出力先として選択されたアプリケーションに処理させる機能である。なお、共有機能としては、暗黙的共有機能と、明示的共有機能とがあるが、図2では、暗黙的共有機能を代表的に例示して共有機能を説明する。
図2は、暗黙的共有機能を説明する図であって、データ出力元のアプリケーション(以下、共有元アプリ60)の画面がフォアグラウンド(前面)にある状態、すなわち、共有元アプリ60がアクティブ化されている状態において、ユーザが共有機能の実行を開始指示した場合における処理の流れを示している。
図2に示すように、暗黙的共有機能において、共有元アプリ60は、OS14aのAPIを呼び出し、共有機能の実行を要求する(1)。この要求は、共有機能により他のアプリケーションに処理させようとするデータ(以下、共有データ)のURI(Uniform Resource Identifier)と、共有データの形式(フォーマット)を示すタイプと、共有データに対して実行させる処理を示すアクションとを含む。URIは、共有データの所在を示す情報であり、本実施形態の場合、ファイルパスで構成される。タイプは、共有データのフォーマットを指定する情報であり、アクションは、処理の種類を指定する情報である。OS14aは、共有元アプリ60から通知されるタイプとアクションとを検索条件として、携帯端末10にインストールされた全てのアプリケーション(以下、全てのアプリ62)の中から、データ出力先のアプリケーション(以下、共有先アプリ64)となり得る候補を検索する(2)。
携帯端末10にインストールされた各アプリケーションは、自アプリケーションにより処理可能なフォーマットを示すタイプと、実行可能な処理の種類を示すアクションとを予め宣言している。よって、OS14aは、共有元アプリ60から通知されたタイプとアクションとを検索条件として全てのアプリ62を検索する。そして、共有元アプリ60から通知されたタイプが指定するフォーマットのデータを処理可能であり、且つ、共有元アプリ60から通知されたアクションが指定する処理の種類に対応したアプリケーションを抽出し、その識別情報を取得する(3)。
次に、OS14aは、検索により発見抽出されたアプリケーション、すなわち、共有先アプリ64の候補であるアプリケーションの名称の一覧を、LCD18に表示させる(4)。そして、ユーザがいずれかを選択すると(5)、OS14aは、選択された共有先アプリ64を起動して、その共有先アプリ64の画面をフォアグラウンド、すなわち、共有先アプリ64がアクティブ化されている状態とし、共有元アプリ60から通知された共有データのURIと、タイプと、アクションとを通知する(6)。
その結果、ユーザにより選択された共有先アプリ64の画面がフォアグラウンドに表示され、共有先アプリ64は、通知されたURIで特定される共有データにアクセスし、アクションの値に従った処理を行う。例えば、LCD18に表示出力する、デバイス30へ出力するなど、その共有先アプリ64で実行可能な各種の処理を行う。
本実施形態のデバイス制御アプリケーション14bは、画像ビューア(ギャラリー)機能やメール機能などを有する共有元アプリ60から、上述した暗黙的共有機能、又は、明示的共有機能によって共有先アプリ64として起動される。例えば、共有元アプリ60によりLCD18に表示された画像から、ユーザが、所望に応じた1又は複数枚の画像を選択した後、共有機能の実行を開始指示したことによってLCD18に表示された一覧の中から、ユーザが、デバイス制御アプリケーション14bを選択した場合に起動される。なお、共有元アプリ60は、フラッシュメモリ14に、その他のアプリケーション(図示せず)として格納されるアプリケーションである。
次に、図3を参照して、共有機能によって共有元アプリ60から起動されたデバイス制御アプリケーション14bの画面がフォアグラウンドに表示されている場合(デバイス制御アプリケーション14bがアクティブ化されている場合)における画面について説明する。
図3(a)は、プレビュー画面70を示す図である。プレビュー画面70は、共有元アプリ60から渡された画像データに基づき、印刷設定メモリ14cに記憶されている印刷設定に応じて生成されたプレビュー画像データの画像71(プレビュー画像71)が表示される画面である。デバイス制御アプリケーション14bが共有機能によって共有元アプリ60から起動されると、デバイス制御アプリケーション14bは、OS14aのAPIを呼び出して、プレビュー画面70をLCD18に表示させ、その中で、共有元アプリ60から渡された画像データに基づいて生成されたプレビュー画像71を表示させる。
プレビュー画面70は、さらに、ページ表示領域72、印刷ボタン73を含む。ページ表示領域72は、プレビュー画像71の全ページ数(即ち、共有元アプリ60から渡された画像データの全数)と、現在表示中のプレビュー画像71が、全ページのプレビュー画像のうち何ページ目のプレビュー画像であるかを示すページ番号とを表示する領域である。なお、図3に示す例では、ページ表示領域72に「5/8」と表示され、全ページ数が「8」であり、現在表示中のプレビュー画像71のページ番号が「5」であることを示す。
印刷ボタン73は、デバイス30に対して印刷機能の実行指示を入力するための領域である。ユーザが印刷ボタン73にタッチすると、デバイス制御アプリケーション14bは、共有元アプリ60から渡された画像データと印刷設定メモリ14cに記憶されている印刷設定とに応じた印刷データ(即ち、プレビュー画像71に対応する画像の印刷データ)をデバイス30へ出力させる。具体的には、OS14aのAPIを呼び出して、共有元アプリ60から渡された画像データから印刷設定に応じてCPU11により生成された印刷データを、無線LAN送受信部15からデバイス30へ出力させる。
図3(b)は、問い合わせ画面74を示す図である。問い合わせ画面74は、問い合わせ領域75が表示される画面である。本実施形態の問い合わせ画面74は、プレビュー画面70を構成する各部(プレビュー画像71、ページ表示領域72、及び印刷ボタン73)をグレーアウトした前面に、問い合わせ領域75を表示させた画面として構成される。
デバイス制御アプリケーション14bは、プレビュー画面70がフォアグラウンドに表示された状態で、筐体10aの正面に設けられたBACKキー16aが操作(押下)され、かつ、プレビュー画像71の印刷がされていない等の所定の条件を満たす場合に、OS14aのAPIを呼び出して、LCD18に表示させる画面を、プレビュー画面70から、問い合わせ画面74に切り換えさせる。問い合わせ画面74においては、問い合わせ領域75のみでユーザ操作を受け付け、グレーアウトされた印刷ボタン73ではユーザ操作を受け付けない。
問い合わせ領域75は、本アプリケーション(デバイス制御アプリケーション14b)を終了しても良いか否かをユーザに問い合わせる領域である。問い合わせ領域75は、プレビュー画像71が印刷されてないことや、操作を続けた場合にプレビュー画像71のデータ(プレビュー画像データ)が失われること等をユーザに伝達するメッセージを表示するためのメッセージ表示領域75cと、OKボタン75aと、キャンセルボタン75bとを含む。
OKボタン75aは、BACKキー16aの操作に応じた処理を続行させる指示を入力するための領域である。ユーザが、OKボタン75aをタッチすると、デバイス制御アプリケーション14bは、BACKキー16aの操作に応じた処理を続行、すなわち、本アプリケーション(デバイス制御アプリケーション14b)を終了する。これに伴い、直前のアプリケーションである共有元アプリ60がアクティブ化する。
一方、キャンセルボタン75bは、BACKキー16aの操作に応じた処理をキャンセルさせる指示を入力するための領域である。ユーザが、キャンセルボタン75bをタッチすると、デバイス制御アプリケーション14bは、BACKキー16aの操作に応じた処理をキャンセルし、OS14aのAPIを呼び出して、LCD18に表示させる画面を、問い合わせ画面74から、プレビュー画面70に切り換えさせる。
ところで、デバイス制御アプリケーション14bが終了すると、デバイス制御アプリケーション14bの実行用に確保されていたRAM13の作業領域が開放されるので、作成したプレビュー画像データが失われる可能性が高い。プレビュー画像データが失われた場合、デバイス制御アプリケーション14bを再度起動したとしても、プレビュー画像データを再作成する必要があるため、その分、時間を費やす必要がある。しかし、本実施形態のデバイス制御アプリケーション14bは、上述した通り、プレビュー画面70がフォアグラウンドに表示された状態で、BACKキー16aが操作されたとしても、所定の条件を満たしていれば、問い合わせ画面74をLCD18に表示させる。つまり、デバイス制御アプリケーション14bは、問い合わせ画面74をLCD18に一旦表示させることによって、BACKキー16aの操作に伴う本アプリケーションの終了を制限する。デバイス制御アプリケーション14bの終了が制限されたことにより、本アプリケーションで作成したプレビュー画像データの喪失を防ぐことができる。これにより、BACKキー16aの誤操作によってプレビュー画像データが失われることも防ぐことができるので、誤操作によってユーザが被る不利益(例えば、データの再作成に時間を要する、等)を抑制することができ、アプリケーションとしてのユーザビリティが高まる。
図4は、携帯端末10において実行される共有印刷処理を示すフローチャートである。この処理は、ユーザが共有元アプリ60において1又は複数の画像を選んだ後、共有機能により共有先アプリ64としてデバイス制御アプリケーション14bを選択した場合に、デバイス制御アプリケーション14bの起動に伴って開始される。なお、以下に説明する図4のフローチャートに示す各ステップは、デバイス制御アプリケーション14bがCPU11に実行させ、または、デバイス制御アプリケーション14bがOS14aなどの機能を利用してCPU11に実行させるものとして説明する。ただし、各フローチャートが含むステップは、OS14aやその他アプリケーションがCPU11に実行させるステップに一部置き換えられても良い。
まず、ステップS401(以下、ステップを省略)において、CPU11は、共有元アプリ60から渡された画像データの数、すなわち、共有元アプリ60においてユーザが選択した画像の数(以下、この数を「共有データ数」と称す)を、共有元アプリ60からOS14aを介して通知された共有データのURI(図2の(6))の数に基づき取得する(S401)。次に、CPU11は、共有元アプリ60から渡された画像データ、すなわち、共有元アプリ60においてユーザが選択した画像に対応する画像データ(以下、この画像データを「共有データ」を称す)のパスを取得する(S402)。具体的に、CPU11は、共有元アプリ60からOS14aを介して通知された共有データのURIから、共有データのパスを取得する。
次に、CPU11は、取得した共有データのパスにより指定される画像データ(即ち、共有元アプリ60から渡された画像データ)と、印刷設定メモリ14cに記憶されている印刷設定とに基づき、プレビュー画像データを作成する(S403)。次に、CPU11は、RAM13内に設けられている印刷フラグ(図示せず)にゼロを設定する(S404)。なお、印刷フラグは、共有元アプリ60から渡された画像データに対し、ユーザによる印刷指示がなされたか否かを示すフラグである。具体的に、印刷フラグにゼロが設定されている場合には、共有元アプリ60から渡された画像データに対する印刷指示が未だなされていないことを示す。一方で、印刷フラグに1が設定されている場合には、共有元アプリ60から渡された画像データに対して印刷指示が既になされていることを示す。
次に、CPU11は、プレビュー画面70(図3(a))をLCD18に表示させる(S405)。次に、印刷指示があった場合、すなわち、ユーザによる印刷ボタン73がタッチされた場合(S406:Yes)、CPU11は、印刷処理を実行する(S414)。具体的に、CPU11は、共有元アプリ60から渡された画像データと印刷設定メモリ14cに記憶される印刷設定とに応じた印刷データを生成するとともに、生成した印刷データを、無線LAN送受信部15からデバイス30へ出力させる。この印刷データを受信したデバイス30は、印刷データに基づく画像を印刷機能によって原稿に印刷する。次に、CPU11は、印刷フラグに1を設定し(S415)、処理をS406に移行する。
一方で、印刷指示がない、すなわち、ユーザによる印刷ボタン73がタッチされておらず、かつ、BACKキー16aが操作(押下)されていない場合(S406:No,S407:No)、CPU11は、処理をS406に戻す。また、印刷指示がなく、かつ、BACKキー16aが操作された場合に(S406:No,S407:Yes)、CPU11は、S401において取得した共有データ数(即ち、共有元アプリ60から渡された画像データの数)が1より多いか否かを判断する(S408)。
S408において、CPU11は、共有データ数が1より多いと判断した場合には(S408:Yes)、印刷フラグに1が設定されているか否かを判断する(S409)。S409において、CPU11は、印刷フラグにゼロが設定されていると判断した場合には(S409:No)、問い合わせ画面74(図3(b))をLCD18に表示させる(S410)。
次に、問い合わせ画面74に表示されるOKボタン75a又はキャンセルボタン75bのうち、キャンセルボタン75bがタッチされた場合(S411:No)、CPU11は、LCD18に表示されている問い合わせ画面74を消去させ(S412)、プレビュー画面71を表示させ(S413)、処理をS406に移行する。一方で、問い合わせ画面74に表示されるOKボタン75aがタッチされた場合(S411:Yes)、CPU11は、本アプリケーション(デバイス制御アプリケーション14b)による処理を終了する。S408において、CPU11が、共有データ数が1以下であると判断した場合(S408:No)、又は、S409において、CPU11が、印刷フラグに1が設定されていると判断した場合(S409:Yes)もまた、CPU11は、本アプリケーションによる処理を終了する。
上述した通り、本実施形態のデバイス制御アプリケーション14bによれば、共有元アプリ60から共有機能によって起動された共有印刷処理の実行中に、BACKキー16aがユーザ操作された場合であっても、共有データ数や印刷フラグの設定が所定の条件を満たしている場合には、本アプリケーションを終了させず、S410の処理を実行させるように構成されている。つまり、デバイス制御アプリケーション14bは、所定の条件を満たしている場合には、問い合わせ画面74をLCD18に一旦表示させることによって、BACKキー16aの操作に伴う本アプリケーションの終了を制限するように構成されている。よって、BACKキー16aが誤操作された場合であっても、本アプリケーションの終了に伴うプレビュー画像データの喪失を抑制できるので、BACKキー16aの誤操作によってユーザが被る不利益(例えば、データの再作成に費やす時間)を抑制することができる。また、本アプリケーションを終了させるか否かは、問い合わせ画面74に表示されたボタン75a,75bに対するユーザの操作に基づくので、ユーザの意図を反映させることができる。従って、本実施形態のデバイス制御アプリケーション14bは、アプリケーションとしてのユーザビリティが高い。
また、デバイス制御アプリケーション14bは、BACKキー16aがユーザ操作された場合に、本アプリケーション(デバイス制御アプリケーション14b)の終了を制限させるための条件を設けている。そのため、BACKキー16aが操作されても、問い合わせ画面74が必ずしもLCD18に表示されるわけではなく、アプリケーションの終了が制限される(具体的には、問い合わせ画面74が表示される)ことにより逆に感じるユーザの煩わしさを軽減することができる。
特に、デバイス制御アプリケーション14bは、共有データの数、すなわち、共有元アプリ60から渡された画像データの数を、アプリケーションの終了を制限させるか否かの条件としている。共有元アプリ60から渡された画像データの数が多い程、プレビュー画像データの作成に要する時間も長くなるので、プレビュー画像データが失われた場合にユーザが被る不利益も大きくなる。一方、共有元アプリ60から渡された画像データの数がある程度少なければ、プレビュー画像データが失われたとしても、ユーザが被る不利益は比較的少なく、むしろ、問い合わせ画面74の表示を煩わしいと感じる可能性が高い。よって、共有データの数を、アプリケーションの終了を制限するか否かの条件とすることにより、誤操作によるユーザの不利益を解消しつつ、アプリケーションとしてのユーザビリティをさらに高めることができる。
また、デバイス制御アプリケーション14bは、RAM13内に設けられた印刷フラグ(図示せず)の設定、すなわち、ユーザによる印刷指示がなされたか否かを、アプリケーションの終了を制限させるか否かの条件としている。ユーザによる印刷指示がなされていない場合(即ち、印刷フラグがゼロに設定されている場合)には、当然、共有元アプリ60から渡された画像データに基づく画像がデバイス30によって印刷されておらず、プレビュー画像データが失われた場合には、プレビュー画像データの再作成を要する可能性が高い。そのため、プレビュー画像データが失われた場合には、ユーザが不利益を被る可能性が高い。一方、ユーザによる印刷指示がなされた場合(即ち、印刷フラグが1に設定されている場合)には、プレビュー画像データが失われたとしても、印刷という目的が既に達成されているので、プレビュー画像を再作成する必要がない可能性が高く、むしろ、問い合わせ画面74の表示を煩わしいと感じる可能性が高い。よって、印刷フラグの設定を、アプリケーションの終了を制限するか否かの条件とすることにより、誤操作によるユーザの不利益を解消しつつ、アプリケーションとしてのユーザビリティをさらに高めることができる。
次に、図5を参照して第2実施形態について説明する。上述した第1実施形態では、デバイス制御アプリケーション14bは、BACKキー16aが操作された場合に、問い合わせ画面74をLCD18に表示させることによって、アプリケーションの終了を制限する構成としたが、第2実施形態では、BACKキー16aを無効化することにより、BACKキー16aが操作された場合にアプリケーションが終了することを制限する。図5は、第2実施形態の共有印刷処理を示すフローチャートである。第2実施形態のデバイス制御アプリケーション14bは、第1実施形態の共有印刷処理(図4)に代えて、図5に示す共有印刷処理をCPU11に実行させる点が、第1実施形態と異なり、その他の点において同一である。なお、図5に示す共有印刷処理のうち、第1実施形態の共有印刷処理(図4)と同一の部分については、同一のステップ番号を付して、その説明を省略する。
第2実施形態の共有印刷処理では、まず、CPU11は、BACKキー16aを無効化する(S501)。次に、CPU11は、第1実施形態と同様に、S401〜S403,S405の処理を実行する。
次に、CPU11は、S401において取得した共有データ数(即ち、共有元アプリ60から渡された画像データの数)が1より多いか否かを判断する(S502)。S502において、共有データ数が1以下である場合に(S502:No)、CPU11は、BACKキー16aを有効化し(S503)、処理をS406へ移行する。一方、S502において、共有データ数が1より多い場合には(S502:Yes)、CPU11は、S503の処理をスキップして、処理をS406へ移行する。
次に、印刷指示があった場合(S406:Yes)、CPU11は、印刷処理を実行する(S414)。S414の処理後、CPU11は、BACKキー16aを有効化し(S504)、処理をS406へ戻す。一方、印刷指示がなく、かつ、BACKキー16aが操作(押下)されていない場合には(S406:No,S407:No)、CPU11は、処理をS406に戻す。
一方、印刷指示がなく、かつ、BACKキー16aが操作された場合(S406:No,S407:Yes)、CPU11は、本アプリケーションによる処理を終了する。なお、上述した通り、第2実施形態のデバイス制御アプリケーション14bは、S501の処理により、BACKキー16aが無効化されるので、S503又はS504の処理が実行されない限り、ユーザがBACKキー16aを操作したとしても、その操作が無効化されるので、S407においてNoと判断される。そして、S503又はS504の処理により、BACKキー16aが有効化されると、BACKキー16aが操作された場合に、S407においてYesと判断される。
第2実施形態のデバイス制御アプリケーション14bによれば、共有元アプリ60から共有機能によって起動された共有印刷処理では、BACKキー16aが無効化されるので、BACKキー16aが操作されたとしても、その操作が無効化され、本アプリケーションが終了しないように構成されている。つまり、第2実施形態のデバイス制御アプリケーション14bは、BACKキー16aを無効化することによって、BACKキー16aの操作に伴う本アプリケーション(デバイス制御アプリケーション14b)の終了を制限するように構成されている。その一方で、無効化されたBACKキー16aを有効化することにより、本アプリケーションの終了を制限させないための条件を設けているので、共有データ数が少なかったり、印刷指示がされているなど、プレビュー画像データが失われたとしてもユーザが被る不利益が比較的少ない場合には、BACKキー16aを有効化するように構成したことにより、アプリケーションの終了が制限されることにより逆に感じるユーザの煩わしさを軽減することができる。よって、誤操作によるユーザの不利益を解消しつつ、アプリケーションとしてのユーザビリティをさらに高めることができる。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態では、通話機能を有する携帯端末10が情報処理装置の一例であったが、パーソナルコンピュータ、デジタルカメラなどの通話機能を持たない各種の装置であっても情報処理装置の一例となり得る。また、タッチパネル17を有しておらず、ハードウェアキーから操作を入力する装置についても、本発明を適用可能である。
また、上記実施形態においては、OS14aはAndroidOSであるものとして説明したが、他のOSが搭載された情報処理装置であっても本発明を適用可能である。
また、上記実施形態において、共有機能はOS14aによって実現されるものとして説明したが、これに代えて、例えばハードウェアやミドルウェアによって共有機能が実現される場合にも本発明を適用可能である。
また、上記実施形態において、携帯端末10とデバイス30との間は、Wi−Fi接続されるものとして説明したが、これに代えて、例えば、Bluetooth(登録商標)により接続される場合にも、本発明を適用可能である。
また、上記実施形態では、ハードウェアキーであるBACKキー16aを、共有元アプリ60から起動されたデバイス制御アプリケーション14bを終了させるキーとして説明したが、BACKキー16aの機能を、LCD18に表示させたボタンに持たせる構成としてもよい。すなわち、デバイス制御アプリケーション14bは、LCD18に表示させたプレビュー画面71の中に、BACKキー16aの機能が割り当てられたボタン(以下、「BACKボタン」と称す)を表示させ、このBACKボタンがタッチされた場合に、本アプリケーション(デバイス制御アプリケーション14b)を終了させる構成としてもよい。このように、LCD18に表示させたプレビュー画面71の中に、BACKボタンを表示させた場合には、そのBACKボタンがタッチされたとしても、共有データ数や印刷フラグの設定が所定の条件を満たしている場合には、問い合わせ画面74を表示させて、アプリケーションの終了を制限するように(即ち、上記第1実施形態のように)構成すればよい。また、LCD18に表示させたプレビュー画面71の中に、BACKボタンを表示させる場合には、上記第2実施形態のように、所定の条件下では、そのBACKボタンをグレーアウトする等、ユーザ操作を受け付けないようにすることにより、アプリケーションの終了を制限するように構成してもよい。
さらに、LCD18に表示させたプレビュー画面71の中に、BACKボタンを表示させる構成とした場合、所定の条件下では、BACKボタンをLCD18に表示させないことにより、アプリケーションの終了を制限するように構成してもよい。例えば、図5の共有印刷処理において、CPU11は、S405において、LCD18にプレビュー画面71を表示させる場合に、プレビュー画面71の中に、BACKボタンを表示させないようにし、S503及びS504の処理において、BACKキー16を有効化する処理に代えて、プレビュー画面71の中に、BACKボタンを表示させるように構成してもよい。
また、上記実施形態では、共有データ数が1より多い場合や、印刷フラグがゼロに設定されている場合(即ち、印刷指示がされている場合)を、デバイス制御アプリケーション14bの終了を制限させるための条件としたが、これに代えて、又は、これに加えて、その他の場合を、デバイス制御アプリケーション14bの終了を制限させるための条件としてもよい。
例えば、共有データ(共有アプリ60から渡される画像データ)のデータサイズをデバイス制御アプリケーション14bの終了を制限させるための条件とし、共有データの全データサイズが所定のサイズ以上である場合に、デバイス制御アプリケーション14bの終了を制限させるように構成してもよい。あるいは、共有データのデータサイズが1つでも所定のサイズ以上である場合に、デバイス制御アプリケーション14bの終了を制限させるように構成してもよい。共有データのデータサイズが大きい程、プレビュー画像データの再作成に要する時間が長くなるので、プレビュー画像データが失われた場合にユーザが被る不利益も大きくなる。一方、共有データのデータサイズがある程度小さい場合には、プレビュー画像データが失われたとしても、ユーザが被る不利益は比較的小さく、むしろ、デバイス制御アプリケーション14bの終了が制限されることに対して煩わしさを感じる可能性が高い。よって、共有データのデータサイズを、BACKキー16aの操作に伴うアプリケーションの終了を制限するか否かの条件とした場合もまた、上記実施形態と同様の利点を提供できる。
別の例としては、共有データ(共有アプリ60から渡される画像データ)のフォーマットを、デバイス制御アプリケーション14bの終了を制限させるための条件とし、共有データが所定のフォーマットである場合に、デバイス制御アプリケーション14bの終了を制限させるように構成してもよい。例えば、共有データのフォーマットが、PDFフォーマットや、TIFFフォーマットなどの複数ページを含み得るフォーマットである場合には、プレビュー画像データが失われたときに、複数ページ分のプレビュー画像データを再作成するために長い時間を要する可能性があり、それにより、ユーザが不利益を被る可能性がある。一方、共有データのフォーマットが、JPEGフォーマットや、GIFフォーマットなど、1つの画像データが1つのファイルとなるフォーマットである場合には、プレビュー画像データが失われたとしても、ユーザが被る不利益は少なく、むしろ、デバイス制御アプリケーション14bの終了が制限されることに対して煩わしさを感じる可能性が高い。あるいは、携帯端末の仕様によっては、一部のフォーマット(例えば、PDFフォーマット)の画像データをLCDに表示させることができず、外部のサーバやクラウドなどを利用して、LCDに表示させることが可能な別のフォーマット(例えば、JPEGフォーマット)に変換させるものがある。外部のサーバやクラウドなどを利用したフォーマットの変換には、そのための待ち時間を要するので、変換後のフォーマットの画像データから作成されたプレビュー画像データの喪失は、ユーザに大きな不利益を与える。よって、共有データのフォーマットが、外部のサーバやクラウドなどを利用してフォーマットを変換する必要のあるフォーマットである場合に、デバイス制御アプリケーション14bの終了を制限させることにより、高いユーザビリティを提供することができる。一方で、共有データのフォーマットが、外部のサーバやクラウドなどを利用してフォーマットを変換する必要のないフォーマットである場合には、プレビュー画像データが失われたとしても、ユーザが被る不利益は比較的少なく、むしろ、デバイス制御アプリケーション14bの終了が制限されることに対して煩わしさを感じる可能性が高い。従って、共有データのフォーマットの種類を、BACKキー16aの操作に伴うアプリケーションの終了を制限するか否かの条件とした場合もまた、上記実施形態と同様の利点を提供できる。
また、上記実施形態では、RAM13内に設けられた印刷フラグの設定、すなわち、ユーザによる印刷指示がなされたか否かを、BACKキー16aの操作に伴うアプリケーションの終了を制限するか否かの条件とした。これに代えて、印刷データが無線LAN送受信部15を介してデバイス30へ出力されていない場合に、BACKキー16aの操作に伴うアプリケーションの終了を制限し、印刷データのうちの少なくとも一部(例えば、複数ページのうちの少なくとも1ページ分)が、無線LAN送受信部15を介してデバイス30へ出力された場合には、BACKキー16aの操作に伴ってアプリケーションを終了させるように構成してもよい。あるいは、印刷データのうちの全てが無線LAN送受信部15を介してデバイス30へ出力された場合にのみ、BACKキー16aの操作に伴ってアプリケーションを終了させ、印刷データのうちの少なくとも一部が、無線LAN送受信部15を介してデバイス30へ出力されていない場合には、BACKキー16aの操作に伴うアプリケーションの終了を制限する構成としてもよい。かかる場合、印刷データが全く出力されていない場合における制限の態様と、印刷データの一部だけが出力された場合における制限の態様とを異なるようにしてもよい。例えば、印刷データが全く出力されていない場合と、印刷データの一部だけが出力された場合とで、LCD18に表示させる問い合わせ画面74の内容を変えるようにしてもよい。
また、上記実施形態では、ユーザによる印刷指示がなされたか否かを、BACKキー16aの操作に伴うアプリケーションの終了を制限するか否かの条件としたが、共有元アプリ60から渡された画像データに基づき作成したプレビュー画像データが、外部装置に表示させるために出力されたか否か(又は、そのための指示がなされたか否か)や、外部装置に記憶させるために出力されたか否か(又は、そのための指示がなされたか否か)を、BACKキー16aの操作に伴うアプリケーションの終了を制限するか否かの条件としてもよい。例えば、共有元アプリ60から渡された画像データに基づき作成したプレビュー画像データが、外部装置に表示させるために出力されていない場合に、BACKキー16aの操作に伴うアプリケーションの終了を制限し、作成されたプレビュー画像データが、外部装置に表示させるために出力された場合には、BACKキー16aの操作に伴ってアプリケーションを終了させるように構成してもよい。
また、上記実施形態では、プレビュー画像データを削除することなく、アプリケーション(デバイス制御アプリケーション14b)を終了する構成としたが、アプリケーションを終了する前に、プレビュー画像データを削除させる構成としてもよい。
また、上記実施形態では、Backキー16aの操作に伴いデバイス制御アプリケーション14bを終了する構成とした。かかる構成ではなく、Backキー16aの操作に伴い、デバイス制御アプリケーション14bがバックグラウンド状態になり、共有元のアプリケーションをフォアグラウンド状態になる構成に、本発明を適用してもよい。共有元のアプリケーションがフォアグラウンド状態になることにより、バックグラウンド状態のアプリケーションのために確保したRAM領域をOS14aや他のアプリケーションのために開放する可能性がある。よって、このような構成に対しても、本発明は有効である。なお、バックグラウンド状態にさせることが、非アクティブ化の一例になる。
また、上記実施形態では、プレビュー画面70がフォアグラウンドに表示された状態で、筐体10aの正面に設けられたBACKキー16aが操作され、かつ、所定の条件を満たす場合に、デバイス制御アプリケーション14bは、OS14aのAPIを呼び出して、LCD18に表示させる画面を、プレビュー画面70から、問い合わせ画面74に切り換えさせる構成とした。これに代えて、上記の場合に、デバイス制御アプリケーション14bは、OS14aのAPIを呼び出して、プレビュー画面70と問い合わせ画面74を組み合わせた画面をLCD18に表示させる構成としてもよい。あるいは、上記の場合に、デバイス制御アプリケーション14bは、OS14aのAPIを呼び出して、LCD18に表示中のプレビュー画面70の上に問い合わせ画面74を追加表示させる構成としてもよい。
また、上記実施形態では、ユーザがキャンセルボタン75bをタッチした場合に、デバイス制御アプリケーション14bは、OS14aのAPIを呼び出して、問い合わせ画面74から、プレビュー画面70に切り替えさせる構成とした。これに代えて、上記の場合に、デバイス制御アプリケーション14bは、OS14aのAPIを呼び出して、プレビュー画面70を表示させる構成としてもよい。あるいは、上記の場合に、デバイス制御アプリケーション14bは、OS14aのAPIを呼び出して、LCD18に表示中のプレビュー画面70の上に表示されている問い合わせ画面74を削除させる構成としてもよい。
また、上記実施形態では、共有印刷処理(図4,図5)のS403において、CPU11は、共有元アプリ60から渡された画像データと、印刷設定メモリ14cに記憶されている印刷設定とに基づき、プレビュー画像データを作成する構成とした。これに代えて、S403において、CPU11は、S414において作成するものと同等の印刷データを作成し、その作成した印刷データに基づいてLCD18に表示させるためのプレビュー画像データを作成する構成としてもよい。あるいは、S403において、CPU11は、S414において作成するものと同等の印刷データを生成し、S405において、CPU11は、S403において作成された印刷データを、OS14aのAPIを用いてLCD18に表示させるように構成してもよい。即ち、印刷データがプレビュー画像データを兼ねる構成であってもよい。
また、上記第2実施形態の共有印刷処理(図5)では、上記第1実施形態の共有印刷処理(図4)において使用した印刷フラグを使用しない、即ち、S404及びS415の処理を省略した。これに代えて、第2実施形態の共有印刷処理において、印刷フラグを使用する構成としてもよい。即ち、第2実施形態の共有印刷処理において、第1実施形態の共有印刷処理と同様にS404及びS415の処理を実行させる構成としてもよい。この場合、例えば、第2実施形態の共有印刷処理において、S504の処理を省略し、BACKキー16aが操作された場合に(S407:Yes)、印刷フラグが1に設定されていれば、第1実施形態と同様に問い合わせ画面74をLCD18に表示させる(即ち、S410の処理を実行させる)構成としてもよい。即ち、BACKキー16aの誤操作によってユーザが被る不利益を抑制するための構成として、BACKキー16aの有効化と、問い合わせ画面74の表示とを混在させてもよい。
また、上記実施形態では、電話網通信部22が、携帯電話網100を介して、インターネット(図示せず)に接続することにより、携帯端末10がインターネットを利用できる構成とした。これに換えて、無線LAN受信部15が、ブロードバンドルーター機能を有するアクセスポイント50を介して、インターネット(図示せず)に接続することにより、携帯端末10がインターネットを利用できる構成としてもよい。
また、上記第1実施形態及び第2実施形態の特徴、ならびに、上記変形例の特徴を、適宜組み合わせた実施形態を採用しても良い。
CPU11が、コンピュータ、操作受付部、画像データ処理部、プレビュー画像データ作成部の一例である。LCD18が表示部の一例である。ただし、操作受付部、画像データ処理部、プレビュー画像データ作成部、表示部の各部は、ハードウェア単体、または、本発明のプログラムあるいはオペレーティングシステムなど本発明以外のプログラムを実行することにより動作するハードウェアであっても良い。また、これら各部は、複数のプログラムによる処理を組み合わせて動作するハードウェアであっても良い。
また、上記実施形態において、S403,S405を実行するCPU11が画像表示制御手段の一例である。S414を実行するCPU11が処理制御手段の一例である。S407においてYesと判断されたことに伴いデバイス制御アプリケーション14bを終了させるCPU11が実行手段の一例である。S410又はS501の処理を実行するCPU11が制限手段の一例である。S403を実行するCPU11がプレビュー画像表示制御手段の一例である。S410の処理を実行するCPU11が問合表示制御手段の一例である。S501の処理を実行するCPU11が無効化手段の一例である。CPU11に制御されて動作するLCD18が表示手段の一例である。CPU11に制御されて動作するフラッシュメモリ14がアプリケーション記憶手段の一例である。CPU11に制御されて動作するタッチパネル19が操作受付手段の一例である。CPU11が、画像表示手段、処理手段、実行手段、制限手段の一例である。