(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025039307
(43)【公開日】2025-03-21
(54)【発明の名称】情報処理装置、制御方法、およびプログラム
(51)【国際特許分類】
G06F 3/0486 20130101AFI20250313BHJP
G06F 3/12 20060101ALI20250313BHJP
【FI】
G06F3/0486
G06F3/12 303
G06F3/12 356
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023146301
(22)【出願日】2023-09-08
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【弁理士】
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【弁理士】
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【弁理士】
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【弁理士】
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】川合 遼也
(72)【発明者】
【氏名】河合 優
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA41
5E555AA76
5E555BA06
5E555BA27
5E555BB06
5E555BB27
5E555BC04
5E555BC11
5E555BC17
5E555CA12
5E555CB08
5E555CB12
5E555CB34
5E555CC01
5E555CC08
5E555DB18
5E555DB53
5E555EA07
5E555EA08
5E555EA09
5E555FA00
(57)【要約】
【課題】 ファイルアイコンをドラッグ&ドロップする操作を情報処理装置が受け付ける形態の利便性を向上させることを目的とする。
【解決手段】 前記第1のアプリケーションプログラムが表示する画面に含まれるファイルアイコンをドラッグする操作及びドラッグされた前記ファイルアイコンを第3のアプリケーションプログラムに対応するアプリケーションアイコンにドロップする操作が受け付けられ、且つ、前記第3のアプリケーションプログラムが前記第1のメソッドに対応していないことに基づいて、ドロップされた前記ファイルアイコンに対応するファイルを第2のメソッドによって前記第3のアプリケーションプログラムに共有するための処理を実行する実行ステップを実行させるプログラムを提供する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
所定のプログラムであって、
情報処理装置のコンピュータに、
第1のアプリケーションプログラムが表示する画面に含まれるファイルアイコンをドラッグする操作及びドラッグされた前記ファイルアイコンを第2のアプリケーションプログラムに対応するアプリケーションアイコンにドロップする操作が受け付けられ、且つ、前記第2のアプリケーションプログラムが第1のメソッドに対応していることに基づいて、ドロップされた前記ファイルアイコンに対応するファイルを前記第1のメソッドによって前記第2のアプリケーションプログラムに共有するための処理を実行し、
前記第1のアプリケーションプログラムが表示する画面に含まれるファイルアイコンをドラッグする操作及びドラッグされた前記ファイルアイコンを第3のアプリケーションプログラムに対応するアプリケーションアイコンにドロップする操作が受け付けられ、且つ、前記第3のアプリケーションプログラムが前記第1のメソッドに対応していないことに基づいて、ドロップされた前記ファイルアイコンに対応するファイルを第2のメソッドによって前記第3のアプリケーションプログラムに共有するための処理を実行する実行ステップを実行させることを特徴とするプログラム。
【請求項2】
前記所定のプログラムは、前記情報処理装置のオペレーティングシステムであることを特徴とする請求項1に記載のプログラム。
【請求項3】
前記第1のアプリケーションプログラムは、印刷用アプリケーションプログラムであることを特徴とする請求項1に記載のプログラム。
【請求項4】
前記第1のメソッドは、UISceneDelegateというプロトコル内に定義されているscene(_:openURLContexts:)というメソッドであることを特徴とする請求項1に記載のプログラム。
【請求項5】
前記第1のメソッドは、UISceneDelegateというプロトコル内に定義されているscene(_:willConnectTo:options:)というメソッドであることを特徴とする請求項1に記載のプログラム。
【請求項6】
前記ファイルアイコンがドロップされたアプリケーションプログラムが起動している場合、前記第1のメソッドは、UISceneDelegateというプロトコル内に定義されているscene(_:openURLContexts:)というメソッドであり、
前記ファイルアイコンがドロップされたアプリケーションプログラムが起動していない場合、前記第1のメソッドは、UISceneDelegateというプロトコル内に定義されているscene(_:willConnectTo:options:)というメソッドであることを特徴とする請求項1に記載のプログラム。
【請求項7】
前記第2のメソッドは、UIApplicationDelegateというプロトコル内に定義されているapplication(_:open:options:)というメソッドであることを特徴とする請求項1に記載のプログラム。
【請求項8】
所定のプログラムを有する情報処理装置の制御方法であって、
第1のアプリケーションプログラムが表示する画面に含まれるファイルアイコンをドラッグする操作及びドラッグされた前記ファイルアイコンを第2のアプリケーションプログラムに対応するアプリケーションアイコンにドロップする操作が受け付けられ、且つ、前記第2のアプリケーションプログラムが第1のメソッドに対応していることに基づいて、ドロップされた前記ファイルアイコンに対応するファイルを前記第1のメソッドによって前記第2のアプリケーションプログラムに共有するための処理を実行し、
前記第1のアプリケーションプログラムが表示する画面に含まれるファイルアイコンをドラッグする操作及びドラッグされた前記ファイルアイコンを第3のアプリケーションプログラムに対応するアプリケーションアイコンにドロップする操作が受け付けられ、且つ、前記第3のアプリケーションプログラムが前記第1のメソッドに対応していないことに基づいて、ドロップされた前記ファイルアイコンに対応するファイルを第2のメソッドによって前記第3のアプリケーションプログラムに共有するための処理を実行する実行ステップを有することを特徴とする制御方法。
【請求項9】
所定のプログラムを有する情報処理装置であって、
第1のアプリケーションプログラムが表示する画面に含まれるファイルアイコンをドラッグする操作及びドラッグされた前記ファイルアイコンを第2のアプリケーションプログラムに対応するアプリケーションアイコンにドロップする操作が受け付けられ、且つ、前記第2のアプリケーションプログラムが第1のメソッドに対応していることに基づいて、ドロップされた前記ファイルアイコンに対応するファイルを前記第1のメソッドによって前記第2のアプリケーションプログラムに共有するための処理を実行し、
前記第1のアプリケーションプログラムが表示する画面に含まれるファイルアイコンをドラッグする操作及びドラッグされた前記ファイルアイコンを第3のアプリケーションプログラムに対応するアプリケーションアイコンにドロップする操作が受け付けられ、且つ、前記第3のアプリケーションプログラムが前記第1のメソッドに対応していないことに基づいて、ドロップされた前記ファイルアイコンに対応するファイルを第2のメソッドによって前記第3のアプリケーションプログラムに共有するための処理を実行する実行手段を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、制御方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、ファイルアイコンをドラッグ&ドロップする操作を情報処理装置が受け付けることが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、ファイルアイコンをドラッグ&ドロップする操作を情報処理装置が受け付ける形態が普及するにつれ、当該形態の利便性を向上させることが要望されている。
【0005】
そこで本発明は、ファイルアイコンをドラッグ&ドロップする操作を情報処理装置が受け付ける形態の利便性を向上させることを目的とする。
【課題を解決するための手段】
【0006】
本発明は、所定のプログラムであって、情報処理装置のコンピュータに、第1のアプリケーションプログラムが表示する画面に含まれるファイルアイコンをドラッグする操作及びドラッグされた前記ファイルアイコンを第2のアプリケーションプログラムに対応するアプリケーションアイコンにドロップする操作が受け付けられ、且つ、前記第2のアプリケーションプログラムが第1のメソッドに対応していることに基づいて、ドロップされた前記ファイルアイコンに対応するファイルを前記第1のメソッドによって前記第2のアプリケーションプログラムに共有するための処理を実行し、前記第1のアプリケーションプログラムが表示する画面に含まれるファイルアイコンをドラッグする操作及びドラッグされた前記ファイルアイコンを第3のアプリケーションプログラムに対応するアプリケーションアイコンにドロップする操作が受け付けられ、且つ、前記第3のアプリケーションプログラムが前記第1のメソッドに対応していないことに基づいて、ドロップされた前記ファイルアイコンに対応するファイルを第2のメソッドによって前記第3のアプリケーションプログラムに共有するための処理を実行する実行ステップを実行させることを特徴とする。
【発明の効果】
【0007】
本発明によれば、ファイルアイコンをドラッグ&ドロップする操作を情報処理装置が受け付ける形態の利便性を向上させることができる。
【図面の簡単な説明】
【0008】
【
図2】端末装置及び通信装置の構成図の一例である。
【
図3】端末装置がOSにより実行する処理を示すフローチャートである。
【
図4】端末装置がOSにより実行する処理を示すフローチャートである。
【
図5】端末装置が第1の印刷用アプリにより実行する処理を示すフローチャートである。
【
図6】端末装置が第2の印刷用アプリにより実行する処理を示すフローチャートである。
【発明を実施するための形態】
【0009】
<第1実施形態>
本実施形態の通信システムに含まれる情報処理装置及び通信装置について説明する。情報処理装置として、本実施形態ではスマートフォンを例示しているが、これに限定されず、端末装置、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、通信装置として、本実施形態ではプリンタを例示しているが、これに限定されず、情報処理装置と無線通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等に適用することができる。また、プリンタのみならず複写機やファクシミリ装置、端末装置、スマートフォン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ、スマートスピーカ等にも適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機にも適用可能である。
【0010】
まず、本実施形態を実現するためのシステム構成について説明する。
【0011】
図1は、本実施形態の通信システムの構成の一例を示す図である。このシステムは、通信装置151、端末装置101、アクセスポイント(AP)131、外部サーバ171を含むものとする。
【0012】
端末装置101は、本実施形態の情報処理装置である。通信装置151は、本実施形態の通信装置である。AP131は、端末装置101の外部且つ通信装置151の外部に存在する外部装置である。外部サーバ171は、AP131に接続している装置に、インターネットを介してサービスを提供可能なサーバである。
【0013】
AP131によって形成されるLAN(Local Area Network)には、AP131、通信装置151及び、端末装置101が含まれる。一方、WAN(Wide Area Network)には、AP131及び外部サーバ171が含まれる。
【0014】
本実施形態において、端末装置101は、後述のインフラストラクチャ接続が確立している場合には、AP131を介して通信装置151と通信することができる。さらに、端末装置101は、後述のダイレクト接続が確立している場合には、AP131を介さず、通信装置151と直接通信することができる。なお以下において、APとの接続とは、APが形成するネットワークとの接続に相当する。なお、APは複数のネットワークを同時に形成可能であっても良く、その場合、APとの接続とは、APが形成している複数のネットワークのうちいずれかのネットワークとの接続であっても良い。
【0015】
本実施形態において、端末装置101とAP131の間の接続141と、通信装置151とAP131の間の接続142は、IEEE802.11シリーズの規格に基づく通信方式による接続であるものとする。IEEE802.11シリーズの規格に基づく通信方式とは、具体的には、Wi-Fi(Wireless Fidelity)(登録商標)である。また、端末装置101と通信装置151の間の接続143は、Wi-Fi、又はBluetooth(登録商標) Low Energy(BLE)であるものとする。なお、各接続に用いられる通信方式は、この形態に限定されず、例えば、Bluetooth Classicや、Wi-Fi Aware、Near Field Communication(NFC)等であっても良い。AP131と外部サーバ171はインターネットを介して通信可能であり、AP131がインターネットに接続している状態では、AP131に接続している装置(端末装置101や通信装置151)もインターネットを利用可能となる。なお端末装置101とAP131の間の接続141や通信装置151とAP131の間の接続142は、有線LANによる接続であっても良い。
【0016】
次に、本実施形態の情報処理装置と、本実施形態の情報処理装置と通信可能な通信装置の構成について
図2のブロック図を参照して説明する。また、本実施形態では以下の構成を例に記載するが、本実施形態は通信装置と通信を行うことが可能な装置に関して適用可能なものであり、特にこの図のとおりに機能を限定するものではない。
【0017】
端末装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、無線通信部109、近距離無線通信部110、撮影装置111、有線通信部112等を有する。CPU103、ROM104、RAM105等によって端末装置101のコンピュータが形成される。端末装置101は、スマートフォンのようなデバイスを想定しているが、スマートフォンに限定するものではない。
【0018】
入力インタフェース102は、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。なお、後述の出力インタフェース107と入力インタフェース102とを同一の構成とし、画面の出力とユーザからの操作の受け付けを同一の構成で行うような形態としても良い。
【0019】
CPU103は、システム制御部であり、端末装置101の全体を制御する。
【0020】
ROM104は、CPU103が実行する制御プログラムやデータテーブル、オペレーティングシステム(以下、OSという。)プログラム等の固定データを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェア実行制御を行う。本実施形態では、端末装置101が有するOSは、iOS(登録商標) 17であるものとする。しかしながらこの形態に限定されず、後述するドラッグ&ドロップによるファイル共有機能に対応したOSであれば良い。具体的には、例えば、iPadOS(登録商標) 17であっても良いし、iOS 17より後のバージョンのiOSであっても良い。また本実施形態ではROM104は、印刷用アプリケーションプログラム(以下、印刷用アプリ)を格納する。印刷用アプリは、例えばストアアプリケーションプログラムにより、外部から端末装置101にインストールされる。また、印刷用アプリは、通信装置151のベンダーが提供するアプリである。なお印刷用アプリは、通信装置151に印刷を実行させるための印刷ジョブを送信する機能以外の他の機能を有していても良い。他の機能とは具体的には例えば、通信装置151のネットワークセットアップを行う機能や、通信装置151にスキャンを実行させるためのスキャンジョブを送信する機能である。なお本実施形態においてOSが実行する処理として説明されている処理は、正確には、CPU103が、OS内のプログラムに従って実行する処理である。同様に、印刷用アプリが実行する処理として記載されている処理は、正確には、CPU103が、印刷用アプリに従って実行する処理である。
【0021】
RAM105は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成される。なお、RAM105は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、端末装置101の設定情報や端末装置101の管理データ等を格納するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。
【0022】
外部記憶装置106は、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム、無線通信部109を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムを備えている。また、外部記憶装置106は、これらのプログラムが使用する各種情報や、他の情報処理装置やインターネットから得た画像データも保存している。
【0023】
出力インタフェース107は、表示部108がデータの表示や端末装置101の状態の通知を行うための制御を行うインタフェースである。
【0024】
表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や端末装置101の状態の通知を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部108を介してユーザからの入力を受け付けても良い。本実施形態では、表示部108は、タッチパネルであり、ユーザから指やペンなどの操作子による操作を受け付け可能であるものとする。
【0025】
無線通信部109は、通信装置151やAP131等の装置と無線により接続して、データ通信を実行するための構成である。例えば、無線通信部109は無線通信で通信装置151とダイレクトに通信しても良いし、端末装置101や通信装置151の外部に存在するAP131を介して通信しても良い。本実施形態では、無線通信部109の無線通信方式としては、IEEE802.11規格に基づく通信方式であるWi-Fiが用いられるものとするが、Bluetooth Classic等が用いられても良い。また本実施形態において、無線LANとは、Wi-Fiによるネットワークであるものとする。また、AP131としては、例えば、無線LANルータ等の機器などが挙げられる。なお、本実施形態において、端末装置101と通信装置151とが外部APを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、端末装置101と通信装置151とが外部APを介して接続する方式をインフラストラクチャ接続方式という。
【0026】
近距離無線通信部110は、通信装置151等の装置と近距離無線通信方式により、データ通信を実行するための構成であり、無線通信部109とは異なる通信方式によって通信を行う。近距離無線通信部110は、通信装置151内の近距離無線通信部157と接続可能である。なお、近距離無線通信部110の通信方式として、BLE、Bluetooth ClassicやWi-Fi Aware、NFC等が挙げられる。
【0027】
撮影装置111は、撮影素子で撮影した画像をデジタルデータに変換する装置である。デジタルデータは一度RAM105に格納する。その後、CPU103が実行するプログラムで所定の画像フォーマットに変換し、画像データとして外部記憶装置106に保存する。
【0028】
有線通信部112は、通信装置151やAP131等の装置と有線により接続して、データ通信を実行するための構成である。例えば、有線通信部112は、有線LANにより通信する。本実施形態では、有線LANはEthernetの規格により通信するものとする。なおこの形態に限定されず、有線通信部112は、例えば、USB(Universal Serial Bus)ケーブルにより通信しても良い。
【0029】
通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、無線通信部156、近距離無線通信部157、入力インタフェース158、出力インタフェース159、機能制御部160、表示部161、有線通信部162等を有する。ROM152、RAM153、CPU154等によって通信装置151のコンピュータが形成される。
【0030】
無線通信部156は、端末装置101やAP131等の装置と無線により接続して、データ通信を実行するための構成である。本実施形態では、無線通信部156の無線通信方式としては、Wi-Fiが用いられるものとするが、Bluetooth Classic等が用いられても良い。なお、無線通信部156は、通信装置151内部のAPとして、端末装置101等の装置と接続するためのAP156-aを有している。なお、該APは、端末装置101の無線通信部109に接続可能である。なお、無線通信部156はAP156-aを介して端末装置101とダイレクトに通信しても良いし、AP131を介して端末装置101と通信しても良い。また、AP156-aは、APとして機能するハードウェアであってもよいし、APとして機能するためのソフトウェアにより、無線通信部156がAP156-aとして動作してもよい。また、通信装置151内部のAPは、SSID(Service Set Identifier)やパスワードが異なる複数のAPで構成されていても良い。
【0031】
RAM153は、バックアップ電源を必要とするDRAM等で構成される。なお、RAM153は、図示しないデータバックアップ用の電源が供給されることによってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、RAM153は、CPU154の主メモリとワークメモリとしても用いられ、端末装置101等から受信した印刷情報を一旦保存するための受信バッファや各種の情報を保存する。
【0032】
ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウェア実行制御を行う。また、通信装置151の設定情報や通信装置151の管理データ等の電源供給がされていない場合も保持する必要があるデータを格納するメモリエリアもROM152に設けられている。
【0033】
CPU154は、システム制御部であり、通信装置151の全体を制御する。
【0034】
プリントエンジン155、RAM153に保存された情報や端末装置101等から受信した印刷ジョブに基づき、インク等の記録剤を用いて紙等の記録媒体上に画像形成し、印刷結果を出力する。この時、端末装置101等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められるため、近距離無線通信部157よりも高速に通信可能な無線通信部156を介して受信する。
【0035】
近距離無線通信部157は、端末装置101等の装置と近距離無線通信方式により通信するための構成である。なお、近距離無線通信部157の通信方式として、BLE、Bluetooth ClassicやWi-Fi Aware等が挙げられる。
【0036】
入力インタフェース158は、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。なお、後述の出力インタフェース159と入力インタフェース158とを同一の構成とし、画面の出力とユーザからの操作の受け付けを同一の構成で行うような形態としても良い。出力インタフェース159は、表示部161がデータの表示や通信装置151の状態の通知を行うための制御を行うインタフェースである。
【0037】
機能制御部160は、通信装置151が有する機能を同時に動作させるか、否かの機能動作の管理を行う。
【0038】
表示部161は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や通信装置151の状態の通知を行う。なお、表示部161上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部161を介してユーザからの入力を受け付けても良い。
【0039】
有線通信部162は、端末装置101やAP131等の装置と有線により接続して、データ通信を実行するための構成である。例えば、有線通信部162は、有線LANにより通信する。なおこの形態に限定されず、例えば、USBケーブルにより通信しても良い。
【0040】
<ドラッグ&ドロップによるファイル共有機能について>
本実施形態において端末装置101は、OSのホーム画面を表示可能である。OSのホーム画面には、端末装置101にインストールされているアプリに対応するアイコン(以下、アプリケーションアイコン又はアプリアイコン)が表示される。そして、アプリアイコンがユーザによってタップ操作されると、操作されたアプリアイコンに対応するアプリが起動される。本実施形態において端末装置101は、ファイル管理アプリをインストールしているものとする。ファイル管理アプリは、端末装置101が保持している各種ファイルや端末装置101がアクセス可能な各種ファイルを管理することが可能なアプリであり、それらのファイルの一覧を示す一覧画面を表示することが可能である。一覧画面には例えば、各ファイルが、ファイルに対応するアイコン(ファイルアイコン)として表示される。本実施形態ではファイル管理アプリは例えば、一覧画面において、PDF形式のファイルやJPEG形式のファイル、HEIF形式のファイル、PNG形式のファイルに対応するファイルアイコンを表示するものとする。なお一覧画面には例えば、BMP形式のファイル、TIFF形式のファイル、GIF形式のファイル、MP3形式のファイル、MP4形式のファイルなど他の形式のファイルに対応するファイルアイコンが表示されても良い。そして本実施形態では、ユーザは、ファイル管理アプリが表示しているファイルアイコンを操作子によりタップすることで選択した後、操作子を表示部108から離さずにドラッグすることが可能である。なおこのとき、複数のファイルアイコンが選択されても良く、複数のファイルアイコンが選択された状態で複数のファイルアイコンがドラッグされても良い。また、選択されたファイルアイコンがドラッグされている状態で、ユーザが、OSのホーム画面を表示するための操作を別途行うと、表示部108が表示する画面が、一覧画面からOSのホーム画面に切り替わる。OSのホーム画面を表示するための操作とは例えば、端末装置101が備えている物理ボタンであるホームボタンを押下する操作である。なお例えば、端末装置101が比較的大きい表示部を有する装置(タブレット端末など)であり、ファイル管理アプリが表示する画面とOSのホーム画面を並行して表示部108に表示しているのであれば、選択されたファイルアイコンがドラッグされている状態でOSのホーム画面を表示するための操作が別途行われる必要はない。そして本実施形態では、ユーザは、ファイルアイコンをドラッグしている状態の操作子を、OSのホーム画面に表示されたアプリアイコン上まで操作し、当該アプリアイコン上で操作子を表示部108から離してファイルアイコンをドロップすると、選択されたファイルアイコンに対応するファイルを、当該アプリアイコンに対応するアプリに入力することが可能である。すなわち、本実施形態では、ユーザは、ファイル管理アプリが表示するファイルアイコンをアプリアイコンまでドラッグ&ドロップすることで、当該ファイルアイコンに対応するファイルをアプリに対して入力することが可能である。
【0041】
具体的には、アプリアイコン上でファイルアイコンがドロップされると、端末装置101のOSは、ドロップされたファイルアイコンに対応するファイルを、ファイルアイコンがドロップされたアプリアイコンに対応するアプリがアクセス可能な所定の記憶領域に保存し始める。その後、端末装置101のOSは、ファイルがドロップされたアプリアイコンに対応するアプリに、UISceneDelegateというプロトコル内に定義されているscene(_:openURLContexts:)という所定のメソッドを実行するよう指示する。なお本実施形態において、OSがアプリにメソッドを実行するよう指示する処理は、言い換えれば、OSがアプリにおいて実装されたメソッドを呼び出す処理に相当する。なおこのとき、端末装置101のOSは、ドロップされたファイルアイコンに対応するファイルが保存される領域を示すファイルパスを引数として指示を実行することで、当該ファイルパスを当該アプリに通知する。そして当該アプリが上記指示に基づいて所定のメソッドを実行すると、当該アプリは起動して、OSから取得したファイルパスによって示される領域にアクセスすることで、ファイルを取得する。そして当該アプリは、取得したファイルに対応する処理を実行する。このようにして、ファイル管理アプリから他のアプリにファイルを共有することが可能である。
【0042】
しかしながら、アプリアイコンにファイルアイコンがドロップされたとしても、当該アプリアイコンに対応したアプリがドラッグ&ドロップによるファイル共有機能に対応した処理を実行可能でない場合は、当該アプリは、ドラッグ&ドロップされたファイルアイコンに対応するファイルを適切に処理することができない。具体的には例えば、当該アプリが上記所定のメソッドを実行するためのプログラムを有していない場合は、当該アプリは、端末装置101のOSから上記所定のメソッドの実行を指示されたとしても上記所定のメソッドを実行することができず、ファイルを適切に処理することができない。また、所定のメソッドを実行するためのプログラムを有していないアプリに対して、所定のメソッドの実行が端末装置101のOSから指示された場合は、当該アプリは起動した後、すぐにクラッシュしてしまうことがある。
【0043】
そこで本実施形態では、ドラッグ&ドロップされたデータをアプリが適切に処理可能なようにOSが実行する処理を制御する形態について説明する。
【0044】
図3は、端末装置101がOSにより実行する処理を示すフローチャートである。本フローチャートは、ROM104に格納されたプログラム(具体的にはOS)をCPU103がRAM105に読み出して実行することにより実現される。また本フローチャートは、ドラッグ&ドロップによって、印刷用アプリに対応するアプリアイコンにファイルアイコンがドロップされたことに基づいて開始されるものとする。
【0045】
S301では、CPU103は、印刷用アプリから、印刷用アプリに関する情報を取得する。なおS301においてCPU103は、OSが管理している情報から、印刷用アプリに関する情報を取得しても良い。印刷用アプリに関する情報は、具体的には例えば、他のアプリからファイル共有を受け付ける機能において、ファイルアイコンがドロップされたアプリアイコンに対応するアプリが対応しているファイルの形式を示す形式情報を含む。なお、形式情報は、ファイルがドロップされたアプリアイコンに対応するアプリが対応しているファイルの形式に対応する拡張子を示していてもよい。本実施形態では、印刷用アプリは、他のアプリからファイル共有を受け付ける機能において、PDF形式、JPEG形式、HEIF形式、PNG形式に対応しているものとする。言い換えれば、印刷用アプリの形式情報は、PDF形式、JPEG形式、HEIF形式、PNG形式を示すものであるとする。なお印刷用アプリは、印刷用アプリ上に表示される選択画面おいて選択されたファイルを処理する機能において、上記形式以外の形式のファイルにも対応可能であっても良い。具体的には例えば、印刷用アプリ上に表示される選択画面おいては、BMP形式やTIFF形式、GIF形式などの他の形式のファイルも選択可能であっても良い。そして印刷用アプリは、他の形式のファイルが選択された場合は、他の形式のファイルを印刷するための印刷データを生成して通信装置151に送信可能であっても良い。また本実施形態では、印刷用アプリに関する情報には、具体的には例えば、所定のメソッドである第1のメソッドを印刷用アプリが実行可能かどうかを示すメソッド情報が含まれる。メソッド情報は、言い換えれば、第1のメソッドを実行するためのプログラムを印刷用アプリが有するかどうかを示す情報である。
【0046】
S302では、CPU103は、印刷用アプリに対応するアプリアイコンにドロップされたファイルアイコンに対応するファイルのデータ形式が、S301で取得された形式情報が示す形式と一致するか否かを判定する。そしてCPU103は、一致しないと判定した場合、印刷用アプリにメソッドの実行を指示することなく処理を終了する。すなわち一致しないと判定された場合は、印刷用アプリが起動されたり、アプリアイコンにドロップされたファイルアイコンに対応するファイルが印刷用アプリによって取得されることなく処理が終了される。一方CPU103は、一致すると判定した場合、S303に進む。印刷用アプリに対応するアプリアイコンにドロップされたファイルアイコンに対応するファイルの形式がいずれであるかの情報は、例えば、ファイル管理アプリからOSが取得する。なお、印刷用アプリに対応するアプリアイコンに複数のファイルアイコンが一括でドロップされた場合は、ドロップされた複数のファイルアイコンに対応する複数のファイルのうち1つでも、S301で取得された形式情報が示す形式と一致するものがあれば、本処理においてYESと判定されるものとする。すなわち、印刷用アプリに対応するアプリアイコンに複数のファイルアイコンが一括でドロップされた場合は、ドロップされた複数のファイルアイコンに対応する複数のファイル全てが、S301で取得された形式情報が示す形式と一致しないのであれば、本処理においてNOと判定されるものとする。S303では、CPU103は、印刷用アプリが起動しているか否かを判定する。なお本フローチャートの処理は、OSのホーム画面が表示されている状態で実行される。そのため、本判定が実行されているタイミングにおいて印刷用アプリが起動している状態とは、印刷用アプリがバックグラウンドプロセスで動作している状態に相当する。CPU103は、印刷用アプリが起動していないと判定した場合、S304に進み、印刷用アプリが起動していると判定した場合、S305に進む。
【0047】
S304では、CPU103は、印刷用アプリに、印刷用アプリを起動させるためのメソッドを実行するよう指示する。これにより、印刷用アプリが起動し、表示部108に表示されている画面が、OSのホーム画面から、印刷用アプリが表示する画面に切り替わる。
【0048】
S305では、CPU103は、印刷用アプリが第1のメソッドを実行可能かどうかを、S301で取得したメソッド情報に基づき判定する。具体的にはCPU103は、印刷用アプリがUISceneDelegateというプロトコルに対応しているかどうかを判定する。CPU103は、印刷用アプリが第1のメソッドを実行可能と判定した場合、S306に進み、印刷用アプリが第1のメソッドを実行可能でないと判定した場合、S308に進む。
【0049】
S306では、CPU103は、印刷用アプリに、第1のメソッドを実行するよう指示する。具体的にはCPU103は、印刷用アプリに第1のメソッドを実行させるためのAPI(Application Programming Interface)をOSにより実行する。このAPIが実行されることで、印刷用アプリは第1のメソッドを実行する。第1のメソッドとは上述したように、UISceneDelegateというプロトコル内に定義されているscene(_:openURLContexts:)という所定のメソッドである。なおCPU103は、S303でNOと判定している場合は、所定のメソッドとして、UISceneDelegateというプロトコル内に定義されているscene(_:willConnectTo:options:)というメソッドを実行するよう指示し、S303でYESと判定している場合は、所定のメソッドとして、UISceneDelegateというプロトコル内に定義されているscene(_:openURLContexts:)というメソッドを実行するよう指示しても良い。またこのとき、CPU103は、ドロップされたファイルが保存されている領域を示すファイルパスや、ドロップされたファイルを表示していたアプリ(ここではファイル管理アプリ)の識別情報等を引数として指示を実行することで、引数として使用された情報を印刷用アプリに取得させる。なお第1のメソッドを実行するよう指示する処理においては、CPU103は、複数のファイルパスを引数として使用することが可能である。言い換えれば、第1のメソッドを実行するよう指示する処理においては、CPU103は、印刷用アプリに対応するアプリアイコンに複数のファイルアイコンがドロップされた場合に、ドロップされた複数のファイルアイコンに対応する複数のファイルに対応する複数のファイルパスを印刷用アプリに取得させることができる。ひいては、印刷用アプリに対応するアプリアイコンに複数のファイルアイコンがドロップされた場合に、印刷用アプリは、ドロップされた複数のファイルアイコンに対応する複数のファイルを取得することができる。しかしながらこの形態に限定されず、所定のボタンが操作されたことに基づいて実行される処理(すなわち本フローチャートの処理)においては、第1のメソッドを実行するよう指示する処理においても、第2のメソッドを実行するよう指示する処理と同様、複数のファイルパスを引数として使用できない形態であっても良い。
【0050】
S307では、CPU103は、印刷用アプリに対応するアプリアイコンにドロップされたファイルアイコンに対応するファイルを、印刷用アプリがアクセス可能な所定の記憶領域に保存し始める。なお、ドロップされたファイルアイコンに対応するファイルが、端末装置101の外部のインターネット上に存在する場合、CPU103は、当該ファイルをインターネット上から受信し始め、且つ当該ファイルを所定の記憶領域に保存し始める。なお端末装置101の外部のインターネット上のファイルとは言い換えれば、端末装置101の外部のサーバが保持しているファイルであり、インターネットを経由して端末装置101が取得可能なファイルである。またCPU103は、ドロップされたファイルアイコンに対応するファイルのうち、印刷用アプリが対応しているデータ形式のファイルのみ所定の記憶領域に保存し、印刷用アプリが対応していないデータ形式のファイルは保存しない形態であっても良い。またCPU103は、印刷用アプリに対応するアプリアイコンに複数のファイルアイコンがドロップされた場合には、当該複数のファイルアイコンに対応する複数のファイルを所定の記憶領域に保存し始める。なおS307の処理とS306の処理の順番は限定されない。すなわち例えば、印刷用アプリに対応するアプリアイコンにドロップされたファイルアイコンに対応するファイルの保存が開始された後に、第1のメソッドを実行するよう指示する処理が実行されてファイルパスが印刷用アプリに取得されても良い。また、印刷用アプリに対応するアプリアイコンにドロップされたファイルアイコンに対応するファイルのうち、所定の記憶領域にすでに保存されているファイルがあれば、そのファイルを所定の記憶領域に保存する処理は省略されてよい。所定の記憶領域にすでに保存されているファイルとは例えば、過去に印刷用アプリに対応するアプリアイコンにドロップされたことがあるファイルアイコンに対応するファイルである。その後本フローチャートの処理は終了する。
【0051】
S308では、CPU103は、印刷用アプリに、第2のメソッドを実行するよう指示する。具体的にはCPU103は、印刷用アプリに第2のメソッドを実行させるためのAPIをOSにより実行する。このAPIが実行されることで、印刷用アプリは第2のメソッドを実行する。第2のメソッドとは、UIApplicationDelegateというプロトコル内に定義されているapplication(_:open:options:)というメソッドである。またこのとき、CPU103は、ドロップされたファイルが保存されている領域を示すファイルパスや、ドロップされたファイルを表示していたアプリ(ここではファイル管理アプリ)の識別情報等を引数として指示を実行することで、引数として使用された情報を印刷用アプリに取得させる。なお第2のメソッドを実行するよう指示する処理においては、CPU103は、複数のファイルパスを引数として使用することができない。言い換えれば、第2のメソッドを実行するよう指示する処理においては、CPU103は、印刷用アプリに対応するアプリアイコンに複数のファイルアイコンがドロップされたとしても、ドロップされた複数のファイルアイコンのうち1つのファイルアイコンに対応する1つのファイルに対応する1つのファイルパスを印刷用アプリに取得させることしかできない。ひいては、印刷用アプリに対応するアプリアイコンに複数のファイルアイコンがドロップされたとしても、印刷用アプリは、ドロップされた複数のファイルアイコンのうち1つのファイルアイコンに対応する1つのファイルしか取得することができない。
【0052】
S309では、CPU103は、印刷用アプリに対応するアプリアイコンにドロップされたファイルアイコンに対応するファイルを、印刷用アプリがアクセス可能な所定の記憶領域に保存し始める。なお、ドロップされたファイルアイコンに対応するファイルが、端末装置101の外部のインターネット上に存在する場合、CPU103は、当該ファイルをインターネット上から受信し始め、且つ当該ファイルを所定の記憶領域に保存し始める。またCPU103は、ドロップされたファイルアイコンに対応するファイルのうち、印刷用アプリが対応しているデータ形式のファイルのみ所定の記憶領域に保存し、印刷用アプリが対応していないデータ形式のファイルは保存しない形態であっても良い。またCPU103は、印刷用アプリに対応するアプリアイコンに複数のファイルアイコンがドロップされた場合には、当該複数のファイルアイコンに対応する複数のファイルのうち1つのファイルのみを所定の記憶領域に保存し始める。なおS309の処理とS308の処理の順番は限定されない。すなわち例えば、印刷用アプリに対応するアプリアイコンにドロップされたファイルアイコンに対応するファイルの保存が開始された後に、第2のメソッドを実行するよう指示する処理が実行されてファイルパスが印刷用アプリに取得されても良い。また、印刷用アプリに対応するアプリアイコンにドロップされたファイルアイコンに対応するファイルのうち、所定の記憶領域にすでに保存されているファイルがあれば、そのファイルを所定の記憶領域に保存する処理は省略されてよい。その後本フローチャートの処理は終了する。
【0053】
本実施形態では、上述のように、ファイルアイコンがドロップされたアプリアイコンに対応するアプリが、第1メソッドに対応するアプリかどうかに基づいて、OSが実行するメソッドを切り替える。このような形態とすることで、OSは、ファイルアイコンがアプリアイコンにドロップされた場合に、当該アプリアイコンに対応するアプリの特性に適した処理を実行することができる。上述したように、第1のメソッドは、印刷用アプリに対応するアプリアイコンに複数のファイルアイコンがドロップされた場合に複数のファイルを印刷用アプリが取得することができるという点で、第2のメソッドより優れている。そのため、第1のメソッドに対応するアプリに対してはより優れたメソッドを実行させることで、より優れたファイル共有機能を実行することができる。一方、第1のメソッドに対応していないアプリに対しては、第2のメソッドを実行させることで、アプリをクラッシュさせたりすることなく、ファイル共有機能を実現することができる。
【0054】
なおOSのファイル共有機能は、印刷用アプリに対応するアプリアイコンにファイルアイコンをドロップすること以外の操作によっても実行可能であっても良い。具体的には例えば、ファイル管理アプリが表示しているファイルアイコンのうちユーザによっていずれかが選択された場合、選択されたファイルアイコンに対応するファイルによって示される画像を表示する画面がファイル管理アプリにより表示される。当該画面には、ファイル共有機能を実行するためのボタンでありファイル管理アプリが表示する所定のボタンが含まれている。当該所定のボタンがユーザによって操作されると、ファイル管理アプリは、OSのファイル共有機能を実行するためのAPIを実行する。このAPIが実行されると、OSは以下に示すファイル共有機能を実行する。このときOSのファイル共有機能の対象となるファイルは、選択されたファイルアイコンに対応する1つのファイルである。また具体的には例えば、ファイル管理アプリが表示しているファイルアイコンのうちユーザによって1又は複数が選択された状態でファイルアイコンが長押しされた場合、選択された1又は複数のファイルアイコンに対応するファイルに対して実行する処理を指定するためのメニューがファイル管理アプリにより表示される。当該メニューには、ファイル共有機能を実行するためのボタンでありファイル管理アプリが表示する所定のボタンが含まれている。当該所定のボタンがユーザによって操作されると、ファイル管理アプリは、OSのファイル共有機能を実行するためのAPIを実行する。このAPIが実行されると、OSは以下に示すファイル共有機能を実行する。このときOSのファイル共有機能の対象となるファイルは、選択された1又は複数のファイルアイコンに対応する1又は複数のファイルである。なお上記において例示した方法以外にも、OSのファイル共有機能が実行可能であってもよく、OSのファイル共有機能を実行するための操作は、ファイル管理アプリごとに異なっていても良い。
【0055】
図4は、端末装置101がOSにより実行する処理を示すフローチャートである。本フローチャートは、ROM104に格納されたプログラム(具体的にはOS)をCPU103がRAM105に読み出して実行することにより実現される。また本フローチャートは、ファイル管理アプリが表示する上記の所定のボタンが操作されたことに基づいて開始されるものとする。
【0056】
S401では、CPU103は、端末装置101にインストールされている全てのアプリのうち、OSのファイル共有機能に対応しており、且つOSのファイル共有機能の対象となっているファイルのデータ形式に対応している1又は複数のアプリを特定する。なおOSのファイル共有機能の対象となっているファイルが複数ある場合には、OSのファイル共有機能の対象となっている複数のファイルのうちファイル順番が先頭のファイルのデータ形式に対応している1又は複数のアプリが特定されるものとする。
【0057】
S402では、CPU103は、特定された1又は複数のアプリに対応する1又は複数のアプリアイコンを含む領域を表示する。なお当該領域は、ファイル管理アプリが表示している画面に重層するように表示されても良い。
【0058】
S403では、CPU103は、表示された1又は複数のアプリアイコンのうちいずれかがユーザによって選択されたかどうかを判定する。CPU103は、YESと判定した場合S404に進み、NOと判定した場合、本処理を繰り返して、アプリアイコンのうちいずれかがユーザによって選択されるのを待つ。なお以下では、S403で選択されたアプリアイコンに対応するアプリが、印刷用アプリであるものとして説明を進める。
【0059】
S404では、CPU103は、印刷用アプリから、印刷用アプリに関する情報を取得する。本処理は、S301と同様の処理である。
【0060】
S405では、CPU103は、印刷用アプリが起動しているか否かを判定する。なお本フローチャートの処理は、ファイル管理アプリが表示されている状態で実行される。そのため、本判定が実行されているタイミングにおいて印刷用アプリが起動している状態とは、印刷用アプリがバックグラウンドプロセスで動作している状態に相当する。CPU103は、印刷用アプリが起動していないと判定した場合、S406に進み、印刷用アプリが起動していると判定した場合、S407に進む。
【0061】
S406では、CPU103は、印刷用アプリに、印刷用アプリを起動させるためのメソッドを実行するよう指示する。これにより、印刷用アプリが起動し、表示部108に表示されている画面が、ファイル管理アプリが表示する画面から、印刷用アプリが表示する画面に切り替わる。
【0062】
S407では、CPU103は、印刷用アプリが第1のメソッドを実行可能かどうかを、S404で取得したメソッド情報に基づき判定する。印刷用アプリが第1のメソッドを実行可能かどうかの判定とは言い換えれば、印刷用アプリが第1のメソッドに対応しているかどうかの判定である。本処理では具体的にはCPU103は、印刷用アプリがUISceneDelegateというプロトコルに対応しているかどうかを判定する。CPU103は、印刷用アプリが第1のメソッドを実行可能と判定した場合、S408に進み、印刷用アプリが第1のメソッドを実行可能でないと判定した場合、S410に進む。
【0063】
S408では、CPU103は、印刷用アプリに、第1のメソッドを実行するよう指示する。本処理はS306と同様の処理である。なお第1のメソッドを実行するよう指示する処理においては、CPU103は、複数のファイルアイコンが選択された状態で所定のボタンが操作された場合に、選択された複数のファイルアイコンに対応する複数のファイルに対応する複数のファイルパスを印刷用アプリに取得させることができる。ひいては、複数のファイルアイコンが選択された状態で所定のボタンが操作された場合に、印刷用アプリは、選択された複数のファイルアイコンに対応する複数のファイルを取得することができる。
【0064】
S409では、CPU103は、OSのファイル共有機能の対象となっているファイルを、印刷用アプリがアクセス可能な所定の記憶領域に保存し始める。なお、OSのファイル共有機能の対象となっているファイルが、端末装置101の外部のインターネット上に存在する場合、CPU103は、当該ファイルをインターネット上から受信し始め、且つ当該ファイルを所定の記憶領域に保存し始める。またCPU103は、OSのファイル共有機能の対象となっているファイルのうち、印刷用アプリが対応しているデータ形式のファイルのみ所定の記憶領域に保存し、印刷用アプリが対応していないデータ形式のファイルは保存しない形態であっても良い。またCPU103は、複数のファイルアイコンが選択された状態で所定のボタンが操作された場合には、OSのファイル共有機能の対象となっているファイルである、当該複数のファイルアイコンに対応する複数のファイルを所定の記憶領域に保存し始める。なおS408の処理とS409の処理の順番は限定されない。すなわち例えば、選択されたファイルアイコンに対応するファイルの保存が開始された後に、第1のメソッドを実行するよう指示する処理が実行されてファイルパスが印刷用アプリに取得されても良い。また、OSのファイル共有機能の対象となっているファイルのうち、所定の記憶領域にすでに保存されているファイルがあれば、そのファイルを所定の記憶領域に保存する処理は省略されてよい。所定の記憶領域にすでに保存されているファイルとは例えば、過去に所定のボタンの操作によりOSのファイル共有機能の対象となったことがあるファイルである。その後本フローチャートの処理は終了する。
【0065】
S410では、CPU103は、印刷用アプリに、第2のメソッドを実行するよう指示する。本処理はS308と同様の処理である。なお第2のメソッドを実行するよう指示する処理においては、CPU103は、複数のファイルアイコンが選択された状態で所定のボタンが操作されたとしても、選択された複数のファイルアイコンのうち1つのファイルアイコンに対応する1つのファイルに対応する1つのファイルパスを印刷用アプリに取得させることしかできない。ひいては、複数のファイルアイコンが選択された状態で所定のボタンが操作されたとしても、印刷用アプリは、選択された複数のファイルアイコンのうち1つのファイルアイコンに対応する1つのファイルしか取得することができない。
【0066】
S411では、CPU103は、OSのファイル共有機能の対象となっているファイルを、印刷用アプリがアクセス可能な所定の記憶領域に保存し始める。なお、OSのファイル共有機能の対象となっているファイルが、端末装置101の外部のインターネット上に存在する場合、CPU103は、当該ファイルをインターネット上から受信し始め、且つ当該ファイルを所定の記憶領域に保存し始める。またCPU103は、OSのファイル共有機能の対象となっているファイルのうち、印刷用アプリが対応しているデータ形式のファイルのみ所定の記憶領域に保存し、印刷用アプリが対応していないデータ形式のファイルは保存しない形態であっても良い。またCPU103は、複数のファイルアイコンが選択された状態で所定のボタンが操作された場合には、当該複数のファイルアイコンに対応する複数のファイルのうち1つのファイルのみを所定の記憶領域に保存し始める。なおS410の処理とS411の処理の順番は限定されない。すなわち例えば、選択されたファイルアイコンに対応するファイルの保存が開始された後に、第2のメソッドを実行するよう指示する処理が実行されてファイルパスが印刷用アプリに取得されても良い。また、OSのファイル共有機能の対象となっているファイルのうち、所定の記憶領域にすでに保存されているファイルがあれば、そのファイルを所定の記憶領域に保存する処理は省略されてよい。所定の記憶領域にすでに保存されているファイルとは例えば、過去に所定のボタンの操作によりOSのファイル共有機能の対象となったことがあるファイルである。その後本フローチャートの処理は終了する。
【0067】
次に、第1のメソッドの実行や第2のメソッドの実行がOSから印刷用アプリに指示されたことに基づいて、印刷用アプリが実行する処理について説明する。
【0068】
図5は、端末装置101が第1メソッドに対応している印刷用アプリ(以下、第1の印刷用アプリ)により実行する処理を示すフローチャートである。本フローチャートは、ROM104に格納されたプログラム(具体的には第1の印刷用アプリ)をCPU103がRAM105に読み出して実行することにより実現される。また本フローチャートは、ドラッグ&ドロップによって、第1の印刷用アプリに対応するアプリアイコンにファイルがドロップされたことに基づいて開始されるものとする。また、本フローチャートは、所定のボタンが操作されたことによりOSが表示する1又は複数のアプリアイコンから第1の印刷用アプリに対応するアプリアイコンが選択されたことに基づいて開始されるものとする。より具体的には、本フローチャートは、OSから第1の印刷用アプリに第1のメソッドの実行が指示されることに基づいて開始されるものとする。なお本フローチャートの以下の説明において印刷用アプリとは、第1の印刷用アプリである。
【0069】
S501では、CPU103は、印刷用アプリに通信装置151が登録されているか否かを判定する。本実施形態では、印刷用アプリは、端末装置101とネットワークを介して接続している通信装置151から、通信装置151の能力情報を取得することで、印刷用アプリ上に通信装置151を登録することが可能である。すなわち印刷用アプリに通信装置151が登録されていない状態とは、印刷用アプリが、端末装置101とネットワークを介して接続している通信装置151から、通信装置151の能力情報を取得していない状態に相当する。なお印刷用アプリは、印刷用アプリ上に通信装置151が登録されていれば、当該通信装置151に対して、印刷ジョブやスキャンジョブを送信することが可能となる。CPU103は、NOと判定した場合、S502に進み、YESと判定した場合、S504に進む。
【0070】
S502では、CPU103は、印刷用アプリに通信装置151を登録するようユーザを誘導するためのメッセージを含むダイアログを表示する。ここで表示されるダイアログの一例を
図7(a)に示す。当該ダイアログにはOKボタンが含まれるものとし、OKボタンがタップ操作されると、S503に進む。
【0071】
S503では、CPU103は、印刷用アプリに通信装置151を登録するための登録画面を表示する。ここで表示される登録画面の一例を
図7(b)に示す。本処理においてCPU103は、端末装置101が接続しているネットワーク上に存在する通信装置151であり、且つ印刷用アプリに対応する通信装置151を検索する。そして、この検索により発見された通信装置151の一覧が、登録画面に表示される。なお印刷用アプリに対応する通信装置151とは、印刷用アプリのベンダーと同じベンダーによって提供される通信装置151である。一覧からいずれかの通信装置151が選択されると、CPU103は、選択された通信装置151との通信を開始し、選択された通信装置151の能力情報を取得する。これにより、印刷用アプリに、選択された通信装置151が登録されることとなる。登録が完了すると、
図7(c)に示すような、印刷用アプリのホーム画面を表示して本フローチャートの処理を終了する。なお印刷用アプリのホーム画面には、印刷用アプリに登録された通信装置151を示すアイコンが表示される。また、印刷用アプリのホーム画面には、印刷用アプリによって実行可能な各種機能を実行するためのボタンが表示される。なお登録が完了した後、印刷用アプリのホーム画面を表示するのではなく、S506に進むことで、印刷用アプリに対応するアプリアイコンにドロップされたファイルを印刷するためのフローに進んでも良い。
【0072】
S501の判定の結果がYESであった場合に実行されるS504では、CPU103は、印刷用アプリに現在登録されている通信装置151を使用して印刷を実行するかどうかをユーザに確認するための確認ダイアログを表示する。ここで表示されるダイアログの一例を
図7(d)に示す。確認ダイアログには、印刷用アプリに現在登録されている通信装置151の名前や型番が表示される。また、確認ダイアログには「はい」ボタンと「いいえ」ボタンが含まれるものとし、いずれかのボタンがタップ操作されると、S505に進む。
【0073】
S505では、CPU103は、「はい」ボタンがタップ操作されたか否かを判定する。CPU103は、「いいえ」ボタンがタップ操作されたことによりNOと判定した場合、S503に進むことで、別の通信装置151を印刷用アプリに登録するための処理を実行する。一方、CPU103は、「はい」ボタンがタップ操作されたことによりYESと判定した場合、S506に進む。
【0074】
S506では、CPU103は、OSのファイル共有機能の対象となるファイルのうち、ファイル順番がi番目のファイルが、PDF形式のファイルか否かを判定する。なおOSのファイル共有機能の対象となるファイルとは、印刷用アプリに対応するアプリアイコンにドロップされたファイルアイコンに対応するファイルや、所定のボタンが操作されたときに選択されているファイルアイコンに対応するファイルである。またファイル順番とは、第1のメソッドや第2のメソッドによりOSから印刷用アプリに入力された順番に相当する順番である。また、ファイル順番は、ファイル管理アプリが表示する一覧画面においてソートされたファイルのソート順番に相当する形態であっても良い。すなわち例えば、一覧画面において名前でソートされていた場合は、ファイル順番は名前順となり、一覧画面においてデータサイズでソートされていた場合は、ファイル順番はデータサイズ順となる形態であっても良い。そして、iの初期値は1である。CPU103は、YESと判定した場合、S507に進み、NOと判定した場合、S513に進む。なおNOと判定される場合とは具体的には、ファイル順番がi番目のファイルが、JPEG形式のファイル、HEIF形式のファイル、およびPNG形式のファイルのうちいずれかのファイルである場合である。なおJPEG形式のファイル、HEIF形式のファイル、およびPNG形式のファイルは、画像ファイルである。なお、PDF形式のファイルは、1つのファイルが複数ページ分の画像を含むことがあるが、画像ファイルは、1つのファイルで1ページ分の画像しか含まない。
【0075】
S507では、CPU103は、OSのファイル共有機能の対象となるファイルでありPDF形式のファイルのうち、ファイル順番が先頭のファイルのみを特定する。OSのファイル共有機能の対象となるファイルのうち、ここで特定されたファイルのみがプレビュー画面に表示されることとなる。具体的には例えば、OSのファイル共有機能の対象となるファイルがPDF形式のファイル1つのみである場合は、その1つのファイルのみが特定される。また例えば、OSのファイル共有機能の対象となるファイルが複数のPDF形式のファイルである場合は、複数のPDF形式のファイルのうちファイル順番が先頭のファイルのみが特定される。また例えば、印刷用アプリに対応するアプリアイコンにドロップされたファイルが、形式情報が示す形式と一致しない形式のファイルとPDF形式のファイルとを含む場合は、形式情報が示す形式と一致しない形式のファイルのほうがファイル順番が早いとしても、形式情報が示す形式と一致しない形式のファイルは特定されずに、PDF形式のファイルのうち、ファイル順番が先頭のファイルのみが特定される。
【0076】
S508では、CPU103は、OSから受け取ったファイルパスを用いて、当該ファイルパスが示す領域に保存されているファイルであり、S507で特定されたファイルの取得を試みる。なお上述したように、当該ファイルパスが示す領域は、上記の所定の記憶領域内の領域である。
【0077】
S509では、CPU103は、S508における試みによりS507で特定されたファイルの取得が完了したか否かを判定する。CPU103は、YESと判定した場合、S510に進み、NOと判定した場合、S508に戻る。なお例えば、OSのファイル共有機能の対象となるファイルが、端末装置101の外部のインターネット上に存在する場合、端末装置101は当該ファイルをインターネット上から取得しなければならないため、当該ファイルの保存が完了するのに時間がかかる。すなわち、S508における試みが行われた(すなわち、S508における試みが開始された)タイミングでは、まだ当該ファイルの所定の記憶領域へのOSによる保存が完了していないことがある。そのため本実施形態では、本判定処理や本判定処理による処理の繰り返しが実行されることにより、OSのファイル共有機能の対象となるファイルが、端末装置101の外部のインターネット上に存在する場合、当該ファイルのインターネットからの取得及び当該ファイルの所定の記憶領域への保存が完了するまで、当該ファイルの取得の試みが繰り返されることとなる。なおドロップされたファイルアイコンに対応するファイルのデータサイズが大きい場合や、CPU103の性能が低い場合などにおいても、当該ファイルの保存が完了するのに時間がかかることがある。本判定処理や本判定処理による処理の繰り返しは、このような場合にも有効である。なおCPU103は、当該ファイルの取得の試みを再び実行するまで、所定の時間待機しても良い。
【0078】
S510では、CPU103は、S508における試みにより取得されたファイルを用いて、当該ファイルによって示される画像をプレビューするためのPDF形式用プレビュー画面を表示する。ここで表示されるPDF形式用プレビュー画面の一例を、
図8(a)に示す。取得されたファイルが複数ページ分のデータで構成される場合は、PDF形式用プレビュー画面は、複数ページ分の画像を表示可能であり、PDF形式用プレビュー画面に対してスクロール操作が行われることで、PDF形式用プレビュー画面内に表示される画像が切り替えられることになる。PDF形式用プレビュー画面は、「次へ」ボタンを含んでおり、「次へ」ボタンがタップ操作されると、S511に進む。
【0079】
S511では、CPU103は、S510でプレビューされた画像の印刷に使用される印刷設定を入力するための印刷設定画面を表示する。ここで表示される印刷設定画面の一例を、
図8(b)に示す。印刷設定画面は、現在設定されている印刷設定の内容を表示する。また印刷設定画面は、「設定を変更する」ボタンを含んでおり、当該ボタンがタップ操作されると、印刷設定の内容を変更するための変更画面が表示される。当該変更画面において印刷設定の内容が変更されると、印刷設定画面によって表示される内容も変更される。また印刷設定画面は、「プリント」ボタンを含んでおり、当該ボタンがタップ操作されると、S512に進む。
【0080】
S512では、CPU103は、S508における試みにより取得されたファイルによって示される画像を、S511で設定された印刷設定に基づいて印刷するための印刷データを生成する。そして、当該印刷データを含む印刷ジョブを、印刷用アプリに登録されている通信装置151に送信する。印刷ジョブを受信した通信装置151は、印刷ジョブに基づく印刷を実行することで、S508における試みにより取得されたファイルによって示される画像が印刷される。その後本フローチャートの処理が終了される。
【0081】
S506の判定の結果がNOであった場合に実行されるS513では、CPU103は、OSのファイル共有機能の対象となるファイルのうち、ファイル順番がi番目のファイルが、画像ファイルか否かを判定する。画像ファイルは上述したように、形式情報が示す形式と一致する形式のファイルであり、JPEG形式のファイル、HEIF形式のファイル、およびPNG形式のファイルのうちいずれかのファイルである。CPU103は、YESと判定した場合、S515に進み、NOと判定した場合、S514に進む。なおNOと判定される場合とは具体的には、ファイル順番がi番目のファイルが、PDF形式のファイル、JPEG形式のファイル、HEIF形式のファイル、およびPNG形式のファイルのうちいずれでもない場合である。言い換えれば、ファイル順番がi番目のファイルが、形式情報が示す形式と一致しない形式のファイルである場合である。
【0082】
S514では、CPU103は、iの値をインクリメントする。すなわちCPU103は、現在のiの値に対して1を足した値を新たなiの値として設定する。そしてCPU103は、S506の処理に戻る。これにより、S506以降の処理において、インクリメントされた後の値のファイル順番のファイルが参照されることとなる。
【0083】
S515では、CPU103は、OSのファイル共有機能の対象となるファイルのうち、画像ファイル全てを特定する。OSのファイル共有機能の対象となるファイルのうち、ここで特定されたファイルがプレビュー画面に表示されることとなる。具体的には例えば、OSのファイル共有機能の対象となるファイルが画像ファイル1つのみである場合は、その1つのファイルのみが特定される。また例えば、OSのファイル共有機能の対象となるファイルが複数の画像ファイルである場合は、画像ファイル全てが特定される。また例えば、OSのファイル共有機能の対象となるファイルが、形式情報が示す形式と一致しない形式のファイルと画像ファイルとを含む場合は、形式情報が示す形式と一致しない形式のファイルのほうがファイル順番が早いとしても、形式情報が示す形式と一致しない形式のファイルは特定されずに、画像ファイル全てが特定される。
【0084】
S516では、CPU103は、OSから受け取ったファイルパスを用いて、当該ファイルパスが示す領域に保存されているファイルであり、S515で特定されたファイルの取得を試みる。
【0085】
S517では、CPU103は、S516における試みにより、S515で特定されたファイルの取得が完了したか否かを判定する。CPU103は、YESと判定した場合、S518に進み、NOと判定した場合、S516に戻る。上述したように、OSのファイル共有機能の対象となるファイルが、端末装置101の外部のインターネット上に存在する場合、当該ファイルのインターネットからの取得及び当該ファイルの保存が完了するまで、当該ファイルの取得の試みが繰り返されることとなる。
【0086】
S518では、CPU103は、S516における試みにより取得されたファイルを用いて、当該ファイルによって示される画像をプレビューするための画像ファイル用プレビュー画面を表示する。ここで表示される画像ファイル用プレビュー画面の一例を、
図8(c)に示す。画像ファイル用プレビュー画面は、取得された画像ファイルがあらわす画像を表示するプレビュー領域を含む。取得された画像ファイルが複数ある場合は、画像ファイル用プレビュー画面に対してスクロール操作が行われることで、プレビュー領域内に表示される画像が、複数の画像ファイルのうちの第1の画像ファイルが示す画像から複数の画像ファイルのうちの第2の画像ファイルが示す画像に切り替えられることになる。画像ファイル用プレビュー画面は、S516における試みにより取得されたファイルの印刷に使用される印刷設定を入力するための印刷設定画面を表示する。印刷設定画面は、現在設定されている印刷設定の内容を表示する。また印刷設定画面は、「設定を変更する」ボタンを含んでおり、当該ボタンがタップ操作されると、印刷設定の内容を変更するための変更画面が表示される。当該変更画面において印刷設定の内容が変更されると、印刷設定画面によって表示される内容も変更される。画像ファイル用プレビュー画面は、「プリント」ボタンを含んでおり、「プリント」ボタンがタップ操作されると、S519に進む。
【0087】
S519では、CPU103は、S516における試みにより取得されたファイルによって示される画像を、S518で設定された印刷設定に基づいて印刷するための印刷データを生成する。そして、当該印刷データを含む印刷ジョブを、印刷用アプリに登録されている通信装置151に送信する。なおS516における試みにより複数のファイルが取得されていた場合は、複数のファイルによって示される複数の画像を印刷するための印刷データを含む印刷ジョブが送信される。印刷ジョブを受信した通信装置151は、印刷ジョブに基づく印刷を実行することで、S516における試みにより取得されたファイルによって示される画像が印刷される。その後本フローチャートの処理が終了される。
【0088】
本実施形態では、上述のように、OSによって所定のメソッドが実行された場合の処理を印刷用アプリにプログラムすることで、ドロップされたファイルアイコンに対応するファイルを、印刷用アプリが処理することが可能となる。
【0089】
また本実施形態では、ドロップされたファイルアイコンに対応するファイルのファイル形式に応じた適切な処理を実行することが可能となる。上述したように、PDF形式のファイルは、1つのファイルで複数ページ分の画像を含みうる。そのため、複数のPDF形式のファイルに対応する複数のファイルアイコンが印刷用アプリに対応するアプリアイコンにドロップされた場合に、複数のPDF形式のファイルを印刷するためのプレビュー画面を表示してしまうと、大量のページをプレビュー表示しなければならなくなり、印刷用アプリの処理負荷が高くなってしまうことがある。一方、画像ファイルは、1つのファイルで1ページ分の画像しか含まない。そのため、複数の画像ファイルに対応する複数のファイルアイコンが印刷用アプリに対応するアプリアイコンにドロップされた場合に、複数の画像ファイルを印刷するためのプレビュー画面を表示したとしても、印刷用アプリの処理負荷は高くなりにくい。そこで本実施形態のように、複数ファイルに対応する複数のファイルアイコンがドロップされた場合に、PDF形式のファイルは1つのみ特定してプレビュー表示し、画像ファイルは複数特定してプレビュー表示することで、印刷用アプリの処理負荷が高くならないように制御しつつ、可能であれば多くの画像を一度に印刷できるように制御することができる。
【0090】
また本実施形態では、複数ファイルに対応する複数のファイルアイコンがドロップされ、且つ、当該複数ファイルに印刷用アプリが対応していないファイルと対応しているファイルの両方が含まれる場合でも、プレビュー表示や印刷ジョブ送信等の、ファイルに基づく処理をキャンセルしない。本実施形態ではそのような場合に、印刷用アプリが対応しているファイルだけ抽出して、ファイルに基づく処理を実行することができるため、ユーザ利便性が向上する。
【0091】
また本実施形態では、ドロップされたファイルアイコンに対応するファイルがインターネット上に存在することにより、OSによる当該ファイルの取得と保存に時間がかかる状況においても、ファイルに基づく処理をキャンセルしない。本実施形態ではそのような場合に、印刷用アプリがOSによる当該ファイルの取得と保存が完了するのを待ってからファイルに基づく処理を実行することができるため、ユーザ利便性が向上する。
【0092】
また本実施形態では、印刷用アプリにプリンタが登録されていない状態において、印刷用アプリに対応するアイコンにファイルアイコンがドロップされた場合に、印刷用アプリにプリンタを登録するための処理を実行する。そのため、印刷用アプリにプリンタが登録されていないことにより、印刷ジョブを送信できないなどの状況が発生することを抑制することができる。
【0093】
図6は、端末装置101が、第1メソッドに対応しておらず第2メソッドに対応している印刷用アプリ(以下、第2の印刷用アプリ)により実行する処理を示すフローチャートである。本フローチャートは、ROM104に格納されたプログラム(具体的には第2の印刷用アプリ)をCPU103がRAM105に読み出して実行することにより実現される。また本フローチャートは、ドラッグ&ドロップによって、第2の印刷用アプリに対応するアプリアイコンにファイルがドロップされたことに基づいて開始されるものとする。また、本フローチャートは、所定のボタンが操作されたことによりOSが表示する1又は複数のアプリアイコンから第2の印刷用アプリに対応するアプリアイコンが選択されたことに基づいて開始されるものとする。より具体的には、本フローチャートは、OSから第2の印刷用アプリに第2のメソッドの実行が指示されたりすることに基づいて開始されるものとする。なお第1の印刷用アプリを提供するベンダーと第2の印刷用アプリを提供するベンダーは異なっていても良い。また本フローチャートの以下の説明において印刷用アプリとは、第2の印刷用アプリである。
【0094】
S601~S605の処理は、S501~S505の処理と同様である。
【0095】
S606では、CPU103は、OSのファイル共有機能の対象となるファイルが、PDF形式のファイルか否かを判定する。上述したように、第2メソッドにおいては、1つのファイルしか共有されないため、S606で参照されうるファイルは1つのみとなる。CPU103は、YESと判定した場合、S607に進み、NOと判定した場合、S613に進む。
【0096】
S607では、CPU103は、OSのファイル共有機能の対象となるファイルでありPDF形式のファイルを特定する。ここで特定されたファイルがプレビュー画面に表示されることとなる。
【0097】
S608~S612は、S508~S512と同様である。
【0098】
S606の判定の結果がNOであった場合に実行されるS613では、CPU103は、OSのファイル共有機能の対象となるファイルが、画像ファイルか否かを判定する。上述したように、第2メソッドにおいては、1つのファイルしか共有されないため、S613で参照されうるファイルは1つのみとなる。CPU103は、YESと判定した場合、S614に進み、NOと判定した場合、本フローチャートの処理を終了する。なおNOと判定した場合、CPU103は、プレビュー画面は表示しないが、エラー画面を表示したり、印刷用アプリのホーム画面を表示しても良い。
【0099】
S614では、CPU103は、OSのファイル共有機能の対象となるファイルである画像ファイルを特定する。ここで特定されたファイルがプレビュー画面に表示されることとなる。
【0100】
S615~S618は、S515~S518と同様である。
【0101】
なお上述では、第1のメソッドの実行が指示されたことに基づいて第1の印刷用アプリが実行する処理と、第2のメソッドの実行が指示された場合に第2の印刷用アプリが実行する処理とが異なる形態を説明したが、この形態に限定されない。第1のメソッドの実行が指示されたことに基づいて第1の印刷用アプリが実行する処理と、第2のメソッドの実行が指示された場合に第2の印刷用アプリが実行する処理の内容が同じであっても良い。上述したように、第1のメソッドは複数のファイルの共有に対応しているが、この形態で例えば、第1のメソッドの実行が指示された場合にも第2のメソッドの実行が指示された場合にも、1つのファイルの共有しか行われない形態となる。複数のファイルの共有を受け付けるかどうかは、第1のメソッドを実行するアプリ側において制御されても良いので、このような形態も実現されうる。
【0102】
上述では、第1のメソッドの実行が指示されたことや第2のメソッドの実行が指示されたことに基づいて処理を実行するアプリが印刷用アプリである形態を説明したがこの形態に限定されない。第1のメソッドの実行が指示されたことに基づいて処理を実行するアプリは、例えば、文書ファイル編集用アプリや画像ファイル編集用アプリ、ファイル管理アプリ、カメラ用アプリ、アルバム作成用アプリ等、ファイルを扱うアプリであればいずれのアプリであっても構わない。もちろん、第1のメソッドの実行が指示されたことや第2のメソッドの実行が指示されたことに基づいて処理を実行するアプリが印刷用アプリ以外のアプリである場合、
図5示した処理とは別の処理が実行される。
【0103】
<その他の実施形態>
上述で説明した形態では、
図5のフローチャートの処理では、印刷用アプリに対応するアプリアイコンにドロップされたファイルがPDF形式のファイルであるか画像ファイルであるかによって、1つのファイルのみを特定するか複数のファイルを特定するかを切り替えていた。しかしながらこの形態に限定されず、どちらのファイル形式であっても、1つのファイルのみを特定する形態であっても良い。すなわち、S515の処理は、印刷用アプリに対応するアプリアイコンにドロップされたファイルであり画像ファイルである複数のファイルのうち、ファイル順番が先頭のファイルのみを特定する形態であっても良い。またどちらのファイル形式であっても、複数のファイルのみを特定する形態であっても良い。すなわち、S507の処理は、印刷用アプリに対応するアプリアイコンにドロップされた複数のファイルのうち、全てのPDF形式のファイルを特定する形態であっても良い。
【0104】
上述で説明した形態では、
図5のフローチャートの処理では、i番目のファイルがPDF形式のファイルでも画像ファイルでもない場合、iをインクリメントし、次の番号のファイルに関してファイル形式を判定していた。しかしながらこの形態に限定されず、ファイル順番が先頭のファイルがPDF形式のファイルでも画像ファイルでもない場合、プレビュー画面は表示せず、エラー画面を表示したり、印刷用アプリのホーム画面する形態であっても良い。すなわち、S513がNOの場合、S514の処理ではなく、エラー画面を表示する処理に進む形態であっても良い。
【0105】
本発明の目的は前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUまたはMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0106】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0107】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【0108】
101 端末装置
151 通信装置