以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
(第1実施形態)
本実施形態の通信システムに含まれる情報処理装置及び通信装置について説明する。情報処理装置として、本実施形態ではスマートホンを例示しているが、これに限定されず、携帯端末、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、通信装置として、本実施形態ではプリンタを例示しているが、これに限定されず、情報処理装置と無線通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等に適用することができる。また、プリンタのみならず複写機やファクシミリ装置、携帯端末、スマートホン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ等にも適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機にも適用可能である。
まず、本実施形態の情報処理装置と、本実施形態の情報処理装置と通信可能な通信装置の構成について図1のブロック図を参照して説明する。また、本実施形態では以下の構成を例に記載するが、本実施形態は通信装置と通信を行うことが可能な装置に関して適用可能なものであり、特にこの図のとおりに機能を限定するものではない。
情報処理装置101は、本実施形態の情報処理装置である。情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、通信部111、近距離通信部112等を有する。
入力インタフェース102は、マウス110やキーボード109が操作されることにより、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースである。
CPU103は、システム制御部であり、情報処理装置101の全体を制御する。
ROM104は、CPU103が実行する制御プログラムやデータテーブル、組み込みオペレーティングシステム(以下、OSという。)プログラム等の固定データを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
RAM105は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成される。なお、RAM105は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を格納するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。
外部記憶装置106は、印刷実行機能を提供するアプリケーション、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム等を保存している。また、外部記憶装置106は、通信部111を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムや、これらのプログラムが使用する各種情報を保存している。
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御を行うインタフェースである。
表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や情報処理装置101の状態の通知を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等の操作部を設置することで、表示部108を介してユーザからの入力を受け付けても良い。
通信部111は、通信装置151やアクセスポイント131等の装置と接続して、データ通信を実行するための構成である。例えば、通信部111は、通信装置151内のアクセスポイント(不図示)に接続可能である。通信部111と通信装置151内のアクセスポイントが接続することで、情報処理装置101と通信装置151は相互に通信可能となる。なお、通信部111は無線通信で通信装置151とダイレクトに通信しても良いし、情報処理装置101や通信装置151の外部に存在する外部装置を介して通信しても良い。なお、外部装置とは、情報処理装置101の外部及び通信装置151の外部に存在する外部アクセスポイント(アクセスポイント131等)や、アクセスポイント以外で通信を中継可能な装置を含む。無線通信方式としては、例えば、Wi−Fi(WirelessFidelity)(登録商標)やBluetooth(登録商標)等が挙げられる。また、アクセスポイント131としては、例えば、無線LANルーター等の機器などが挙げられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイントを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイントを介して接続する方式をインフラストラクチャー接続方式という。
近距離通信部112は、通信装置151等の装置と近距離で無線接続して、データ通信を実行するための構成であり、通信部111とは異なる通信方式によって通信を行う。近距離通信部112は、例えば、通信装置151内の近距離通信部157と接続可能である。通信方式としては、例えば、Bluetooth(登録商標)、WiFi Aware等が挙げられる。本実施形態では、近距離通信部112は、Bluetooth機能として、Bluetooth Low Energy(BLE)と、Bluetooth Classicによる通信を実行可能であるものとする。
なお、本実施形態において、通信部111は、近距離通信部112よりも高速な通信を行うことができる構成とする。また、通信部111によって通信可能な距離は、近距離通信部112によって通信可能な距離より長いものとする。
通信装置151は、本実施形態の通信装置である。通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離通信部157等を有する。
通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の装置と接続するためのアクセスポイントを有している。なお、該アクセスポイントは、情報処理装置101の通信部111に接続可能である。なお、通信部156は無線通信で情報処理装置101とダイレクトに通信しても良いし、アクセスポイント131を介して通信しても良い。通信方式としては、例えば、Wi−Fi(登録商標)やBluetooth(登録商標)等が挙げられる。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作してもよい。
近距離通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成であり、例えば、情報処理装置101内の近距離通信部112と接続可能である。通信方式としては、例えば、Bluetooth、WiFi Aware等が挙げられる。本実施形態では、近距離通信部157は、Bluetooth機能として、BLEと、Bluetooth Classicによる通信を実行可能であるものとする。
なお、本実施形態において、通信部156は、近距離通信部157よりも高速な通信を行うことができる構成とする。また、通信部156によって通信可能な距離は、近距離通信部157によって通信可能な距離より長いものとする。
RAM153は、バックアップ電源を必要とするSRAM等で構成される。なお、RAM153は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、通信装置151の設定情報や通信装置151の管理データ等を格納するメモリエリアもRAM153に設けられている。また、RAM153は、CPU154の主メモリとワークメモリとしても用いられ、情報処理装置101等から受信した印刷情報を一旦保存するための受信バッファや各種の情報を保存する。
ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
CPU154は、システム制御部であり、通信装置151の全体を制御する。
プリントエンジン155、RAM153に保存された情報や情報処理装置101等から受信した印刷ジョブに基づき、インク等の記録剤を紙等の記録媒体上に付加することで記録媒体上に画像を形成する画像形成処理を実行し、印刷結果を出力する。なお、印刷ジョブとは、画像形成処理を通信装置151に実行させるためのジョブである。この時、情報処理装置101等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められるため、近距離通信部157よりも高速に通信可能な通信部156を介して受信する。
なお、通信装置151には、外付けHDDやSDカード等のメモリがオプション機器として装着されてもよく、通信装置151に保存される情報は、当該メモリに保存されても良い。
また、本実施形態の通信装置は、接続設定処理により接続モードが設定され、設定された接続モードに基づいた接続形態により、情報処理装置と通信を行う。本実施形態の通信装置は、インフラストラクチャー接続により通信を行う場合は、接続モードとしてインフラストラクチャー接続モードが設定され、ダイレクト接続により通信を行う場合は、接続モードとしてダイレクト接続モードが設定される。
ここでは、例として情報処理装置101と通信装置151との処理分担を上記のように示したが、特にこの分担形態に限らず他の形態であってもよい。
また、本実施形態では、近距離通信部112および近距離通信部157はBLEによって通信を行うものとして説明する。なお、本実施形態では、近距離通信部157が、後述のアドバタイズ情報をブロードキャストするアドバタイザ(又はスレーブ)として機能し、近距離通信部112が、アドバタイズ情報を受信するスキャナ(又はマスタ)として機能する。また、通信部111および通信部156は無線LAN(Wi−Fi)によって通信を行うものとして説明する。ここで、図8を用いて、BLE規格におけるアドバタイズ情報の送信及びBLE接続要求の受信の処理について説明する。本実施形態では、上述したように近距離通信部157がスレーブ機器として動作するため、近距離通信部157が上記処理を行うものとする。
近距離通信部157は、BLE通信方式において、2.4GHzの周波数帯を40チャネル(0〜39ch)に分割して通信を行う。近距離通信部157は、そのうち、37〜39番目のチャネルをアドバタイズ情報の送信及びBLE接続要求の受信に利用し、0〜36番目のチャネルをBLE接続後のデータ通信(GATT通信等)に利用している。図8では、縦軸が近距離通信部157の消費電力を、横軸が時間を示しており、1つのチャネルを利用してアドバタイズ情報を送信する際の消費電力を各処理別に示している。Tx805は、アドバタイズ情報をブロードキャストする処理である送信処理における総消費電力を、Rx806は、BLE接続要求を受信するための受信器を有効にしておく処理である受信処理における総消費電力を示している。送信電力802は送信処理による瞬間消費電力を示している。また、受信電力803は受信処理による瞬間消費電力を示している。また、マイコン動作電力801は、近距離通信部157内のマイコンが動作している場合の瞬間消費電力を示している。なお、Tx805とRx806の前後や間にもマイコンが動作しているのは、送信・受信処理の実行や停止のためには事前にマイコンが起動している必要があるからである。また、アドバタイズ情報の送信を複数チャネルで行う場合は、アドバタイズ情報の送信を行うチャネルの数だけ消費電力が増えることになる。また、マイコンが動作を行っておらず、近距離通信部157が省電力状態となっている間は、スリープ電力804が近距離通信部157の瞬間消費電力となる。このように、近距離通信部157は、所定のチャネルを用いて送信処理を行った後、同一のチャネルを用いて一定時間受信処理を行うことで、情報処理装置101からBLE接続要求が送信されるのを待つ。近距離通信部157は、情報処理装置101からBLE接続要求を受信した場合、BLE接続を確立し、情報処理装置101とGATT通信を行う。
また、近距離通信部157は、図9に示すように、アドバタイズ情報の送信処理と受信処理を、チャネル別に3回繰り返した後、マイコンの動作を停止させ一定時間省電力状態になる。以下、所定のチャネルによるアドバタイズ情報の送信処理と受信処理の組み合わせをアドバタイズと言う。また、所定のチャネルによってアドバタイズ情報を送信する時間間隔をアドバタイズ間隔という。なお、1回目のアドバタイズを行ってから省電力状態になるまでに繰り返すアドバタイズの回数は、3回以下であれば任意に変更可能である。
図10は、近距離通信部157が通信装置151の周辺にブロードキャストするアドバタイズ情報の構造の一例である。
近距離通信部157は、電力の供給が開始されると初期化処理を行い、アドバタイジング状態となる。近距離通信部157は、アドバタイジング状態となると、アドバタイズ間隔に基づいて定期的にアドバタイズ情報を周辺にブロードキャストする。アドバタイズ情報とは、基本的なヘッダ情報(当該アドバタイズ情報を送信する装置を識別するための識別情報等)を含む信号であり、ヘッダ1001とペイロード1002から構成される。情報処理装置101は、このアドバタイズ情報を受信することで、通信装置151の存在を認識することができる。さらに、情報処理装置101は、通信装置151にBLE接続要求を送信することで通信装置151とBLE接続することができる。ヘッダ1001は、アドバタイズ情報のタイプやペイロード1002の大きさの情報などを格納する領域である。ペイロード1002は、識別情報としてのデバイス名1003や搭載プロファイル情報、通信装置151とBLE接続するための接続情報1004、アドバタイズ情報の送信電力(Tx Power)1005等の情報を格納する。なお、通信装置の識別情報1006をアドバタイズ情報に含めても良い。通信装置の識別情報1006としては、通信装置のMACアドレスや、通信装置のサービス情報、通信装置内のアクセスポイントのSSID、パスワード等が該当する。
本実施形態では、近距離通信部157は、通信装置151の電源がONになった場合にアドバタイジング状態となり、アドバタイズ情報の送信を開始するものとする。ただし、近距離通信部157がアドバタイズ情報の送信を開始するタイミングは、上述の形態に限定されず、例えば、BLE機能を有効にするための所定の操作が行われたタイミング等であっても良い。
また、本実施形態では、情報処理装置101と通信装置151間で認証を行い、装置間でGATT(Generic Attribute Profile)通信によりデータの読み書きを実行するためのペアリング処理を実施する。なお、GATTとは、BLE規格において情報の読み書き(送受信)を司るプロファイルである。そして、GATT通信とは、情報処理装置101がGATTクライアント、通信装置151がGATTサーバの役割を担い、GATTベースのプロファイルにより、情報処理装置101から通信装置151に対し情報の読み書きが行われる通信である。情報処理装置101と通信装置151間でのペアリングが実行されていない状態では、通信装置151はGATT通信による情報の読み書きを許可しない構成とする。このようにすることで、ペアリングを行っていない情報処理装置101と通信装置151が通信を行ってしまい、例えば、通信装置151が保持する情報がペアリングを行っていない情報処理装置101に不用意に取得されてしまうことを抑制することができる。なお、本実施形態では、ペアリングを行っていない状態で許可されるGATT通信と、ペアリングを行っていない状態では許可されないGATT通信とがあるものとする。秘匿性の低い情報は、ペアリングを行っていない状態で許可されるGATT通信で通信可能とすることで、通信の利便性を向上させることができる。一方、秘匿性の高い情報は、ペアリングを行っていない状態では許可されないGATT通信でのみ通信可能とすることで、通信のセキュリティを向上させることができる。
本実施形態では、情報処理装置101は、ROM104や外部記憶装置106等に所定のアプリケーションを格納しているものとする。所定のアプリケーションとは、例えば、情報処理装置101内の画像データや文書データ等を印刷させるための印刷ジョブを、通信装置151に送信するためのアプリケーションプログラムである。このような機能を有するアプリケーションを、以後印刷用アプリという。なお、印刷用アプリは、印刷機能以外に、他の機能を備えていても良い。例えば、印刷用アプリは、通信装置151がスキャン機能を備えている場合に、通信装置151にセットされた原稿をスキャンさせる機能や、通信装置151の他の設定を行う機能、通信装置151の状態を確認する機能等を備えていても良い。すなわち、印刷用アプリは、印刷ジョブ以外に、スキャンジョブや設定ジョブを通信装置151に送信する機能を有していても良い。また、所定のアプリケーションは、印刷用アプリに限定されず、印刷以外の機能を備えているアプリケーションプログラムであっても良い。
情報処理装置101は、印刷用アプリの機能を用いるために、例えばBLEによって通信装置151と通信することがある。具体的には例えば、情報処理装置101は、印刷機能を実行する場合、まずBLE通信によってWiFi通信の接続情報のやり取りを行った後に、WiFi通信によって印刷ジョブを通信装置151に送信する。そのため、情報処理装置101は、印刷用アプリの機能を利用するためには、BLEにおけるペアリング処理を実行し、通信装置151とのBLE通信を実行可能な状態にすることが好ましい。そこで、本実施形態では、印刷用アプリは、情報処理装置101と通信装置151間のペアリング処理を行う機能も有しているものとする。そして以下では、印刷用アプリを介してペアリング処理を実行する形態について説明する。
図3は、印刷用アプリの起動時に表示部108に表示される画面の一例である。起動画面300を介して、ユーザは、所望の画像の印刷や通信装置の設定等、通信装置の備える機能を利用することができる。情報処理装置101は、写真印刷ボタン301の押下を検知すると、通信装置151に印刷を実行させるための画面を表示させる。また、情報処理装置101は、スキャンボタン301の押下を検知すると、通信装置151に、原稿を読み取って画像データを生成する処理であるスキャン処理を実行させるための画面を表示させる。また、情報処理装置101は、BLEペアリングボタン303の押下を検知すると、ペアリング処理を開始する。
本実施形態の情報処理装置101は、設定用アプリケーション(以降、設定用アプリ)を有しているものとする。設定用アプリとは、OSにより実行される機能に関する設定を行うためのアプリーションプログラムである。設定用アプリは、例えば、OSが情報処理装置101にインストールされる一連の処理において一緒にインストールされたり、情報処理装置101の着荷時にOSと一緒に予め情報処理装置101にインストールされたりしているアプリーションプログラムである。本実施形態の情報処理装置101は、通信装置151とペアリングを行う際には、設定用アプリにより表示されるBluetooth設定画面(以降、BT設定画面という)に対するペアリングのための入力をユーザから受け付ける。具体的には、情報処理装置101は、設定用アプリにより表示されるBT設定画面に対するペアリングのための入力をユーザから受け付ける。これは、例えば情報処理装置101に搭載されているOSの種類や情報処理装置101の機種によっては、設定用アプリ以外のプログラム、すなわち印刷用アプリによって表示される画面上で、ペアリング処理を実行できないためである。そのため、情報処理装置101は、印刷用アプリを介してペアリング処理を行う際にも、設定用アプリにより表示されるBT設定画面を利用する。本実施形態では、印刷用アプリにより表示される画面及び印刷用アプリ以外のプログラム(ここでは設定用アプリ)により表示される画面の両方を介して行われるペアリング処理のユーザビリティを向上させることのできる形態について説明する。
図2は、情報処理装置101が実行するペアリング処理を示すフローチャートである。図2に示すフローチャートは、例えば、CPU103がROM104や外部記憶装置106等に格納されたプログラムをRAM105に読み出して実行することにより実現される。なお、本実施形態では、図2に示すフローチャートが示す処理は、印刷用アプリによって実行されるものとする。また、本実施形態では、印刷用アプリは、設定用アプリにより表示されるBT設定画面を介して「ペアリング中」や「ペアリング完了」、「ペアリング失敗」等の各種イベントが発生したことの通知を受け取れるように構成されているものとする。なお、印刷用アプリが実際にイベントの通知を受け取るか否かは、後述の通知設定によって切り替え可能である。また、各種イベントの詳細は後述する。また、図2に示すフローチャートが示す処理は、BLEペアリングボタン303が、ユーザによって押下された場合に開始されるものとする。
まず、CPU103は、S201にて、情報処理装置101のBluetooth機能が有効か否かを判定する。なお、Bluetooth機能が有効な状態とは、情報処理装置101がBluetoothないしBLEによる通信を実行可能な状態である。また、上述したように、近距離通信部112はBLE通信規格におけるスキャナとして動作する。そのため、情報処理装置101がBLEによる通信を実行可能な状態においては、CPU103は、アドバタイズ情報を受信可能な状態(スキャン状態)に近距離通信部112を遷移させ、アドバタイズ情報の検索を行う。CPU103は、Bluetooth機能が有効であると判定した場合、S203に進み、Bluetooth機能が有効でない(無効である)と判定した場合、S202に進む。
S202では、CPU103は、無効化されているBluetooth機能を有効化する。なおこのとき、CPU103は、Bluetooth機能を有効にするかどうかをユーザに選択させるためのダイアログを表示部108に表示し、ダイアログを介してユーザからの指示を受け付けた場合にBluetooth機能を有効にしてもよい。
続いて、S203では、CPU103は、BLEペアリングボタン303の押下を受け付けた後に、アドバタイズ情報を近距離通信部112が受信したかどうかを判定する。CPU103は、アドバタイズ情報を受信したと判定した場合、S204に進み、アドバタイズ情報を受信していないと判定した場合、所定時間のウェイトを行ったあと再度S203の処理を行うことで、アドバタイズ情報が受信されるのを待つ。
続いて、S204では、CPU103は、受信されたアドバタイズ情報に特定の識別情報が含まれるか否かを判定する。本実施形態では、情報処理装置101は、印刷用アプリを介してペアリング処理を行う場合、当該印刷用アプリに対応している機種やベンダーの通信装置と通信するものとする。そのため、特定の識別情報は、受信されたアドバタイズ情報を送信した通信装置が当該印刷用アプリに対応している機種の通信装置であることや当該印刷用アプリに対応している所定のベンダーによって提供される通信装置であることを示す識別情報である。さらに具体的には、特定の識別情報は、受信されたアドバタイズ情報を送信した通信装置が印刷サービス(画像形成機能)を提供可能なことを示す情報や、受信されたアドバタイズ情報を送信した通信装置の機種名やベンダー名等の情報である。なお、識別情報は、印刷用アプリに対応している通信装置を一意に特定できる情報であれば良く、例えば、IPアドレスやMACアドレス、ID情報等でも良い。CPU103は、特定の識別情報が含まれると判定した場合、S205に進み、特定の識別情報が含まれないと判定した場合、所定時間のウェイトを行ったあと再度S203の処理を行うことで、アドバタイズ情報が受信されるのを待つ。なお、BLEペアリングボタン303の押下を受け付けた後に、複数のアドバタイズ情報を近距離通信部112が受信していた場合、CPU103は、各アドバタイズ情報についてS204の判定を行う。そしてCPU103は、1つでも特定の識別情報が含まれるアドバタイズ情報があった場合、S205に進む。
S205では、CPU103は、特定の識別情報を含むアドバタイズ情報の送信元の通信装置に関する情報を表示部108に表示する。なお、通信装置に関する情報は、特定の識別情報を含むアドバタイズ情報に含まれており、例えば、通信装置の名前やIPアドレス、MACアドレス等の情報である。なお、特定の識別情報を含むアドバタイズ情報が複数受信された場合、CPU103は、各アドバタイズ情報の送信元の通信装置に関する情報を表示する。なお、特定の識別情報を含むアドバタイズ情報の送信元の通信装置に関する情報を表示する画面は、ペアリング処理の対象となる通信装置をユーザに選択させるための画面である。すなわち、ここでは、印刷用アプリによって、ペアリング処理の対象となる通信装置をユーザに選択させるための画面が表示される。また、S204にてフィルタリングが行われているため、印刷用アプリに対応している(印刷用アプリによって各種機能を実行可能な)通信装置に関する情報が表示され、印刷用アプリに対応していない通信装置に関する情報は表示されない。
続いて、S206では、CPU103は、S205で表示した画面を介して、ペアリング処理の対象となる通信装置の選択をユーザから受け付けたか否かを判定する。具体的にはCPU103は、S205で表示した画面に含まれる、通信装置に関する情報のうちいずれかの情報が選択されたか否かを判定する。CPU103は、選択をユーザから受け付けたと判定した場合、S207に進み、選択をユーザから受け付けていないと判定した場合、再度S206を行い、ユーザからの選択を待つ。なお、CPU103は、選択をユーザから受け付けていないと判定した場合、ペアリング処理の対象となる通信装置をユーザに選択させるための画面を表示部108に表示したまま再度S203以降の処理を行っても良い。これにより、ペアリング処理の対象となる通信装置をユーザに選択させるための画面に、新たに受信されたアドバタイズ情報の送信元に関する情報を追加することができる。また、CPU103は、選択をユーザから受け付けたと判定した場合、ペアリング処理の実行指示をユーザから受け付けたとみなし、選択された情報に対応する通信装置をペアリング対象の通信装置として特定する。ここでは、名前が「PrinterA」の通信装置をユーザが選択したものとして説明を進める。
S207では、CPU103は、ペアリング対象の通信装置に関する情報を、外部記憶装置106やROM104等の所定の記憶領域に保存する。なお、ペアリング対象の通信装置に関する情報は、例えば、ペアリング対象の通信装置が送信したアドバタイズ情報である。
続いて、S208では、CPU103は、S207で保存した情報に基づき、ペアリング対象の通信装置に対して、GATT通信の開始要求を行う。これにより、ペアリング無しで通信可能な情報については、情報処理装置101と、ペアリング対象の通信装置とがGATT通信可能な状態となる。
続いて、S209では、CPU103は、情報処理装置101に関する識別情報を、ペアリング対象の通信装置に対してGATT通信で送信する。なおこのとき、CPU103は、ペアリングを行っていない状態で許可されるGATT通信によって、識別情報を送信する。具体的には、GATTプロファイルのうち、ペアリングを行っていない状態で書き込み可能な領域に、識別情報を書き込む。また、情報処理装置101に関する識別情報とは、例えば、情報処理装置101の名前やIPアドレス、MACアドレス等の情報である。CPU103は、識別情報の送信に成功したら、GATT通信を終了させ、S210に進む。ここで、CPU103は、識別情報の送信が成功するまで、識別情報の送信を繰り返し行うようにしてもよい。また、その間に表示部108にダイアログ等を表示して、ユーザによる処理の中断を受け付けるようにしたり、所定の時間経過後に、タイムアウトとして処理を中断したりするようにしてもよい。
なお、ペアリング対象の通信装置は、GATT通信により、情報処理装置101から送信される識別情報を受信した場合、ペアリング対象の通信装置が持つ記憶領域に保存しておく。そして、ペアリング対象の通信装置は、当該識別情報が記憶領域に保存されている間のみペアリング処理要求を受け付ける。また、ペアリング対象の通信装置は、記憶領域に保存されている識別情報に対応する情報処理装置からのペアリング処理要求のみを受け付ける。これにより、ペアリング対象の通信装置は、印刷用アプリを経由してペアリング処理が実行された場合にのみ、ペアリング処理要求を受領するように制限することができる。ペアリング対象の通信装置は、ペアリング処理が完了したかどうか、及び識別情報を保存してから所定の時間が経過したかどうかを判定し、いずれかの判定処理の結果がYESである場合に、記憶領域から識別情報を削除する。
なお、ペアリング処理要求の受け付けにおいてペアリング対象の通信装置が実行する処理は、上述の形態に限定されない。例えば、ペアリング対象の通信装置が、情報処理装置101からのペアリング処理要求を受け付けた後に、情報処理装置101から識別情報を受信する形態としても良い。この場合、ペアリング対象の通信装置は、情報処理装置101からのペアリング処理要求を受け付けた後に情報処理装置101から受信した識別情報と、ペアリング処理要求に含まれる情報処理装置101に関する情報が一致するか否かを判定する。そして、ペアリング対象の通信装置は、両者が一致した場合に、ペアリング処理要求を承諾してペアリング処理を開始し、両者が一致しない場合に、ペアリング処理要求を承諾せずペアリング処理を開始しない。
続いて、S210では、CPU103は、ペアリング処理においてユーザが実行する操作の手順を示す画面を表示部108に表示する。上述したように、本実施形態では、ペアリングに必要な情報の入力等の、ペアリング処理に必要な操作が情報処理装置101上で動作している設定用アプリのBT設定画面で行われる。そのため、S208では、CPU103は、BT設定画面でユーザが行う操作手順やBT設定画面で選択すべき通信装置の名前等を、表示部108にダイアログ等で表示する。さらに、CPU103は、次のステップへ進むための指示をユーザから受け取るためのボタンを表示する。具体的には例えば、図7に示すような画面を表示する。S210では、CPU103は、次のステップに進むことの指示をユーザから受け付けたことを検知すると、表示部108に表示したダイアログを閉じ、S211に進む。
続いて、S211では、CPU103は、印刷用アプリに対するイベントの通知設定を有効にする。具体的には、CPU103は、設定用アプリにより表示されるBT設定画面に対する操作に応じて発生するイベントの通知を印刷用アプリが受信できるように設定する。これにより印刷用アプリは、BT設定画面に対する操作に応じて「ペアリング中」、「ペアリング完了」、「ペアリング失敗」といったイベントが発生したことを認識でき、あらかじめ定義されている処理をイベントの発生に応じて実行することができる。
続いて、S212では、CPU103は、S205で表示された画面を介してユーザが選択した通信装置を、S211で表示部108に表示されるBT設定画面において選択するようにユーザを促すメッセージをトーストで表示する。すなわち、ここでは、CPU103は、名称が「PrinterA」の通信装置を、BT設定画面において選択するようにユーザを促すメッセージをトーストで表示する。後述するが、このとき表示されたトーストは、BT設定画面が表示されても、BT設定画面の前面に表示され続けるため、ユーザは、BT設定画面においていずれの通信装置を選択すればよいかを迅速且つ正確に把握することができる。
なお、トーストとは、情報処理装置101の表示部108上の最前面にポップアップ表示される通知領域である。トーストは一定時間が経過すると自動的に非表示になる。トーストのサイズは限定されないが、印刷用アプリにより表示される画面やBT設定画面が完全に覆われて見えなくならないように、表示部上の一部の領域であることが好ましい。トーストが表示されている最中であっても、トースト以外の領域を操作することで、トーストの背面に表示されている画面に対する操作を実行可能であるため、ユーザ操作の妨げが最小限に抑えられる。また、トーストを表示する機能は、OSが有する機能であるため、CPU103は、印刷用アプリを用いてトーストを表示させる場合は、トーストに含ませるメッセージの内容と共に、トーストを表示させるための要求をOSに送信する。これにより、CPU103は、印刷用アプリを用いてトーストを表示させることができる。なお、CPU103は、トーストの表示を要求するプログラムがバックグラウンドに遷移していても、トーストを表示することが可能である。あるプログラムがバックグラウンドに遷移している状態とは、当該あるプログラムが動作したまま、当該あるプログラム以外のプログラムにより表示される画面が表示部108に表示されている状態を指す。一方、あるプログラムがフォアグラウンドに遷移している状態とは、当該あるプログラムが動作したまま、当該あるプログラムにより表示される画面が表示部108に表示されている状態を指す。
なお、上述したようにトーストは一定時間が経過すると自動的に非表示になるが、長時間トーストを表示し続けるためには、例えば、CPU103は、一定時間が経過して非表示となったトーストを再度表示しても良い。この場合、CPU103は、所定の回数だけ再表示を繰り返しても良いし、ユーザ操作によりトーストが非表示にされるまで再表示を繰り返してもよい。
続いて、S213では、CPU103は、表示部108に表示されている画面を、印刷用アプリによって表示される画面から設定用アプリによって表示されるBT設定画面に切り替える。そして、CPU103は、印刷用アプリをバックグラウンドに遷移させる。具体的には、CPU103は、印刷用アプリによる指示により、印刷用アプリを起動させたまま、設定用アプリにより表示される画面を表示部108に表示させる。
図4は、設定用アプリにより表示されるBT設定画面の一例である。BT設定画面とは、情報処理装置101のBluetooth機能に関する設定を行うための画面である。具体的には例えば、情報処理装置101とペアリング処理をさせる通信装置の選択をユーザから受け付けるための画面である。
まず、CPU103は、表示部108に図4(a)に示すBT設定画面400を表示する。BT設定画面には、ペアリング済みデバイスリスト410や、ペアリング可能デバイスリスト420、スキャンボタン430が表示される。
ペアリング済みデバイスリスト410は、情報処理装置101と既にペアリング処理を実行した(情報処理装置101とペアリング済みの)通信装置に関する情報が表示される領域である。
ペアリング可能デバイスリスト420は、情報処理装置101がペアリング処理を実行可能な通信装置に関する情報が表示される領域である。なお、情報処理装置101がペアリング処理を実行可能な通信装置とは、情報処理装置101が受信したアドバタイズ情報の送信元の通信装置である。ペアリング可能デバイスリスト420に表示される通信装置に関しては特にフィルタリングは行われない。そのため、ペアリング可能デバイスリスト420には、印刷用アプリに対応しない通信装置(例えば、プリンタ以外のデバイスや、ペアリング処理を指示している印刷用アプリに対応しないプリンタ)も表示される。そして、ペアリング可能デバイスリスト420に表示される通信装置から、いずれかがユーザによって選択されることで、選択された通信装置とのペアリング処理が開始される。
スキャンボタン430は、ペアリング可能デバイスリスト420の内容を更新するために、情報処理装置101周辺のBLE対応機器の通信装置から送信されるアドバタイズ情報の検索(スキャン)を情報処理装置101が開始するためのボタンである。
戻るボタン440は、現在表示されている画面の直前に表示部108に表示されていた画面を再度表示するためのボタンである。なお、上述したように、戻るボタン440が含まれるBT設定画面400は、設定用アプリにより表示される画面である。BT設定画面400の直前に表示されていた画面が設定用アプリ以外のプログラムである場合、戻るボタン440が押下されると、設定用アプリ以外のプログラムにより表示される画面が再度表示される。本実施形態では、BT設定画面400の直前に表示されていた画面は、印刷用アプリにより表示される画面であるため、戻るボタン440が押下されると、印刷用アプリにより表示される画面が再度表示される。
ホームボタン441は、OSにより表示されるホーム画面を表示するためのボタンである。ホーム画面とは、例えば、情報処理装置101が備えるアプリケーションプログラム(印刷用アプリ等)を起動させるためのアイコンが並べられた画面である。
タスク一覧ボタン442は、フォアグラウンドで動作させるプログラムを選択するための画面を表示するためのボタンである。そのため、タスク一覧ボタン442が押されたことで表示される画面において、印刷用アプリが選択されることでも、印刷用アプリにより表示される画面が再度表示される。
CPU103は、スキャンボタン430が押下されると、情報処理装置101の周囲の通信装置から送信されるアドバタイズ情報を受信可能な状態であるスキャニング状態に情報処理装置101を遷移させる。次に、CPU103は、アドバタイズ情報を受信すると、受信したアドバタイズ情報に含まれる、当該アドバタイズ情報の送信元の通信装置の名前(Complete Local Name)を特定する。そして、CPU103は、特定した名前を、ペアリング可能デバイスリスト420に追加して表示し、ペアリング可能デバイスリスト420の表示内容を更新する。
ペアリング済みデバイスリスト410およびペアリング可能デバイスリスト420に表示される通信装置の名前は、受信されたアドバタイズ情報に含まれる情報であるものとする。なお、アドバタイズ情報には、通信装置の名前のほかに、アドバタイズ情報の送信元の通信装置が備える近距離通信部の個体を識別するための識別情報(Bluetoothデバイスアドレス:BD_ADDR)等が含まれる。そのため、当該識別情報を、ペアリング済みデバイスリスト410およびペアリング可能デバイスリスト420に表示しても良い。CPU103は、ペアリング済みデバイスリスト410やペアリング可能デバイスリスト420に表示している通信装置から受信したアドバタイズ情報を情報処理装置101の持つ記憶領域(RAM105や外部記憶装置106等)に適宜保存する。
上述したように、ペアリング可能デバイスリスト420に表示される通信装置からいずれかがユーザによって選択されることで、選択された通信装置とのペアリング処理が開始される。しかしながら上述したように、BT設定画面は設定用アプリにより表示される画面であり、ペアリング対象の通信装置の候補の表示において、印刷用アプリに適した通信装置を表示するためのフィルタリングは行われない。そのため、ペアリング可能デバイスリスト420には、例えば、S205で表示された画面を介してユーザから選択された通信装置以外の通信装置や、印刷機能を有しないことから印刷用アプリに対応しない通信装置の情報も表示されることになる。すなわち、ユーザにとって、印刷用アプリを介したペアリング処理の対象となる通信装置として、いずれの通信装置を選択すれば良いかが分かりづらいという課題がある。
そこで、本実施形態では、CPU103は、表示部108にBT設定画面が表示される場合、印刷用アプリによりBT設定画面の前面に、ユーザ操作の手順を示すトーストを表示する。具体的には例えば、CPU103は、図4(a)に示すBT設定画面400の前面にトースト601が表示された画面である、図6(a)に示すBT設定画面600を表示する。トースト601には、S205で表示された画面においてユーザが選択した通信装置である「PrinterA」を選択するようにユーザを促すメッセージが表示される。このような形態とすることで、誤操作が生じることを抑制してユーザの利便性を向上することができる。
なお、本実施形態では、まずトーストをS212で表示してから、BT設定画面をS213で表示しているが、この形態に限定されない。すなわち、BT設定画面を表示してからトーストを表示しても良い。
続いて、S214では、CPU103は、バックグラウンドにある印刷用アプリがフォアグラウンドに遷移したか否かを判定する。具体的には、CPU103は、表示部108に表示されている画面が、BT設定画面から印刷用アプリにより表示される画面に切り替わったか否かを判定する。なお、例えば、戻るボタン440が押下されたり、タスク一覧ボタン442が押下されることにより表示される選択画面において、印刷用アプリにより表示される画面が選択されたりした場合に、印刷用アプリがフォアグラウンドに遷移する。CPU103は、印刷用アプリがフォアグラウンドに遷移したと判定した場合、S223に進み、印刷用アプリがフォアグラウンドに遷移していないと判定した場合、S215に進む。
続いて、S215では、CPU103は、設定用アプリにより表示されるBT設定画面を介して印刷用アプリに対しイベントが通知されたか否かを判定する。CPU103は、イベントが通知されたと判定した場合は、通知されたイベントの内容に応じて、次の処理を行う。具体的には、CPU103は、通知されたイベントが「ペアリング中」を示すものであった場合、S216に進む。また、CPU103は、通知されたイベントが「ペアリング完了」を示すものであった場合、S218に進む。また、CPU103は、通知されたイベントが「ペアリング失敗」を示すものであった場合、S220に進む。一方、CPU103は、イベントが通知されなかったと判定した場合は、再度S214の処理を実行する。
ここで、各種イベントの詳細について説明する。「ペアリング中」を示すイベントは、BT設定画面600を介してペアリング処理の実行が指示された場合に発生するイベントである。具体的には、「ペアリング中」を示すイベントは、ペアリング可能デバイスリスト420に表示される通信装置からいずれかがユーザによって選択されることで発生する。ペアリング処理の実行が指示された場合、設定用アプリは、ユーザによって選択された通信装置から受信したアドバタイズ情報を記憶領域から読み出し、読み出したアドバタイズ情報から識別情報等のペアリング処理に必要な情報を特定する。そして、設定用アプリは、ユーザによって選択された通信装置に対して、特定した情報及びBLE通信規格に基づいてペアリング要求を送信する。ペアリング要求を受信した通信装置は、当該通信装置が有する表示部(不図示)に、図5に示すようなPINコード表示画面500を表示する。PINコード表示画面500には、ペアリング処理に用いられる認証情報であるPINコード501と、ペアリング処理をキャンセルするためのCancelボタン502が表示される。
そして、設定用アプリは、「ペアリング中」を示すイベントが発生したことによりペアリング要求を送信すると、表示部108に、図4(b)に示すPINコード入力画面450を表示する。PINコード入力画面450は、図4(a)に示すBT設定画面400の前面にPINコード入力ダイアログ454が表示された画面である。また、PINコード入力ダイアログ454には、PINコード入力領域451と、OKボタン452、Cancelボタン453が表示される。PINコード入力領域451は、ユーザによるPINコードの入力を受け付けるための領域である。OKボタン452は、入力されたPINコードをユーザによって選択された通信装置に送信するためボタンである。Cancelボタン453は、ペアリング処理をキャンセルするためボタンである。
なお、OSの仕様によっては、例えば、PINコード入力領域451にPINコード501を入力可能な期間(入力が成功する期間)が定まっている形態がある。PINコード入力領域451にPINコード501を入力可能な期間は、例えば30秒である。その場合、PINコード入力画面450が表示されてから30秒以内にPINコード501の入力及びOKボタン452の押下が行われなければ、PINコード501は、ユーザによって選択された通信装置に送信されない。すなわち、ペアリング処理が失敗する。
上記の期間内にPINコード入力領域451にPINコード501が入力された状態で、OKボタン452が押下されると、設定用アプリは、入力されたPINコード501を含む情報を、ユーザによって選択された通信装置に送信する。ユーザによって選択された通信装置は、受信した情報に含まれるPINコード501がPINコード表示画面500に表示したPINコード501(当該通信装置に対応するPINコード)と一致するか否かを判定する。そして、ユーザによって選択された通信装置は、一致すると判定した場合は、情報処理装置101にペアリングを許可する。具体的には、ユーザによって選択された通信装置は、PINコード501をもとに所定の方法で作成されたリンクキーを、BLE規格のSMP(Security Manager Protocol)を利用して情報処理装置101に送信する。このようにして、リンクキーは、情報処理装置101の持つ記憶領域(ROM104等)とユーザによって選択された通信装置の持つ記憶領域(ROM152等)にそれぞれ保存される。これによりペアリングが完了し、装置間でBLE通信を実行することが許可される。そして、このようにしてペアリング処理が完了(成功)した場合に、「ペアリング完了」を示すイベントが発生する。
設定用アプリは、ペアリング処理が完了すると、PINコード入力ダイアログ454を非表示とした、図4(c)で示すBT設定画面460を表示する。「ペアリング完了」を示すイベントの発生により、「PrinterA」で示す通信装置と情報処理装置101がペアリング済みになる。そのため、設定用アプリは、ペアリング済みデバイスリスト410に「PrinterA」を追加し、ペアリング可能デバイスリスト420から「PrinterA」を削除する。
一方、受信した情報に含まれるPINコード501が、PINコード表示画面500に表示したPINコード501と一致しないと判定された場合は、ペアリングが失敗する。そのため、ユーザによって選択された通信装置は、情報処理装置101に前述のリンクキーは送信しない。また、その場合、ユーザによって選択された通信装置は、ペアリングが失敗した旨を示す情報を情報処理装置101に送信する。ペアリング処理が失敗した場合、再度ペアリング処理が実行されることが好ましいため、設定用アプリは、表示部108に図4(a)に示すBT設定画面400を再度表示する。なお、ペアリングが失敗するケースは、PINコードが一致しなかったケースに限らない。例えば、図4(b)のPINコード入力画面450でCancelボタン453が押下された場合や、図5のPINコード表示画面でCancelボタン502が押下された場合にも、ペアリングが失敗する。また、例えば、PINコード入力領域451に長時間入力が行われなかった場合にも、ペアリングが失敗する。このようにしてペアリング処理が失敗した場合に、「ペアリング失敗」を示すイベントが発生する。
以上を踏まえて、図2の処理の説明に戻る。
S216では、CPU103は、設定用アプリによって表示されたBT設定画面600において選択された通信装置が、S205で印刷用アプリによって表示された画面において選択された通信装置と一致するか否かを判定する。なお、「ペアリング中」を示すイベントの通知には、設定用アプリによって表示されたBT設定画面600において選択された通信装置の識別情報が含まれている。そのため、CPU103は、具体的には、「ペアリング中」を示すイベントの通知に含まれる識別情報とS207で保存した情報とを比較することで、本判定処理を行う。CPU103は、一致すると判定した場合、S217に進み、一致しないと判定した場合、S214に戻る。なおCPU103は、一致しないと判定した場合、BT設定画面600において選択された通信装置が、S205で表示された画面において選択された通信装置と一致しないことを示すトーストを表示しても良い。また、CPU103は、例えば、BT設定画面600において選択された通信装置とのペアリング処理を中止するようにユーザを促すためのトーストを表示しても良い。また、CPU103は、例えば、S205で表示された画面において選択された通信装置を示すトーストを再度表示しても良い。
上述したように、「ペアリング中」を示すイベントが発生した場合、設定用アプリによって表示部108に、図4(b)に示すPINコード入力画面450が表示される。また、上述したように、OSの仕様によっては、例えば、PINコード入力領域451にPINコード501を入力可能な期間(入力が成功する期間)が定まっている形態がある。そこで、CPU103は、S217では、PINコード501の入力が成功する期間に関する情報を含むトースト603をPINコード入力画面450の前面に表示する表示制御を行う。結果として、表示部108には、図6(b)に示すBT設定画面602が表示される。トースト603は、具体的には、PINコード入力画面450が表示されてから30秒以内にPINコード501を入力することを促すためのメッセージや、入力されるPINコード501の桁数を表示する。これにより、ユーザは、PINコード501の入力における注意事項を踏まえて操作を実行できるため、PINコード501の入力におけるユーザビリティが向上する。CPU103は、S217の後は、再度S214の処理を実行する。
S218では、CPU103は、情報処理装置101とのペアリング処理を完了した通信装置が、S205で印刷用アプリによって表示された画面において選択された通信装置と一致するか否かを判定する。なお、「ペアリング完了」を示すイベントの通知には、情報処理装置101とのペアリング処理を完了した通信装置の識別情報が含まれている。そのため、CPU103は、具体的には、「ペアリング中」を示すイベントの通知に含まれる識別情報とS207で保存した情報とを比較することで、本判定処理を行う。CPU103は、一致すると判定した場合、S219に進み、一致しないと判定した場合、S214に戻る。なおCPU103は、一致しないと判定した場合、情報処理装置101とのペアリング処理を完了した通信装置が、S205で表示された画面において選択された通信装置と一致しないことを示すトーストを表示しても良い。
上述したように、「ペアリング完了」を示すイベントが発生した場合、設定用アプリによって表示部108に、図4(c)で示すBT設定画面460が表示される。ペアリング処理が正常に完了(成功)した(情報処理装置101とのペアリング処理を完了した通信装置が、S205で表示された画面において選択された通信装置と一致した)場合は、印刷用アプリによって表示される画面が再度表示されることが好ましい。すなわち、戻るボタン440が押下されて、印刷用アプリがフォアグラウンドに遷移することが好ましい。そこで、S219では、CPU103は、印刷用アプリをフォアグラウンドに遷移させるための通知を含むトースト605をBT設定画面460の前面に表示する。結果として、表示部108には、図6(c)に示すBT設定画面604が表示される。トースト605は、具体的には、印刷用アプリをフォアグラウンドに遷移させるための操作方法(戻るボタン440の押下の指示)を表示する。これにより、ユーザは、印刷用アプリをフォアグラウンドに遷移させるための操作をスムーズに実行することができる。CPU103は、S219の後は、再度S214の処理を実行する。なおこのとき、CPU103は、ペアリング処理が正常に完了(成功)したことを示す情報をトーストによって表示しても良い。
S220では、CPU103は、情報処理装置101とのペアリング処理を失敗した通信装置が、S205で印刷用アプリによって表示された画面において選択された通信装置と一致するか否かを判定する。なお、「ペアリング失敗」を示すイベントの通知には、情報処理装置101とのペアリング処理を失敗した通信装置の識別情報が含まれている。そのため、CPU103は、具体的には、「ペアリング失敗」を示すイベントの通知に含まれる識別情報とS207で保存した情報とを比較することで、本判定処理を行う。CPU103は、一致すると判定した場合、S221に進み、一致しないと判定した場合、S214に戻る。なおCPU103は、一致しないと判定した場合、情報処理装置101とのペアリング処理を失敗した通信装置が、S205で表示された画面において選択された通信装置と一致しないことを示すトーストを表示しても良い。
上述したように、「ペアリング失敗」を示すイベントが発生した場合、再度ペアリング処理が実行されようにするために、設定用アプリによって表示部108に、図4(a)に示すBT設定画面400が再度表示される。すなわち、「PrinterA」で示される通信装置とのペアリング処理が完了していない状態のBT設定画面が表示される。そこで、S221では、CPU103は、ペアリング処理を再度実行するようにユーザを促すための通知を含むトースト607をBT設定画面400の前面に表示する。結果として、表示部108には、図6(d)に示すBT設定画面606が表示される。トースト607は、具体的には、ペアリングが失敗したことを示す通知や、ペアリング処理を正常に行うための操作方法(30秒以内に正しいパスワードを入力するように指示する通知)を表示する。これにより、ユーザは、ペアリング処理が失敗しても、ペアリング処理を再度スムーズに実行することができる。なお、CPU103は、ペアリング処理が失敗した原因を示す通知をトースト607に含ませても良い。
続いて、S222では、CPU103は、S205で表示された画面を介してユーザが選択した通信装置をBT設定画面において選択するようにユーザを促すメッセージを含むトースト601を表示する。結果として、表示部108には、図6(a)に示すBT設定画面600が再度表示される。これにより、いずれの通信装置を選択すればよいかを再度ユーザに通知することができる。CPU103は、S222の後は、再度S214の処理を実行する。
S223では、CPU103は、S205で印刷用アプリによって表示された画面において選択された通信装置と情報処理装置101とのペアリング状態に関する情報を、OSより取得する。これにより、CPU103は、S205で印刷用アプリによって表示された画面において選択された通信装置と情報処理装置101とのペアリングが完了しているか否かを特定することができる。なお、特定の方法は上述に限定されない。例えば、CPU103は、例えば、設定用アプリを介して受信した「ペアリング完了」を示すイベント及び「ペアリング失敗」を示すイベントを保存しておく。そして、CPU103は、保存したイベントに応じて、通信装置と情報処理装置101とのペアリングが完了しているか否かを特定してもよい。
続いて、S224では、CPU103は、S223における特定結果に応じて、トーストやダイアログを表示部108に表示する。なお、このとき表示部108には印刷用アプリによって表示される画面が表示されているため、CPU103は、当該画面の前面に、トーストやダイアログを表示する。CPU103は、S205で印刷用アプリによって表示された画面において選択された通信装置と情報処理装置101とのペアリングが完了していると特定していた場合、ペアリング処理が完了した旨を示すメッセージを含むトーストやダイアログを表示する。CPU103は、S205で印刷用アプリによって表示された画面において選択された通信装置と情報処理装置101とのペアリングが完了していないと特定していた場合、ペアリング処理が失敗した旨を示すメッセージを含むトーストやダイアログを表示する。なお、ペアリング処理が失敗していた場合、例えば、S204等からの処理を再度行い、ペアリング処理再度実行しても良い。
続いて、S225では、CPU103は、設定用アプリにより表示されるBT設定画面に対する操作に応じて発生するイベントの通知を印刷用アプリが受信しないように設定する。これにより、印刷用アプリは、設定用アプリにより表示されるBT設定画面を介したペアリング処理時のみイベントの通知を受け付けて、発生したイベントに応じたトースト表示するので、適切なタイミングでトーストによる通知を行うことができる。
その後、CPU103は、処理を終了する。なお、このとき表示部108には印刷用アプリによって表示される画面が表示されているため、CPU103は、ユーザ指示に応じて、印刷用アプリが有する機能を引き続き実行しても良い。例えば、ペアリングした通信装置と情報処理装置101との接続に関する設定処理をBLEを介して実行したり、ペアリングした通信装置に印刷ジョブを送信したりしても良い。このような形態とすることで、ユーザは、ペアリング処理が終了したあとも、引き続き印刷用アプリを使用することができる。
このように本実施形態では、印刷用アプリによってBLE通信を行うために、設定用アプリにより表示されるBT設定画面を利用してペアリング処理を行う場合に、印刷用アプリによって、BT設定画面において種々の情報をトーストで表示する。このような形態とすることで、印刷用アプリにより表示される画面において入力された内容に基づいてBT設定画面において実行すべき操作を、設定用アプリにより表示されるBT設定画面において示すことができ、ユーザの利便性を向上させることができる。また、例えば、印刷用アプリの利用のために設定用アプリによって表示されるBT設定画面において実行すべき操作を、設定用アプリにより表示されるBT設定画面において示すことができ、ユーザの利便性を向上させることができる。ひいては、設定用アプリにより表示されるBT設定画面におけるユーザの誤操作を抑制して利便性を向上させることができる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。