Information processing device, method, program
The dual search mechanism in information processing devices ensures comprehensive discovery of communication devices by first searching via an external access point and then through a server, addressing communication failures due to varying network settings.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CANON KK
- Filing Date
- 2024-12-25
- Publication Date
- 2026-07-07
AI Technical Summary
Existing information processing devices struggle to discover communication devices connected to an access point due to varying network settings, leading to communication failures.
The device employs a dual search mechanism, first searching for communication devices via an external access point and, if unsuccessful, through an external server, ensuring comprehensive device discovery.
This approach enables the discovery of communication devices connected to an access point regardless of its settings, enhancing communication reliability.
Smart Images

Figure 2026113247000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing apparatus capable of communicating with an access point, a method executed in the information processing apparatus, and a program.
Background Art
[0002] In order to print a printer connected to a network from a client terminal such as a PC or a smartphone, it is necessary to make the printer communicable with the client terminal. A printer connected to the same network as the client terminal is searched from an application on the client terminal, and the printer selected by the user from the search results is registered in the application.
[0003] On the other hand, when various devices are connected to a Wi-Fi access point, communication with other devices becomes possible, which may pose a security risk. Therefore, a network separator function is known in the access point settings to prevent communication between devices and allow each device to communicate only with the external Internet.
[0004] In Patent Document 1, when a printer registered in a cloud service is selected as a print output destination, printing is performed via a LAN if communication between devices is possible, and printing is performed via the Internet if communication between devices is not possible.
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0006] When an information processing device searches for a communication device connected to an access point via that access point, depending on the access point's settings, the communication device may not be found even if it is connected to that access point. In that case, the user will not be able to use the communication device from the information processing device.
[0007] The present invention aims to provide an information processing device, method, and program that enable the discovery of communication devices connected to an access point, regardless of the settings of the access point. [Means for solving the problem]
[0008] The program according to the present invention causes the computer of the information processing device to function as a first search means that searches for the communication device via an access point that is outside the information processing device and the communication device, without going through a server that is outside the information processing device and the communication device; and a second search means that searches for the communication device via the external server if the communication device is not found as a result of the search by the first search means. [Effects of the Invention]
[0009] According to the present invention, it is possible to discover communication devices connected to an access point, regardless of the settings of the access point. [Brief explanation of the drawing]
[0010] [Figure 1] A diagram showing the configuration of a communication system. [Figure 2] This is a diagram showing the configuration of the device. [Figure 3] This is a flowchart showing the processing in an information processing device. [Figure 4] This is a flowchart showing the processing in an information processing device. [Figure 5] This is a flowchart showing the processing in an information processing device. [Figure 6]This is a diagram showing the user interface screen. [Figure 7] This is a diagram showing the user interface screen. [Figure 8] This is a diagram showing the user interface screen. [Figure 9] This is a diagram showing the registration information. [Figure 10] This is a diagram showing the user interface screen. [Figure 11] This is a diagram showing the user interface screen. [Figure 12] This is a diagram showing the user interface screen. [Figure 13] This is a flowchart showing the processing in an information processing device. [Figure 14] This is a diagram showing the user interface screen. [Figure 15] This is a diagram showing the user interface screen. [Modes for carrying out the invention]
[0011] The embodiments will be described in detail below with reference to the attached drawings. Note that the following embodiments do not limit the invention as defined in the claims. While the embodiments describe multiple features, not all of these features are essential to the invention, and the features may be combined in any way. Furthermore, in the attached drawings, identical or similar configurations are given the same reference numerals, and redundant descriptions are omitted.
[0012] <Description of the communication system> An information processing apparatus, a communication apparatus, and a cloud server system included in the communication system of this embodiment will be described. FIG. 1 is a diagram showing an example of a communication system. In this embodiment, the information processing apparatus 101 in FIG. 1 is exemplified by a smartphone, but it is not limited thereto, and various devices such as a mobile terminal, a notebook PC, a tablet terminal, a PDA (Personal Digital Assistant), a digital camera, etc. can be applied. Also, as the communication apparatus 151, various devices can be applied as long as they can perform wireless communication with the information processing apparatus. For example, if it is a printer, it can be applied to an inkjet printer, a full-color laser beam printer, a monochrome printer, etc. Also, not only printers but also scanners, copiers, facsimile devices, mobile terminals, smartphones, notebook PCs, tablet terminals, PDAs, digital cameras, music playback devices, TVs, smart speakers, etc. can be applied. In addition, it can also be applied to a multifunction device having a plurality of functions such as a copying function, a FAX function, a printing function, a scanner function, etc. In this embodiment, it is assumed that the communication apparatus 151 is a multifunction printer having a printing function, a scanner function, etc.
[0013] The access point 131 in FIG. 1 is a network device to which the information processing apparatus 101 and the communication apparatus 151 can be connected. And the access point 131 is connected to a network 201 such as the Internet. The information processing apparatus 101 and the communication apparatus 151 can communicate with the cloud server system 202 via the access point 131. Note that the cloud server system 202 can be configured by one or a plurality of server devices.
[0014] Next, the cloud services provided to customers by the cloud server system 202 will be described. The cloud server system 202 provides organizations such as enterprises with cloud printing services, cloud storage services, webmail, services for document creation and editing, and the like. Note that the cloud server system 202 does not necessarily provide all of these cloud services and may provide only some of the cloud services. In addition, the cloud server system also provides an authentication service for authenticating and managing users and devices that use various services. Therefore, the cloud server system 202 includes a cloud printing service 203 which is a software module that provides a cloud printing service, a cloud storage service 204 which is a software module that provides a cloud storage service, and an authentication service 205 which is a software module that provides an authentication service.
[0015] The authentication service 204 authenticates and manages devices for each user. The cloud server system 202 manages the right to use cloud services and access to customer data for each user. The communication devices 151 registered with the cloud print service 203 are also managed on a per-user basis. The cloud server system 202 may also manage the communication devices 151 on a per-tenant basis. In this configuration, a different tenant is assigned to each organization (for example, each company or organization) that has entered into a usage agreement for the cloud server system 202. The cloud server system 202 then associates and manages the communication devices 151 with each assigned tenant. In this configuration, user data, including print data, data necessary for the implementation of the cloud print service 203, and the user database (DB) for user authentication, is managed on a per-tenant basis. This embodiment assumes that the communication devices 151 are managed on a per-tenant basis. The cloud print service 203 has a function to temporarily hold print jobs received from external sources and a function to send the held print jobs to the communication devices registered with the cloud print service 203. In the following, communication devices registered with Cloud Print Service 203 are referred to as cloud printers.
[0016] The cloud server system 202 receives print jobs from client terminals such as the information processing device 101 and stores the print jobs in its managed storage area. Subsequently, the cloud server system 202 notifies the communication device 151 registered with the cloud print service 203 that a print job has been submitted. Upon receiving this notification, the communication device 151 retrieves the print job from the storage area of the cloud server system 202 and executes printing based on the retrieved print job.
[0017] <About the hardware configuration of each device> The configuration of the information processing device 101 included in the communication system of this embodiment and the communication device 151 capable of communicating with the information processing device 101 will be described with reference to the block diagram in Figure 2. Furthermore, although the following configuration will be described as an example in this embodiment, it is not limited to the configuration in Figure 2, and each device may have a configuration appropriate to the functions it can perform.
[0018] The information processing device 101 includes an input interface 102, a CPU 103, a ROM 104, a RAM 105, an external storage device 106, an output interface 107, an operation display unit 108, a communication unit 109, a short-range wireless communication unit 110, a camera 111, and the like. The input interface 102 is an interface that can receive data input and operation instructions from the user, and is composed of a physical keyboard, display buttons, a touch panel, etc. Alternatively, the output interface 107 and the input interface 102 may have the same configuration, allowing for screen output and acceptance of user operations with the same configuration.
[0019] The CPU 103 is the system control unit and controls the entire information processing device 101. The ROM 104 stores fixed data such as control programs executed by the CPU 103, data tables, and embedded operating system (hereinafter referred to as OS) programs. In this embodiment, each control program stored in the ROM 104 performs software execution control such as scheduling, task switching, and interrupt processing under the management of the embedded OS stored in the ROM 104.
[0020] RAM 105 consists of SRAM (Static Random Access Memory) and other components that require a backup power supply. Since RAM 105's data is held by a primary battery (not shown) for data backup, important data such as program control variables can be stored without being lost. RAM 105 also includes a memory area for storing configuration information and management data for the information processing device 101. Furthermore, RAM 105 is used as both the main memory and work memory for the CPU 103.
[0021] The external storage device 106 has a function to enable communication with the communication device 151 and includes a communication application program (hereinafter referred to as the communication app) that has a function to perform connection setting processing to connect the communication device 151 to an external access point. The communication app runs on the CPU 103. In addition to the communication app, the external storage device 106 also stores an app that has a printing function to enable the communication device 151 to perform printing and a scanning function to enable the communication device 151 to perform scanning. However, it is not limited to this form, and the app may have either a printing function or a scanning function, or an app with other functions. The app may be, for example, the communication app described above. The external access point is, for example, the access point 131 described later.
[0022] Furthermore, the external storage device 106 contains various programs, including a print information generation program that generates print information that can be interpreted by the communication device 151, an information transmission and reception control program that transmits and receives information with the communication device 151 connected via the communication unit 109, and a user management program that stores an access token, which is user account information for the cloud server system 202. These programs may be included in the above-mentioned application or may be configured separately from the application. The access token is provided to the information processing device 101 from the cloud server system 202 when the information processing device 101 logs into the cloud server system 202. The access token is information generated by the cloud server system 202 based on the user account information used for login. The external storage device 106 also stores various information used by these programs. In addition, the external storage device 106 also stores image data obtained from other information processing devices or the internet via the communication unit 109.
[0023] In this embodiment, we illustrate a case where the information processing device 101 is authenticated and managed by the authentication service 204 of the cloud server system 202. Furthermore, login authentication for users utilizing the information processing device 101 is also performed in cooperation with the authentication service 204 of the cloud server system 202.
[0024] In this embodiment, the communication application obtains an access token corresponding to the logged-in user from the external storage device 106. The communication application then uses the access token to call the Web API provided by the cloud print service 203. Upon receiving the call to the Web API, the cloud print service 203 responds based on the access token with information such as cloud printers associated with the logged-in user and information about available cloud storage services 205. For example, if the cloud print service 203 receives a request that includes an access token corresponding to a logged-in user, it notifies the user of a list of cloud printers and a list of cloud storage services associated with that user.
[0025] The output interface 107 is an interface that controls the display of the operation display unit 108 to display data and notify the status of the information processing device 101. The operation display unit 108 is composed of LEDs (light-emitting diodes) and LCDs (liquid crystal displays), and displays data and notifies the status of the information processing device 101. Alternatively, a soft keyboard equipped with keys such as numerical input keys, mode setting keys, OK keys, cancel keys, and power keys may be installed on the operation display unit 108 to accept input from the user via the operation display unit 108.
[0026] The communication unit 109 is configured to connect to devices such as the communication device 151 and perform data communication. For example, the communication unit 109 can connect to an access point (not shown) within the communication device 151. By connecting the communication unit 109 to the access point within the communication device 151, the information processing device 101 and the communication device 151 can communicate with each other. Hereinafter, the access point may be referred to as AP. The communication unit 109 may communicate directly with the communication device 151 via wireless communication, or it may communicate via an access point 131 located outside both the information processing device 101 and the communication device 151. In this embodiment, the IEEE 802.11 series communication standard is used as the wireless communication method. The IEEE 802.11 series communication standard is Wi-Fi (registered trademark). The communication unit 109 can communicate with the cloud server system 202 via the access point 131.
[0027] Furthermore, the access point 131 can be, for example, a wireless LAN router or other device. In this embodiment, the method by which the information processing device 101 and the communication device 151 are directly connected without going through an external access point is called the direct connection method. The method by which the information processing device 101 and the communication device 151 are connected via an external access point 131 is called the infrastructure connection method (hereinafter referred to as the infrastructure connection method).
[0028] The short-range wireless communication unit 110 is configured to connect with devices such as the communication device 151 via short-range wireless communication to perform data communication, and communicates using a different communication method than the communication unit 109. The short-range wireless communication method used by the short-range wireless communication unit 110 is, for example, Bluetooth® or Near Field Communication (NFC). Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 110 can connect to the short-range wireless communication unit 157 in the communication device 151.
[0029] The imaging device 111 is a device that converts images captured by the image sensor into digital data. The digital data is first stored in the RAM 105. Then, a program executed by the CPU 103 converts it into a predetermined image format and saves it as image data to the external storage device 106.
[0030] The communication device 151 includes a ROM 152, RAM 153, CPU 154, print engine 155, communication unit 156, short-range wireless communication unit 157, input interface 158, output interface 159, operation display unit 160, scan control unit 161, etc. The communication device 151 can operate in a set connection mode by setting the connection mode. The connection mode is, for example, a mode for communication via direct connection, or a mode for communication via infrastructure connection.
[0031] The communication unit 156 is configured for the communication device 151 to communicate with other devices, and in this embodiment, the communication unit 156 communicates according to the IEEE 802.11 series communication standard. The communication unit 156 has an access point inside the communication device 151 for connecting to devices such as the information processing device 101. This access point can be connected to the communication unit 109 of the information processing device 101. The communication unit 156 may communicate directly with the information processing device 101 via wireless communication, or it may communicate via the access point 131. The communication unit 156 may also have hardware that functions as an access point, or it may operate as an access point through software that enables it to function as an access point. In this embodiment, the communication unit 156 and the short-range wireless communication unit 157 are implemented in a single wireless chip. That is, in this embodiment, a combo chip that supports both the communication function of the IEEE 802.11 series communication standard and the communication function of the short-range wireless communication method is used. However, the configuration is not limited to this, and the communication unit 156 and the short-range wireless communication unit 157 may each be implemented by separate wireless chips.
[0032] RAM153 consists of DRAM and other components that require a backup power supply. Since RAM153 retains data through a data backup power supply (not shown), it can store important data such as program control variables without losing them. RAM153 is also used as the main memory and work memory of the CPU154, acting as a receive buffer to temporarily store print information received from the information processing device 101, and for storing various types of information.
[0033] ROM 152 stores fixed data such as control programs, data tables, and OS programs executed by the CPU 154. In this embodiment, each control program stored in ROM 152 performs software execution control such as scheduling, task switching, and interrupt handling under the management of the embedded OS stored in ROM 152. ROM 152 also includes a memory area for storing data that needs to be retained even when power is not supplied, such as configuration information and management data for the communication device 151.
[0034] The CPU 154 is the system control unit and controls the entire communication device 151. The print engine 155 forms an image on a recording medium such as paper using a recording material such as ink, based on the information stored in the RAM 153 and the print jobs received from the information processing device 101, etc., and outputs the print result. At this time, the print jobs transmitted from the information processing device 101, etc., have a large amount of data to transmit and require high-speed communication, so they are received via the communication unit 156, which can communicate at a higher speed than the short-range wireless communication unit 157.
[0035] The short-range wireless communication unit 157 is configured to connect to devices such as the information processing device 101 via short-range wireless communication and perform data communication, and communicates using a different communication method than the communication unit 156. The short-range wireless communication method used by the short-range wireless communication unit 157 is, for example, Bluetooth® or NFC. Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 157 can connect to the short-range wireless communication unit 110.
[0036] The input interface 158 is an interface capable of receiving data input and operation instructions from the user, and is composed of a physical keyboard, buttons, touch panel, etc. Alternatively, the output interface 159 (described later) and the input interface 158 may have the same configuration, allowing for screen output and acceptance of user operations using the same configuration. The output interface 159 is an interface that controls the display for the operation display unit 160 to display data and notify the status of the communication device 151.
[0037] The operation display unit 160 consists of a display unit such as an LED (light-emitting diode) or an LCD (liquid crystal display) and displays data and notifies the status of the communication device 151. Alternatively, a soft keyboard equipped with keys such as numerical input keys, mode setting keys, confirm keys, cancel keys, and power keys may be installed on the operation display unit 160 to accept input from the user via the operation display unit 160.
[0038] The scan control unit 161 includes an image sensor unit (reading unit) that performs scanning of documents loaded on a document glass or Automatic Document Feeder (ADF) (not shown). The image sensor unit includes an image sensor which is an array of elements that emit light onto the document and read the reflected light and perform photoelectric conversion. The scan control unit 161 acquires image data by performing A / D (analog / digital) conversion of the analog electrical signal obtained by reading the document with the image sensor unit. The scan control unit 161 includes a circuit that performs DMA (direct memory access) transfer in order to store the acquired image data in RAM 153.
[0039] <About the direct connection method> Direct connection refers to a configuration in which devices connect wirelessly directly (i.e., peer-to-peer) without the need for external devices such as access point 131. The communication device 151 can operate in a mode for communication via direct connection (direct connection mode) as one of its connection modes. In Wi-Fi communication, there are multiple modes for communication via direct connection, such as software AP mode and Wi-Fi Direct® mode. Wi-Fi Direct will be referred to as WFD below.
[0040] The mode in which a direct connection is performed using WFD is called WFD mode. WFD is a standard developed by the Wi-Fi Alliance and is included in the IEEE 802.11 series of communication standards. In WFD mode, after the device to be communicated with is found using device discovery information, the roles of the P2P group owner (GO) and the P2P client are determined, and then the remaining wireless connection processing is performed. The group owner corresponds to the Wi-Fi base station (access point), and the client corresponds to the Wi-Fi slave station (slave device). This role determination corresponds to GO Negotiation in P2P, for example. In WFD mode, before the role determination is performed, the communication device 151 is neither a base station nor a slave station. Specifically, first, one device issues device discovery information to the other device to connect in WFD mode. Once the other device to be communicated with is found, the two devices confirm information about the services and functions that can be supplied by each other. This confirmation of device supply information is optional and not mandatory. This equipment supply information confirmation phase corresponds, for example, to P2P Provision Discovery. Next, by confirming this equipment supply information with each other, it is determined which will be the P2P client and which will be the P2P group owner. Once the client and group owner are determined, they exchange parameters for communication using WFD. Based on the exchanged parameters, the remaining wireless connection processing and IP connection processing are carried out between the P2P client and group owner. In WFD mode, the communication device 151 may always operate as GO without performing the GO Negotiation described above. In other words, the communication device 151 may operate in WFD mode, which is Autonomous GO mode. Furthermore, the state in which the communication device 151 is operating in WFD mode means, for example, a state in which the WFD connection has not been established but the communication device 151 is operating as GO, or a state in which the WFD connection has been established and the communication device 151 is operating as GO.
[0041] In software AP mode, one device (e.g., information processing device 101) acts as a client, requesting various services from the other device (e.g., information processing device 101 and communication device 151). The other device then implements the functions of a Wi-Fi access point through software configuration. The software AP corresponds to a Wi-Fi base station, and the client corresponds to a Wi-Fi slave station. In software AP mode, the client searches for a device that will become a software AP using device discovery information. Once a software AP is found, the remaining wireless connection processing (such as establishing a wireless connection) takes place between the client and the software AP, followed by IP connection processing (such as assigning an IP address). The commands and parameters sent and received when establishing a wireless connection between the client and the software AP can be those specified in the Wi-Fi standard, and are therefore omitted from this explanation.
[0042] In this embodiment, when the communication device 151 establishes and maintains a direct connection, it operates as a master station within the network to which it belongs. A master station is a device that constructs a wireless network and provides slave stations with parameters used to connect to the wireless network. Parameters used to connect to the wireless network include, for example, parameters related to the channel used by the master station. By receiving these parameters, the slave station connects to the wireless network constructed by the master station using the channel used by the master station. In direct connection mode, since the communication device 151 operates as a master station, it is possible for the communication device 151 to determine which frequency band and which channel to use for communication in direct connection mode. In this embodiment, the communication device 151 is capable of using channels corresponding to the 2.4 GHz frequency band and channels corresponding to the 5 GHz frequency band for communication in direct connection mode. The user can arbitrarily set which frequency band (and which frequency band channel) to use by configuring settings on the screen displayed by the communication device 151. However, in this embodiment, even if 5GHz is selected on the screen displayed by the communication device 151, the communication device 151 will not use channels corresponding to the DFS (Dynamic Frequency Selection) band within the 5GHz frequency band for communication in direct connection mode. In other words, the communication device 151 will only use channels corresponding to frequency bands other than the DFS band within the 5GHz frequency band for communication in direct connection mode. If radar waves in the frequency band corresponding to a channel are detected while a channel corresponding to the DFS band is being used, the currently used channel must be changed. The frequency band in which such channel changes may occur due to the detection of radar waves is called the DFS band. However, if, for example, a wireless chip that supports the DFS function is being used, channels corresponding to the DFS (Dynamic Frequency Selection) band within the 5GHz frequency band may be available for communication in direct connection mode.
[0043] <About infrastructure connection methods> Infrastructure connection is a connection configuration in which communication devices (for example, an information processing device 101 and a communication device 151) are connected to an access point (for example, an access point 131) that manages the network, allowing the devices to communicate with each other via the access point. The communication device 151 can operate in one of the connection modes: an infrastructure connection mode for communication.
[0044] In infrastructure connectivity, each device searches for an access point using device discovery information. Once an access point is found, the remaining wireless connection processing (establishing the wireless connection, etc.) takes place between the device and the access point, followed by IP connection processing (assigning an IP address, etc.). The commands and parameters sent and received when establishing a wireless connection between the device and the access point should be those specified in the Wi-Fi standard, and will not be explained here.
[0045] In this embodiment, when the communication device 151 operates in infrastructure connection mode, the access point 131 operates as the master unit and the communication device 151 operates as the slave unit. That is, in this embodiment, infrastructure connection refers to the connection between the communication device 151 operating as the slave unit and the device operating as the master unit. When the communication device 151 has established an infrastructure connection and the information processing device 101 has also established an infrastructure connection with the access point 131, communication between the communication device 151 and the information processing device 101 becomes possible via the access point 131. Since the channel used for communication in the infrastructure connection is determined by the access point 131, the communication device 151 performs communication in the infrastructure connection using the channel determined by the access point 131. In this embodiment, the communication device 151 is capable of using channels corresponding to the 2.4 GHz frequency band and channels corresponding to the 5 GHz frequency band for communication in the infrastructure connection. The communication device 151 can also use channels corresponding to the DFS band within the 5 GHz frequency band for communication in the infrastructure connection.
[0046] Furthermore, in order for the information processing device 101 to communicate with the communication device 151 via the access point 131, it is necessary to recognize that the communication device 151 belongs to the network formed by the access point 131, to which the information processing device 101 belongs. In addition, if the information processing device 101 and the communication device 151 are connected to the access point 131 via infrastructure connection, the communication device 151 can be discovered by broadcasting executed by the information processing device 101.
[0047] However, in environments where inter-device communication over a LAN (Local Area Network) is restricted, the communication device 151 does not respond to the broadcast executed by the information processing device 101 in the infrastructure connection method. Therefore, the communication device 151 cannot be discovered. An environment where inter-device communication over a LAN is restricted is, for example, an environment where the access point to which the information processing device 101 and the communication device 151 are connected has the privacy separator function enabled. In such environments, because inter-device communication is restricted, the direct connection mode of the communication device 151 may also be disabled.
[0048] In this embodiment, the problems that arise in the environment described above can be solved. Specifically, even in an environment where the information processing device 101 cannot communicate with the communication device 151 via the access point 131, the communication device 151 can be discovered and communication can be enabled. This will be explained in detail below.
[0049] <About the search process> Figures 3, 4, and 5 are flowcharts illustrating the process of searching for a device using a communication application in this embodiment. This flowchart is realized when the CPU 103 reads various programs stored in memory such as an external storage device 106 into RAM 105 and executes them. Specifically, this flowchart is realized when the communication application is executed. This process is initiated when the user performs an operation that triggers the search for a device on the screen displayed by the communication application. However, the process is not limited to this form; for example, it may be initiated based on the launch of the communication application.
[0050] In S301, the CPU 103 searches for the communication device 151 on the LAN to which the information processing device 101 belongs. This search finds the communication device 151 that belongs to the LAN to which the information processing device 101 belongs. Specifically, in this search, the CPU 103 searches for the communication device 151 by instructing the OS to broadcast a packet on the LAN to which the information processing device 101 belongs, requesting a response from the communication device 151. The LAN to which the information processing device 101 belongs is, in other words, the network formed by the access point 131 to which the information processing device 101 is connected. Therefore, the communication device 151 found by this search is the communication device 151 connected to the access point 131 to which the information processing device 101 is connected. Also in S301, the CPU 103 executes an API for WFD, instructing the OS to perform a WFD search (i.e., send device discovery information using WFD). This causes the CPU 103 to execute the transmission of device discovery information by the OS. The OS then receives device discovery responses from WFD-compatible devices surrounding the information processing device 101. The CPU 103 obtains the device discovery responses from the OS. This identifies the device that sent the device discovery response as a device discovered by WFD. At this time, only the devices that support printing services among the devices that sent the device discovery response may be identified as devices discovered by WFD. Which device supports which service can be confirmed by communication between the device that sent the device discovery response and the information processing device 101.
[0051] Then, in S302, the CPU 103 determines whether or not there was a response from the communication device 151. In other words, it determines whether or not the communication device 151 was found. If it is determined that there was a response, in S303, the CPU 103 displays a list of the detected communication devices 151 on the screen.
[0052] Figure 6(a) shows an example of the list screen displayed in S303. SSID601 is the destination SSID indicating the connection destination of the information processing device 101. List 602 is a list of discovered communication devices 151. Button 603 is pressed when no printer is found. Note that "no printer is found" here includes not only cases where no printers are found, but also cases where printers are found but the printer desired by the user is not found.
[0053] In S304, the CPU 103 determines whether or not it has accepted the user's selection of the communication device 151 on the screen. If it is determined that the selection has been accepted, in S305, the CPU 103 registers the selected communication device 151 in the communication application so that it can be identified as a LAN-accessible printer. In other words, a LAN-accessible printer is a device with which the information processing device 101 communicates via the LAN to which the information processing device 101 belongs. Specifically, the LAN to which the information processing device 101 belongs is, for example, the network formed by the access point 131 to which the information processing device 101 is connected in infrastructure connection mode. Furthermore, the LAN to which the information processing device 101 belongs is, for example, the network formed by the communication device 151 to which the information processing device 101 is connected in direct connection mode. In this embodiment, devices that become communication partners via WFD after being discovered by WFD search are also included in LAN-accessible printers. Then, in S307, the CPU 103 finishes searching for the communication device 151 on the network to which the information processing device 101 belongs. The registration process for making the communication device 151 identifiable as a printer accessible via LAN will be described later.
[0054] If no selection is accepted in S304, in S306 the CPU 103 determines whether or not a search termination operation has been accepted. A search termination operation is, for example, an operation to terminate the search process shown in Figures 3 to 5, such as accepting the back button or the "Printer not found" button. If the "Printer not found" button is selected, the printer connection setting process (setup) can be executed. If it is determined that a search termination operation has been accepted, in S307 the CPU 103 terminates the search for the communication device 151 on the network to which the information processing device 101 belongs. If it is determined that a search termination operation has not been accepted, the process returns to S303.
[0055] If it is determined in S302 that the communication device 151 was not found, in S308 the CPU 103 determines whether a certain amount of time has elapsed since the start of processing in S301. This certain amount of time can be any amount of time, such as 10 seconds. If it is determined that the certain amount of time has not elapsed, the process returns to S302. If it is determined that the certain amount of time has elapsed, in S309 the CPU 103 terminates the search for the communication device 151 on the network to which the information processing device 101 belongs.
[0056] Then, in S310, the CPU 103 determines whether or not the user is logged into the cloud server system 202. To determine whether or not the user is logged in, the CPU 103 checks whether or not an access token is stored in the external storage device 106. If it is determined that no access token is stored, the CPU 103 determines that the user is not logged in, and in S311, the CPU 103 displays a notification screen on the screen prompting the user to log in to the cloud server system 202. This notification screen is, for example, a screen like the one shown in Figure 7(a) that prompts the user to log in to the cloud server system 202, with a cancel button 701 and a login button 702 at the bottom. In S312, the CPU 103 determines whether or not the login button was selected on the notification screen. Specifically, for example, the CPU 103 determines whether or not the cancel button 701 or the login button 702 was pressed. If it is determined that the cancel button 701 was selected, the CPU 103 terminates the display of the notification screen and ends the process shown in Figures 3 to 5. If it is determined that the login button 702 has been selected, in S313, the CPU 103 displays the login screen (not shown) of the cloud server system 202. The login screen of the cloud server system 202 is, for example, a screen with input fields for user ID, tenant ID, and password, and a login button at the bottom. Login is successful if the user ID, tenant ID, and password entered by the user match the information of the authentication service 204 of the cloud server system 202.
[0057] In S314, the CPU 103 determines whether the login was successful or not. If it is determined that the login was successful, the CPU 103 terminates the display of the login screen of the cloud server system 202 and saves the access token to the external storage device 106. If it is determined that the login was unsuccessful or failed, in S315, the CPU 103 displays a notification screen instructing the user to log in again. This notification screen is, for example, a screen that prompts the user to log in again, as shown in Figure 7(b), and has a cancel button 703 and a re-login button 704 at the bottom. In S316, the CPU 103 determines whether the re-login button was selected on the notification screen. Specifically, for example, the CPU 103 determines whether the cancel button 703 or the re-login button 704 was pressed. If it is determined that the re-login button 704 was selected, the process returns to S313, and the CPU 103 displays the login screen of the cloud server system 202 again. If it is determined that the cancel button 703 has been selected, the CPU 103 terminates the display of the notification screen and ends the processing shown in Figures 3 to 5.
[0058] If S310 determines that the user is already logged into the cloud server system 202, or if S314 determines that the login was successful, then in S317, the CPU 103 searches for a communication device 151 registered with the cloud service that the information processing device 101 logged into and that is provided by the cloud server system 202. Specifically, the CPU 103 first communicates with the cloud server system 202 via the access point 131 and sends the access token stored in the external storage device 106 to the cloud server system 202. The cloud server system 202 then identifies the user account corresponding to the received access token. Subsequently, the cloud server system 202 identifies the tenant managed in association with the identified user account. The cloud server system 202 then searches for a communication device 151 registered with the cloud service that is associated with the identified tenant, and sends the information of the communication device 151 found through this search to the information processing device 101. The information processing device 101 may also send information corresponding to the tenant to the cloud server system 202 instead of the access token. The cloud server system 202 may then identify the tenant based on that information.
[0059] In S318, the CPU 103 determines whether or not it has received information about the communication device 151 from the cloud server system 202. In other words, the CPU 103 determines whether or not the communication device 151 of the cloud server system 202 has been found. If it is determined that information about the communication device 151 has not been received, in S319, the CPU 103 determines whether or not a notification has been displayed. The notification display here refers to, for example, the display of the notification screen shown in Figure 8. If it is determined that a notification has not been displayed, in S320, the CPU 103 determines whether or not a certain amount of time has elapsed since the start of processing in S317. This certain amount of time can be any amount of time, such as 10 seconds. If it is determined that a certain amount of time has elapsed, in S321, the CPU 103 displays, for example, the notification screen shown in Figure 8. The notification screen in Figure 8 is just an example and is intended to notify that the printer was not found and what to do in that case. On the other hand, if it is determined that a certain amount of time has not elapsed, the processing from S319 is repeated. If it is determined in S319 that a notification has been displayed, or if the OK button 801 is pressed, in S322 the CPU 103 determines whether or not the search termination operation has been accepted. If it is determined that the search termination operation has been accepted, in S328 the CPU 103 terminates communication with the cloud server system 202 and terminates the cloud printer search. On the other hand, if it is determined that the search termination operation has not been accepted, the process from S318 is repeated.
[0060] If it is determined in S318 that information about the communication device 151 has been received from the cloud server system 202, then in S323, the CPU 103 executes processing to enable the narrowing down of nearby printers. For example, the processing in S323 involves obtaining the signal strength of the direct connection access point of the communication device 151 and the signal strength of the Bluetooth communication between the near-field wireless communication unit 110 and the near-field wireless communication unit 157. The transmission of beacons such as the SSID broadcast of the communication unit 156 and the advertisement of the nearby wireless communication unit 157 for obtaining signal strength in S323 may be performed continuously, or it may start transmitting beacons only after receiving instructions from the cloud server system 202 to transmit beacons for a certain period of time. For example, when the cloud printer search starts in S317, the CPU 103 may use the fact that it has communicated with the cloud server system 202 as a trigger to instruct the cloud server system 202 to transmit beacons for a certain period of time. For example, the information processing device 101 identifies the communication device 151 from the beacon information received from the short-range wireless communication unit 157, and links the distance measurement result between the information processing device 101 and the communication device 151 as distance information to the information of the communication device 151 received in S317. Note that the processing in S323 may be omitted. In other words, it is also possible to have a configuration in which the nearest printer is not narrowed down.
[0061] Then, in S324, the CPU 103 displays a list screen showing a list of communication devices 151 corresponding to the information received from the cloud server system 202. This screen is a list screen showing one or more communication devices 151 that have been discovered by the cloud server system 202 because they are registered with the cloud service, and that correspond to the access token sent from the information processing device 101. On this screen, distance information associated with the information of each communication device 151 is displayed. Figure 6(b) is an example of the list screen displayed in S324. The distance information 604 shows the distance from the information processing device 101, and is controlled so that, for example, devices with closer distance information are displayed higher up. The distance information may be the distance between the information processing device 101 and the communication device 151 calculated from the radio wave strength, or thresholds may be set for the radio wave strength and displayed as short distance, medium distance, long distance, etc. for each threshold. For example, a signal strength of -50 dBm or higher is displayed as short distance, a signal strength of -70 dBm or higher but less than -50 dBm is displayed as medium distance, and a signal strength of -80 dBm or higher but less than -70 dBm is displayed as long distance. Furthermore, distance information for farther distances may not be displayed on the screen, or distance information may not be displayed at all. In addition, regardless of the magnitude of the distance indicated by the distance information, the distance information 604 may not be displayed on the list screen. Furthermore, even in the form where the processing of S323 is omitted, the distance information 604 shall not be displayed on the list screen.
[0062] In S325, the CPU 103 determines whether the communication device 151 displayed on the screen in S324 was selected. If it is determined that the communication device 151 was selected on the screen, in S327, the CPU 103 registers the selected communication device 151 with the communication application so that it can be identified as a printer used via the cloud. The registration information for identifying the communication device 151 as a printer used via the cloud will be described later. On the other hand, if it is determined that the communication device 151 was not selected on the screen, in S326, the CPU 103 determines whether or not it has accepted the operation to end the search. If it is determined that it has not accepted the operation to end the search, the process from S324 is repeated. After the registration is completed in S327, or if it is determined in S326 that the operation to end the search has been accepted, in S328, the CPU 103 terminates communication with the cloud server system 202 and terminates the search for cloud printers.
[0063] The following describes the registration information for the communication device 151 in the communication application. Figure 9 shows an example of the registration information for the communication application. In S305, for example, the CPU 103 registers the registration information shown in Figure 9(a) in the communication application so that the communication device 151 can be identified as a printer used via LAN. In S327, for example, the CPU 103 registers the registration information shown in Figure 9(b) in the communication application so that the communication device 151 can be identified as a printer used via the cloud. Here, a printer used via the cloud means a communication device that has been registered in the communication application as a printer used (communicates) by the user via the cloud server system 202. As shown in Figure 9(a), the data representing the registration information is composed of a dataset that includes attributes and values. Attributes include items such as printer name, model name, whether or not it is a cloud-based print, IP address, MAC address, serial number, color / monochrome, and whether or not it has a scanner, and values are detailed information corresponding to each item. As shown in Figure 9(a), S305 stores information indicating that the printer is not a cloud-based printer, such as "NO," for the item indicating whether or not it is a cloud-based printer. On the other hand, as shown in Figure 9(b), S327 stores registration information indicating that it is a cloud-based printer, such as "YES," for the item indicating whether or not it is a cloud-based printer.
[0064] Furthermore, the printer search method is not limited to the processes shown in Figures 3 to 5. For example, even if a printer is found using a LAN-based printer search, the search results screen may not be displayed. Instead, a cloud printer search may be performed, and the printers found in each search may be displayed together on the search results screen.
[0065] Furthermore, the order in which the processes for searching for printers using the LAN (S301-S307) and the processes for searching for cloud printers (S317-S328) are executed may be reversed, and the searches may be executed in parallel. Also, instead of displaying the search results screen after each search is completed, the system may be configured so that each device discovered is added to the search results screen as it is found through each search.
[0066] Furthermore, the method of transitioning to cloud printer search is not limited to the processes shown in Figures 3 to 5. For example, when the "Printer not found" button 603 in Figure 6(a) is pressed, the notification screen shown in Figure 10 is displayed. On this notification screen, the user is asked to confirm whether to perform a cloud printer search or setup. If the selection of the cloud printer search button 1002 is accepted, the CPU 103 terminates the display of the notification screen in Figure 10 and starts searching for the cloud printer. If the selection of the setup button 1001 is accepted, the CPU 103 displays the setup selection screen shown in Figure 11(a). On this selection screen, the communication application can perform connection setting processing for the communication device 151. In order to perform connection setting processing, the communication device 151 must be in connection setting mode, and the trigger for the communication device 151 to start operating in connection setting mode is, for example, when the user presses the connection setting mode button. The button for connection setting mode may be a hardware (physical) button on the communication device 151, or it may be a software button displayed on the operation display unit 160 by the communication device 151. When the communication device 151 starts operating in connection setting mode, it activates an internal access point (connection setting access point) dedicated to connection setting mode. This allows the communication device 151 to establish a direct Wi-Fi connection with the information processing device 101. Connection information (SSID (Service Set Identifier) and password) for connecting to the connection setting access point is stored in advance in the communication application. Therefore, it is assumed that the CPU 103 is already aware of the connection information for connecting to the connection setting access point.
[0067] On the setup selection screen, the infrastructure connection button 1101 and the direct connection button 1102 are displayed. If the infrastructure connection button 1101 is selected, the CPU 103 prompts the user to select an access point 131 to connect the information processing device 101 and the communication device 151 on the Wi-Fi access point selection screen shown in Figure 11(b). If the access point button 1103 is selected, the CPU 103 prompts the user to enter the password for that access point 131 and obtains the connection information. The CPU 103 sends the obtained connection information (SSID and password) to the communication device 151, causing the communication device 151 to connect to the access point 131. The CPU 103 also obtains cloud registration information from the communication device 151 via the direct connection in connection setting mode. Cloud registration information is the information necessary to register the communication device 151 with the cloud server system 202, and specifically includes, for example, the identification information of the communication device 151, the license information for registration with the cloud server system 202, and the device group registration information. The identification information for communication device 151 specifically refers to, for example, the serial number and model name of communication device 151. The device group registration information specifically refers to, for example, information indicating the tenant to which communication device 151 is associated. It may also include the MAC address of communication device 151. Note that the acquisition of cloud registration information may be performed before connection information to access point 131 is sent to communication device 151.
[0068] The CPU 103 uses the above connection information to switch the connection of the communication unit 109 from the communication unit 156, which operates as a connection setting access point, to the access point 131. Then, the CPU 103 searches for the communication device 151 via the access point 131 (via the infrastructure connection). The CPU 103 determines whether or not it has found the communication device 151 for which the connection setting process was performed. If it is determined that it has been found, the CPU 103 registers the communication device 151 in the communication application so that it can be identified as a printer used via LAN. If it is determined that it has not been found, the CPU 103 sends the cloud registration information to the cloud server system 202 and executes the process of registering the communication device 151 to the cloud service. The cloud server system 202, having received the cloud registration information, manages the tenant indicated by the device group registration information included in the cloud registration information and the communication device 151 indicated by the identification information included in the cloud registration information by linking them together. As a result, the communication device 151 is registered in the cloud service provided by the cloud server system 202. For example, if the cloud registration information sent by the CPU 103 to the cloud server system 202 in this process matches the cloud registration information sent by the communication device 151 to the cloud server system 202 after the connection setup process is completed, the registration process of the communication device 151 to the cloud service may be considered successful. Furthermore, if the communication device 151 is a model that can be registered, the registration process of the communication device 151 to the cloud service may be considered successful. Not limited to these forms, the registration process of the communication device 151 to the cloud service may also be considered successful if the cloud server system 202 attempts to access the communication device 151 using the cloud registration information sent by the information processing device 101 to the cloud server system 202, and this access is successful. If the registration process of the communication device 151 to the cloud service is successful, the cloud server system 202 sends a response to the information processing device 101 indicating that the registration was successful. If the registration process of the communication device 151 to the cloud service fails, the cloud server system 202 sends a response to the information processing device 101 indicating that the registration failed.A registration process failure may occur, for example, when the cloud registration information sent by the information processing device 101 to the cloud server system 202 does not match the cloud registration information sent by the communication device 151 to the cloud server system 202 after the connection setup process is completed. Another example is when the communication device 151 is a model that is not eligible for registration.
[0069] The CPU 103 determines whether the above registration process was successful or unsuccessful based on the response from the cloud server system 202. If it is determined to be successful, the CPU 103 registers the communication device 151 with the setup application so that it can be identified as a printer used via the cloud. If it is determined to be unsuccessful, the CPU 103 notifies that the registration of the communication device 151 to the cloud service failed.
[0070] When the direct connection button 1102 is pressed, the CPU 103 sends a command to the communication device 151 to set it to direct connection mode. Upon receiving the command from the CPU 103 to set it to direct connection mode, the communication device 151 sends the direct connection SSID to the information processing device 101 and changes the connection mode of the communication device 151 from connection setting mode to direct connection mode. Here, the direct connection SSID is the SSID of an access point within the communication device 151, separate from the connection setting access point, and is the SSID used to establish a direct connection with the information processing device 101. At this time, the communication device 151 disables the connection setting access point by canceling the connection setting mode. Subsequently, the communication device 151 enables the access point with the direct connection SSID, enabling a direct connection with the information processing device 101. Furthermore, at this time, the CPU 103 sets the destination SSID to the direct connection SSID to establish a direct connection with the communication device 151. With this configuration, the information processing device 101 can set the communication device 151 to direct connection mode and then establish a direct connection with the communication device 151. The communication device 151 is then registered in the communication application so that it can be identified as a printer used via LAN.
[0071] In this embodiment, the CPU 103 searches for the communication device 151 on the network to which the information processing device 101 belongs via the access point 131. If the communication device 151 is found, the CPU 103 registers the communication device 151 selected by the user from the search results in the communication application so that it can be identified as a printer used via the LAN. If there is no response from the communication device 151 after a certain period of time, the CPU 103 searches for the communication device 151 on the cloud server system 202 via the access point 131. If the communication device 151 is found, the CPU 103 registers the communication device 151 selected by the user from the search results in the communication application so that it can be identified as a printer used via the cloud.
[0072] This allows the communication device 151 to be used via cloud printing even when communication via infrastructure connection between the information processing device 101 and the communication device 151 is disabled. The registration information shown in Figure 9(b) is registered in the communication settings application, and the setup application screen clearly indicates that the printer is being used via the cloud. Figure 12 shows an example of the home screen of the communication application after the connection setting process has been completed. The screen in Figure 12 displays printer information 1203 indicating the communication device 151 registered in the communication application in S327. The printer information 1203 includes an icon 1204 corresponding to the model of the communication device 151 and text 1205 indicating that the communication device 151 is a cloud-based printer, thus clearly indicating that the communication device 151 is a cloud-based printer. Note that if the communication device 151 registered in the communication application is a LAN-based printer, the printer information 1203 will include an icon 1204 corresponding to the model of the communication device 151 and text indicating that the communication device 151 is a LAN-based printer. However, the system is not limited to this configuration. If the communication device 151 registered in the communication application is a printer used via LAN, the printer information 1203 does not need to include text indicating that the communication device 151 is a printer used via LAN. Similarly, if the communication device 151 registered in the communication application is a printer used via the cloud, the printer information 1203 does not need to include text 1205. Furthermore, the timing of the registration process for the communication device 151 to the cloud service and the specific content of the process for registering the communication device 151 to the cloud service are not limited to the above configuration. For example, the registration process for the communication device 151 to the cloud service may be performed at any time other than after the connection setup process has been executed. Specifically, for example, a button for executing the registration process for the communication device 151 to the cloud service may be provided on the setup application screen, and the registration process may start when the button is pressed. Alternatively, the registration process may be executed without communication between the information processing device 101 and the communication device 151.Specifically, for example, when an operation for the registration process is performed on the communication device 151, the communication device 151 may transmit the cloud registration information to the cloud server system 202 without communication between the information processing device 101 and the communication device 151.
[0073] <Printing process on the printer> Next, we will explain the process by which the communication application of the information processing device 101 instructs the communication device 151 to print.
[0074] Figure 13 is a flowchart illustrating the process by which the communication application of the information processing device 101 instructs the communication device 151 to print. The process in Figure 13 is realized, for example, by the CPU 103 of the information processing device 101 reading a program stored in the ROM 104, such as the communication application, into the RAM 105 and executing it. The process in Figure 13 is performed after the communication device 151 has been registered with the communication application by the processes in Figures 3 to 5. Then, one of the communication devices 151 registered with the communication application is selected by the user. The process in Figure 13 is performed when the selected communication device 151 has been identified.
[0075] In S1301, the CPU 103 receives a print start command from the user. Specifically, for example, it receives a press of the button 1201 indicating "Print" on the screen shown in Figure 12.
[0076] In S1302, the CPU 103 accepts a selection from the user regarding how to obtain the file to be printed. In other words, it accepts a selection from the storage source from which to obtain the file to be printed. Specifically, for example, the CPU 103 displays the screen shown in Figure 14(a). If the user wants to obtain the file to be printed from the external storage device 106 within the information processing device 101, they press the button 1401 indicating "On Smartphone". Alternatively, if the user wants to obtain the file to be printed from cloud storage on the cloud server system 202, they press the button 1402 indicating "Cloud Service".
[0077] In S1303, the CPU 103 accepts the user's selection of the file to be printed. Specifically, for example, the CPU 103 displays the screen shown in Figure 14(b) on the operation display unit 108. If a file is selected on the file selection screen from cloud storage (not shown), the selected file is downloaded from the cloud storage to the primary area of the external storage device 106 of the information processing device 101.
[0078] In S1304, the CPU 103 displays a preview of the file selected in S1303. Specifically, for example, it displays the screen shown in Figure 14(c). The screen in Figure 14(c) displays the preview image 1403 and the "Next" button 1404. Although not shown in Figure 14(c), an edit button for editing the file of the preview image 1403 may also be displayed. In this embodiment, it is assumed that the edit button is displayed.
[0079] In S1305, the CPU 103 determines which button was pressed on the screen displayed in S1304. If it is determined that the edit button was pressed, in S1311, the CPU 103 displays an editing screen (not shown) for editing the preview image 1403 file on the operation display unit 108. On the editing screen, image editing functions such as cropping the image or making it sepia-toned can be performed. After S1311, the process from S1305 is repeated. If it is determined in S1305 that the "Next" button 1404 was pressed, the process proceeds to S1306.
[0080] In S1306, the CPU 103 displays a screen for the user to confirm the print settings. Specifically, for example, it displays the screen shown in Figure 14(d). On the screen in Figure 14(d), a button 1406 for receiving a command to execute printing and a button 1405 for changing the print settings are displayed.
[0081] In S1307, the CPU 103 determines which button was pressed on the screen displayed in S1306. If it is determined that a button for changing the print settings was pressed, in S1312, the CPU 103 displays a screen (not shown) for changing the print settings. The user can change the print settings on this screen. After S1312, the process from S1307 is repeated. If it is determined in S1307 that a button for accepting the instruction to execute printing was pressed, the process proceeds to S1308.
[0082] In S1308, the CPU 103 displays a screen indicating that printing is in progress. Specifically, for example, the screen shown in Figure 14(e) is displayed on the operation display unit 108. The actual printing process starts after S1309.
[0083] In S1309, the CPU 103 determines whether the communication device 151 performing the printing is a cloud-based printer (or a LAN-based printer). Specifically, the CPU 103 determines whether the selected communication device 151 is registered as a printer that communicates via the cloud server system 202, or as a printer that communicates via the access point 131 without going through the cloud server system 202. If the CPU 103 determines that the communication device 151 performing the printing is a cloud-based printer, it proceeds to S1310. On the other hand, if the CPU 103 determines that the communication device 151 performing the printing is not a cloud printer (it is a LAN-based printer), it proceeds to S1313. Specifically, for example, if the detailed information of the "Is it a cloud printer or not?" item in the registration information shown in Figures 9(a) and 9(b) indicates that it is a cloud-based printer, it proceeds to S1310. On the other hand, if it indicates that it is not a cloud-based printer, it proceeds to S1313.
[0084] In S1310, the CPU 103 transmits the file selected in S1303, print settings information, the access token stored in the external storage device 106, and the registration information of the communication device 151 shown in Figure 9(b) to the cloud server system 202 via the access point 131. If the access token is not stored in the external storage device 106, the login process (S311-S316) is performed. In that case, if the login is determined to be successful in S314, the access token is stored in the external storage device 106, and the process in S1310 is performed.
[0085] In other words, if the communication device 151 is registered in the communication application as a printer used via the cloud, the printing process on the communication device 151 is executed as a cloud print. As a result, the file selected in S1303 and a print job that instructs the communication device 151 to print based on the print settings information are sent from the cloud server system 202 to the communication device 151. Then, based on the print job, the communication device 151 executes printing based on the file selected in S1303 and the print settings information. After S1310, the process shown in Figure 13 is completed.
[0086] In S1313, the CPU 103 sends the file selected in S1303, print settings information, and a print command to the communication device 151 via the access point 131. As a result, the file selected in S1303 and a print job that instructs the communication device 151 to print based on the print settings information are sent to the communication device 151 via the access point 131 but not via the cloud server system 202. Based on this print job, the communication device 151 then executes printing based on the file selected in S1303 and the print settings information. That is, if the communication device 151 is not registered in the setup application as a printer to be used via the cloud, a print command is sent from the information processing device 101 to the communication device 151 via the infrastructure connection.
[0087] As described above, according to this embodiment, even if the information processing device 101 cannot issue a print command because the information processing device 101 and the communication device 151 cannot communicate via the access point 131, printing can still be performed on the communication device 151 as cloud printing.
[0088] The file to be printed, which is sent to the cloud server system 202 in S1310 or to the communication device 151 in S1313, may be an image file in the selected PDF or JPEG format, or it may be in a printable format. A printable format is, for example, a RAW image format or a Print Description Language (PDL) that can be interpreted by a printer.
[0089] When the "Other Functions" button 1202 on the screen in Figure 12 is pressed, the CPU 103 displays the screen showing the list of other functions as shown in Figure 15(a). When the "Cloud" button 1501 is pressed on the screen in Figure 15(a), the CPU 103 displays the screen showing the list of cloud integration functions as shown in Figure 15(b). At this time, the CPU 103 communicates with the cloud server system 202 and performs user authentication. Specifically, the CPU 103 obtains an access token corresponding to the logged-in user from the external storage device 106 and sends the access token to the cloud server system 202 to perform user authentication. If the access token is not stored at this time, the login process (S311~S316) is performed. If login is determined to be successful in S314, the access token is stored in the external storage device 106, and communication with the cloud server system 202 is performed to perform user authentication.
[0090] In the screen shown in Figure 15(b), the Cloud Storage Service buttons 1505 and 1506, which print based on data stored in cloud storage, are selectable. Additionally, the Photo Service buttons 1502 and 1503, which print based on photo data from the internet, are selectable. Furthermore, the Message Exchange Service button 1504, which prints a single document combining photo data and messages from the internet, is selectable.
[0091] In the printing function implemented by the cloud storage service buttons 1505 and 1506 in Figure 15(c), the cloud server system 202 acquires data from the cloud storage service 205 and directly transmits the acquired data to the communication device 151. On the other hand, in the printing function implemented by the cloud service button 1402 in Figure 14(a), the data on the cloud storage is first downloaded to the information processing device 101 and then transmitted back to the cloud server system 202. Therefore, the user can perform image editing functions, such as cropping or sepia toning, on the data on the cloud storage before printing. In this embodiment, since two types of interfaces are provided—the cloud service button 1402 and the cloud storage service buttons 1505 and 1506—the user can perform editing on the data on the cloud storage at any time using the information processing device 101.
[0092] The present invention can also be realized by supplying a program that implements one or more of the functions of the above-described embodiments to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that implements one or more functions.
[0093] The disclosure of this embodiment includes information processing devices, methods, and programs. (Item 1) The computer of the information processing device, A first search means for searching the communication device via an access point that is outside the information processing device and the communication device, without going through a server that is outside the information processing device and the communication device. If the communication device is not found as a result of the search by the first search means, a second search means searches for the communication device via the external server. A program designed to function as such. (Item 2) The program described in item 1 further causes the computer to function as a first display control means, which controls the computer to display a notification screen indicating that the communication device was not found if the communication device is not found as a result of the search by the second search means. (Item 3) The program according to item 2, characterized in that the first display control means controls the display of the notification screen if the communication device is not found after a predetermined time has elapsed since the search by the second search means was started. (Item 4) The program according to item 2 or 3, characterized in that the case in which the communication device is not found as a result of the search by the first search means includes a case in which the external access point is configured so that communication between devices connected to the external access point is not possible. (Item 5) The program according to any one of items 1 to 4, further characterized in that, if a communication device is found as a result of a search by the second search means, the computer is made to function as a second display control means that controls the display of a first list screen showing a list of the discovered communication devices. (Item 6) The first list screen can accept the selection of the communication device, The program according to item 5, characterized in that the information of the communication device that received the selection on the first list screen is controlled to be stored in a storage means as a device that causes a predetermined process to be executed via the external server. (Item 7) The program according to item 6, characterized in that when a search is performed by the second search means, the computer is further made to function as a third detection means for detecting a short-range wireless communication signal from an external source. (Item 8) The program according to item 7, characterized in that, on the first list screen, the distance from the information processing device is displayed in correspondence with the information of the communication device based on the signal detected by the third detection means. (Item 9) The program according to any one of items 6 to 8, further characterized in that, if a communication device is found as a result of a search by the first search means, the computer is made to function as a third display control means that controls the display of a second list screen showing a list of the discovered communication devices. (Item 10) The second list screen can accept the selection of the communication device, The program according to item 9, characterized in that the information of the communication device that received the selection on the second list screen is controlled to be stored in the storage means as a device that executes the predetermined process via the external access point without going through the external server. (Item 11) The second list screen is capable of receiving instructions to display a selection screen for selecting either a search by the second search means or a connection setting process for the communication device. The program according to item 10, further characterized in that it causes the computer to function as a third display control means that controls the display of the selection screen when the instruction is received on the second list screen. (Item 12) The program according to item 11, characterized in that if the search by the second search means is selected on the selection screen, the search by the second search means is executed. (Item 13) If the connection setting process is selected on the selection screen, the computer will further function as a connection means that connects to the communication device operating in a predetermined mode without going through the external access point. While the connection is established by the aforementioned connection means, connection information to the external access point is transmitted. A program according to item 11 or 12, characterized by the above. (Item 14) The program according to any one of items 6 to 13, characterized in that the predetermined processing includes printing processing. (Item 15) The program according to any one of items 1 to 14, characterized in that the external server is a cloud server. (Item 16) The program according to item 15, characterized in that the aforementioned cloud server is a cloud server managed on a tenant-by-tenant basis. (Item 17) An information processing device, A first search means for searching the communication device via an access point that is outside the information processing device and the communication device, without going through a server that is outside the information processing device and the communication device, If the communication device is not found as a result of the search by the first search means, a second search means searches for the communication device via the external server, An information processing device characterized by comprising: (Item 18) A method performed in an information processing device, A first search step involves searching for the communication device via an access point that is external to the information processing device and the communication device, without going through a server that is external to the information processing device and the communication device; If the communication device is not found as a result of the search in the first search step, a second search step is performed to search for the communication device via the external server, A method characterized by having the following: [Explanation of Symbols]
[0094] 101 Information Processing Units: 103, 154 CPUs: 131 Access Points: 151 Communication Devices
Claims
1. The computer of the information processing device, A first search means for searching the communication device via an access point that is outside the information processing device and the communication device, without going through a server that is outside the information processing device and the communication device. If the communication device is not found as a result of the search by the first search means, a second search means searches for the communication device via the external server. A program designed to function as such.
2. The program according to claim 1, which further causes the computer to function as a first display control means that controls the display of a notification screen indicating that the communication device was not found if the communication device is not found as a result of the search by the second search means.
3. The program according to claim 2, characterized in that the first display control means controls the display of the notification screen if the communication device is not found after a predetermined time has elapsed since the search by the second search means was started.
4. The program according to claim 2, characterized in that the case in which the communication device is not found as a result of the search by the first search means includes a case in which the external access point is configured so that communication between devices connected to the external access point is not possible.
5. The program according to claim 1, further characterized in that, if a communication device is found as a result of a search by the second search means, the computer is further configured to function as a second display control means that controls the display of a first list screen showing a list of the discovered communication devices.
6. The first list screen can accept the selection of the communication device, The program according to claim 5, characterized in that the information of the communication device that received the selection on the first list screen is controlled to be stored in the storage means as a device that causes a predetermined process to be executed via the external server.
7. The program according to claim 6, characterized in that when a search is performed by the second search means, a computer is further made to function as a third detection means for detecting a short-range wireless communication signal from an external source.
8. The program according to claim 7, characterized in that, in the first list screen, the distance from the information processing device is displayed in correspondence with the information of the communication device based on the signal detected by the third detection means.
9. The program according to claim 6, further characterized in that a computer is made to function as a third display control means, which controls the display of a second list screen showing a list of the communication devices found as a result of a search by the first search means.
10. The second list screen can accept the selection of the communication device, The program according to claim 9, characterized in that the information of the communication device that has received the selection in the second list screen is controlled to be stored in the storage means as a device that executes the predetermined process via the external access point without going through the external server.
11. The second list screen is capable of receiving instructions to display a selection screen for selecting either a search by the second search means or a connection setting process for the communication device. The program according to claim 10, further characterized in that a computer is made to function as a third display control means that controls the display of the selection screen when the instruction is received on the second list screen.
12. The program according to claim 11, characterized in that if the search by the second search means is selected on the selection screen, the search by the second search means is performed.
13. If the connection setting process is selected on the selection screen, the computer will further function as a connection means that connects to the communication device operating in a predetermined mode without going through the external access point. While the connection is established by the aforementioned connection means, connection information to the external access point is transmitted. The program according to feature 11.
14. The program according to claim 6, characterized in that the predetermined processing includes printing processing.
15. The program according to claim 1, characterized in that the external server is a cloud server.
16. The program according to claim 15, characterized in that the cloud server is a cloud server managed on a tenant-by-tenant basis.
17. An information processing device, A first search means for searching the communication device via an access point that is outside the information processing device and the communication device, without going through a server that is outside the information processing device and the communication device, If the communication device is not found as a result of the search by the first search means, a second search means searches for the communication device via the external server, An information processing device characterized by comprising:
18. A method performed in an information processing device, A first search step involves searching for the communication device via an access point that is external to the information processing device and the communication device, without going through a server that is external to the information processing device and the communication device; If the communication device is not found as a result of the search in the first search step, a second search step is performed to search for the communication device via the external server, A method characterized by having the following: