Program and control method
By displaying compatible and incompatible communication devices on separate screens, the program enhances usability by preventing user confusion and ensuring effective processing in forms that execute processing related to second programs.
Patent Information
- Application Number
- JP2024004354
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-16
- Publication Date
- 2025-07-29
AI Technical Summary
Existing technologies face challenges in improving the usability of forms that execute processing related to second programs, particularly when communication devices not supporting the predetermined program are discovered during searches, leading to user confusion and ineffective processing.
A program is executed on a first information processing apparatus with a first operating environment that displays compatible and incompatible communication devices on separate screens, allowing the user to select and process only compatible devices, thereby enhancing usability.
This configuration improves the usability of forms by ensuring only compatible communication devices are displayed and selectable, preventing user confusion and enabling effective processing.
Smart Images

Figure 2025110498000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a program and a control method.
Background Art
[0002] Patent Document 1 describes a technique for cooperatively starting a second program from a first program.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] By the way, as the form of executing processing related to the second program by the first program becomes widespread, there is a demand for improving the usability of this form.
[0005] Therefore, an object of the present invention is to improve the usability of a form in which the first program executes processing related to the second program.
Means for Solving the Problems
[0006] In order to achieve the above object, the program of the present invention is a predetermined program operable on an operating system (OS), and is executed by a computer of a first information processing apparatus having a first operating environment that operates on a first OS serving as a host OS but not on a guest OS. A first display control step of displaying one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the first operating environment on a first screen; a first reception step of receiving a selection of any one of the one or more communication devices displayed on the first screen; and a first processing step of executing processing related to another program different from the predetermined program when the communication device selected from the one or more communication devices displayed on the first screen is a communication device not corresponding to the predetermined program. The computer of the second information processing apparatus having a second operating environment that operates on a second OS serving as the host OS and also on the guest OS is caused to execute a second display control step of displaying one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the second operating environment on a second screen; and a second reception step of receiving a selection of any one of the one or more communication devices displayed on the second screen. Even if the one or more communication devices discovered by the search executed by the first information processing apparatus include a communication device not corresponding to the predetermined program, the one or more communication devices including the communication device not corresponding to the predetermined program are controlled to be displayed on the first screen. When the one or more communication devices discovered by the search executed by the second information processing apparatus include a communication device not corresponding to the predetermined program, the one or more communication devices not including the communication device not corresponding to the predetermined program are controlled to be displayed on the second screen. This is the gist of the invention.
Effect of the Invention
[0007] According to the above configuration, the usability of the form in which the first program executes the processing related to the second program can be improved.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Modes for Carrying Out the Invention
[0009] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiments, not all of these plurality of features are essential to the invention, and the plurality of features may be arbitrarily combined. Further, in the accompanying drawings, the same or similar configurations are denoted by the same reference numerals, and duplicate explanations are omitted.
[0010] Also, regarding the present invention, it should be understood that within the scope not departing from the gist thereof, those obtained by appropriately changing and improving the following-described embodiments based on the ordinary knowledge of those skilled in the art also fall within the scope of the present invention.
[0011] (First Embodiment) An information processing apparatus and a communication apparatus included in the communication system of this embodiment will be described. As the information processing apparatus, a smartphone is exemplified in this embodiment, 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, any apparatus capable of performing wireless communication with the information processing apparatus can be applied. For example, if it is a printer, it can be applied to an inkjet printer, an electrophotographic 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, the communication apparatus is assumed to be a multifunction printer having a printing function, a scanner function, etc.
[0012] <Regarding the hardware configuration of each device> First, the configuration of the information processing apparatus included in the communication system of this embodiment and the communication apparatus capable of communicating with the information processing apparatus will be described with reference to the block diagram of FIG. 1. Also, in this embodiment, the following configuration is described as an example, but the functions are not particularly limited to those shown in this figure.
[0013] The information processing apparatus 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 photographing device 111, etc.
[0014] The input interface 102 is an interface for receiving data input and operation instructions from the user, and is composed of a physical keyboard, buttons, a touch panel, etc. Note that the output interface 107 described later and the input interface 102 may have the same configuration, and the output on the screen and the reception of operations from the user may be performed with the same configuration.
[0015] The CPU 103 is a system control unit that controls the entire information processing apparatus 101.
[0016] 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 the present 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. In the present embodiment, it is assumed that the OS held by the ROM 104 and operating on the information processing apparatus 101 is the Android (registered trademark) OS provided by Google or the Chrome (registered trademark) OS provided by Google. When the OS operating on the information processing apparatus 101 is the Chrome OS, the ROM 104 also holds a virtual Android OS for operating an Android OS application described later on the information processing apparatus 101.
[0017] The RAM 105 is composed of an SRAM (Static Random Access Memory) or the like that requires a backup power supply. Since the data in the RAM 105 is held by a primary battery for data backup (not shown), important data such as program control variables can be stored without being volatile. In addition, a memory area for storing the setting information of the information processing apparatus 101 and the management data of the information processing apparatus 101 is also provided in the RAM 105. Further, the RAM 105 is also used as the main memory and work memory of the CPU 103.
[0018] The external storage device 106 is equipped with an application program (hereinafter referred to as the communication app 400) that has the function of communicating with the communication device 151. Specifically, the communication app 400 is, for example, an app that has a printing function for causing the communication device 151 to execute printing and a scanning function for causing the communication device 151 to execute scanning. However, it is not limited to this form, and it may be an app that has either a printing function or a scanning function, or an app that has other functions. Also, the external storage device 106 is equipped with various programs such as a print information generation program that generates print information interpretable by the communication device 151 and an information transmission / reception control program that transmits and receives information with the communication device 151 connected via the communication unit 109. It stores various information used by these programs. It also stores image data obtained from other information processing devices or the Internet via the communication unit. In this embodiment, the communication app 400 is assumed to be an app for the Android OS.
[0019] The output interface 107 is an interface that controls the operation display unit 108 to perform data display and notification of the state of the information processing device 101.
[0020] The operation display unit 108 is composed of an LED (light-emitting diode), an LCD (liquid crystal display), etc., and performs data display and notification of the state of the information processing device 101. Note that a soft keyboard equipped with keys such as a numeric input key, a mode setting key, a decision key, a cancel key, and a power key may be installed on the operation display unit 108 to receive input from the user via the operation display unit 108.
[0021] 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 be connected to an access point (not shown) within the communication device 151. When the communication unit 109 is connected to the access point within the communication device 151, the information processing device 101 and the communication device 151 can communicate with each other. In the following, the access point may also be expressed as AP. Note that the communication unit 109 may communicate directly with the communication device 151 via wireless communication, or may communicate via an access point 131 existing outside the information processing device 101 and outside the communication device 151. As the wireless communication method, in this embodiment, it is assumed that the communication standards of the IEEE802.11 series are used. Note that the communication standards of the IEEE802.11 series are, that is, Wi-Fi (registered trademark).
[0022] Also, examples of the access point 131 include devices such as a wireless LAN router. In this embodiment, the method in which the information processing device 101 and the communication device 151 are directly connected without passing through an external access point is called a direct connection method. Also, the method in which the information processing device 101 and the communication device 151 are connected via an external access point 131 is called an infrastructure (hereinafter, infra) connection method.
[0023] The short-range wireless communication unit 110 is configured to wirelessly connect to devices such as the communication device 151 at a short range and perform data communication, and communicates using a communication method different from that of the communication unit 109. Examples of the short-range wireless communication method used by the short-range wireless communication unit 110 include Bluetooth (registered trademark) and NFC (Near Field Communication). Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 110 can be connected to the short-range wireless communication unit 157 within the communication device 151.
[0024] The imaging device 111 is a device that converts an image captured by an imaging element into digital data. The digital data is stored in the RAM 105 once. Then, it is converted into a predetermined image format by a program executed by the CPU 154 and stored in the external storage device 106 as image data.
[0025] The ROM 152 stores fixed data such as a control program, data table, and OS program executed by the CPU 154.
[0026] The communication device 151 includes a ROM 152, a RAM 153, a CPU 154, a print engine 155, a communication unit 156, a short-range wireless communication unit 157, an input interface 158, an output interface 159, an operation display unit 160, a scan control unit 161, etc. The communication device 151 can operate in the set connection mode (communication mode) when the connection mode (communication mode) is set.
[0027] The communication unit 156 is a configuration for the communication device 151 to communicate with other devices. In this embodiment, the communication unit 156 communicates according to the communication standard of the IEEE802.11 series. The communication unit 156 has an access point for connecting to devices such as the information processing device 101 as an access point inside the communication device 151. Note that the access point can be connected to the communication unit 109 of the information processing device 101. Note that the communication unit 156 may communicate directly with the information processing device 101 by wireless communication or may communicate via the access point 131. Also, the communication unit 156 may be provided with hardware that functions as an access point, or may operate as an access point by software for causing it to function as an access point. In this embodiment, it is assumed that the communication unit 156 and the short-range wireless communication unit 157 are realized by one wireless chip. That is, in this embodiment, a combo chip corresponding to both the communication function of the IEEE802.11 series communication standard and the communication function by the short-range wireless communication method is used. However, it is not limited to this form, and the communication unit 156 and the short-range wireless communication unit 157 may be realized by separate wireless chips.
[0028] The RAM 153 is composed of a DRAM or the like that requires a backup power supply. Since the data in the RAM 153 is retained by being supplied with a power supply for data backup (not shown), important data such as program control variables can be stored without being volatile. Also, the RAM 153 is used as the main memory and work memory of the CPU 154, and stores a reception buffer for temporarily storing print information received from the information processing apparatus 101 or the like and various types of information.
[0029] The ROM 152 stores fixed data such as control programs executed by the CPU 154, data tables, and OS programs. In the present embodiment, each control program stored in the ROM 152 performs software execution control such as scheduling, task switching, and interrupt processing under the management of the embedded OS stored in the ROM 152. Also, a memory area for storing data that needs to be retained even when the power supply is not provided, such as setting information of the communication device 151 and management data of the communication device 151, is also provided in the ROM 152.
[0030] The CPU 154 is a system control unit and controls the entire communication device 151.
[0031] Based on the information stored in the print engine 155 and the RAM 153 and the print job received from the information processing apparatus 101 or the like, an image is formed on a recording medium such as paper using a recording agent such as ink, and the print result is output. At this time, since the print job transmitted from the information processing apparatus 101 or the like has a large amount of transmitted data and high-speed communication is required, it is received via a communication unit 156 that can communicate at a higher speed than the short-range wireless communication unit 157.
[0032] The short-range wireless communication unit 157 is configured to perform wireless connection with a device such as the information processing device 101 at a short range and execute data communication, and communicates by a communication method different from that of the communication unit 156. Examples of the short-range wireless communication method used by the short-range wireless communication unit 110 include Bluetooth (registered trademark) and NFC. Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 157 is connectable to the short-range wireless communication unit 110.
[0033] The input interface 158 is an interface for receiving data input and operation instructions from the user, and is composed of a physical keyboard, buttons, a touch panel, and the like. Note that the output interface 159 described later and the input interface 158 may have the same configuration, and the output on the screen and the reception of operations from the user may be performed with the same configuration. The output interface 159 is an interface for the operation display unit 160 to perform control for displaying data and notifying the state of the communication device 151.
[0034] The operation display unit 160 is composed of a display unit such as an LED (light-emitting diode) or an LCD (liquid crystal display), and displays data and notifies the state of the communication device 151. Note that a soft keyboard including keys such as a numerical input key, a mode setting key, a determination key, a cancellation key, and a power key may be installed on the operation display unit 160 to receive input from the user via the operation display unit 160.
[0035] The scan control unit 161 includes an image sensor unit (reading unit) that executes scanning of a document placed on the document table or ADF shown in the attached drawings. The image sensor unit includes an image sensor in which elements that irradiate light onto the document, read the reflected light, and perform photoelectric conversion are arranged. The scan control unit 161 acquires image data by A / D (analog / digital) converting the analog electrical signal obtained by reading the document by the image sensor unit. The scan control unit 161 also includes a circuit that performs DMA (direct memory access) transfer in order to store the acquired image data in the RAM 153.
[0036] <Regarding the direct connection method> Direct connection refers to a form in which devices are directly wirelessly connected to each other (that is, in a Peer to Peer manner) without going through an external device such as the access point 131. The communication device 151 can operate in a mode (direct connection mode) for communicating by direct connection as one of the connection modes. In Wi-Fi communication, there are a plurality of modes for communicating by direct connection, such as the software AP mode and the Wi-Fi Direct (registered trademark) mode. Wi-Fi Direct is hereinafter referred to as WFD.
[0037] In the WFD mode, the mode for executing a direct connection is called the WFD mode. WFD is a standard formulated by the Wi-Fi Alliance and is included in the communication standards of the IEEE802.11 series. In the WFD mode, after a device to be a communication partner is searched for based on 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 parent station (parent device), and the client corresponds to the Wi-Fi child station (child device). This role determination corresponds to, for example, GO Negotiation in P2P. In the WFD mode in the state before the role determination, the communication device 151 is in a state that is neither the parent station nor the child station. Specifically, first, between the devices that perform communication, one device issues device discovery information to search for a device to connect in the WFD mode. When the other device to be a communication partner is searched for, information regarding services and functions that can be provided by each other's devices is confirmed between the two. Note that this confirmation of device supply information is optional and not essential. This device supply information confirmation phase corresponds to, for example, Provision Discovery in P2P. Next, by confirming this device supply information with each other, it is determined which will be the P2P client and which will be the P2P group owner as their roles. Next, after the client and the group owner are determined, parameters for performing communication by WFD are exchanged between the two. Based on the exchanged parameters, the remaining wireless connection processing and IP connection processing are performed between the P2P client and the group owner. Note that in the WFD mode, the communication device 151 may always operate as the GO without executing the above-described GO Negotiation. That is, the communication device 151 may operate as the WFD mode which is the Autonomous GO mode. Also, the state where the communication device 151 is operating in the WFD mode means, for example, a state where the connection by WFD is not established but the communication device 151 is operating as the GO, or a state where the connection by WFD is established and the communication device 151 is operating as the GO.
[0038] In the software AP mode, one device (e.g., the information processing apparatus 101) serves as a client that requests various services between devices that communicate with each other (e.g., the information processing apparatus 101 and the communication apparatus 151). Then, the other device realizes the function of an access point in Wi-Fi through software settings. The software AP corresponds to the parent station of Wi-Fi, and the client corresponds to the child station of Wi-Fi. In the software AP mode, the client searches for the device that becomes the software AP based on the device discovery information. When the software AP is discovered, after going through the remaining wireless connection process (establishment of wireless connection, etc.) between the client and the software AP, the IP connection process (assignment of IP address, etc.) is then performed. Note that for the commands and parameters transmitted and received when realizing the wireless connection between the client and the software AP, those defined by the Wi-Fi standard may be used, and the description here is omitted.
[0039] 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 the communication device 151 belongs. The master station is a device that constructs a wireless network and provides parameters used for connecting to the wireless network to slave stations. The parameters used for connecting to the wireless network are, for example, parameters related to the channels used by the master station. The slave station receives the parameters and connects to the wireless network constructed by the master station using the channels used by the master station. In the direct connection mode, since the communication device 151 operates as a master station, the communication device 151 can determine which frequency band and which channel to use for communication in the direct connection mode. In this embodiment, it is assumed that the communication device 151 can use channels corresponding to the 2.4 GHz frequency band and channels corresponding to the 5 GHz frequency band for communication in the direct connection mode. And which frequency band to use (that is, which channel in which frequency band to use) can be arbitrarily set by the user through the settings on the screen displayed by the communication device 151. However, in this embodiment, even if 5 GHz is selected on the screen displayed by the communication device 151, the communication device 151 does not use channels corresponding to the DFS (Dynamic Frequency Selection) band among the 5 GHz frequency bands for communication in the direct connection mode. In other words, the communication device 151 only uses channels corresponding to frequency bands other than the DFS band among the 5 GHz frequency bands for communication in the direct connection mode. When a radar wave in the frequency band corresponding to the channel is detected while using a channel corresponding to the DFS band, the currently used channel must be changed. Such a frequency band in which a channel change may occur due to the detection of a radar wave is called the DFS band. For example, when a wireless chip corresponding to the DFS function is used, channels corresponding to the DFS (Dynamic Frequency Selection) band among the 5 GHz frequency bands may be used for communication in the direct connection mode.
[0040] FIG. 2 is a diagram showing a wireless connection sequence in the WFD mode. In this sequence, the processes executed by each device are realized by the CPU of each device reading various programs stored in a memory such as a ROM provided in each device into the RAM and executing them. Further, this process is assumed to start when a user accepts a predetermined operation for establishing a connection by WFD while a predetermined application for executing the WFD function is started in each device. Note that the predetermined operation for establishing a connection by WFD is, for example, an operation of selecting the "Enable / Disable Direct Connection Mode" button. Note that this operation corresponds to an operation for starting the direct connection mode.
[0041] First, in S201, the information processing apparatus 101 transmits device search information and searches for a device corresponding to the WFD function as a communication partner device.
[0042] Subsequently, in S202, when the received device search information is information transmitted using the same channel as the channel currently used in the direct connection mode, the communication apparatus 151 transmits a device search response, which is a response to the information, to the information processing apparatus 101. As a result, the information processing apparatus 101 discovers the communication apparatus 151 as a device corresponding to the WFD function. Note that after the information processing apparatus 101 discovers the communication apparatus 151, a process of exchanging information regarding services and functions that each device can provide may be performed between the devices.
[0043] Subsequently, at S203, GO Negotiation is executed between the information processing apparatus 101 and the communication apparatus 151. Once the client and the group owner are determined, parameters for communication by WFD are exchanged between the two. Based on the exchanged parameters, the remaining wireless connection process and the IP connection process are performed between the P2P client and the group owner. As described above, by operating the communication apparatus 151 in the Autonomous GO mode, GO Negotiation can be omitted and the communication apparatus 151 can always operate as the GO. Also, when the communication apparatus 151 operates as the GO, the communication apparatus 151 determines the frequency band and channel to be used for WFD communication as the parent station. For this reason, the communication apparatus 151 operating as the GO can select which of the 5 GHz and 2.4 GHz frequency bands to use, and which channel to use among the channels corresponding to the determined frequency band.
[0044] Thereafter, at S204, each device executes the process of establishing a wireless connection by WFD based on the exchanged parameters and using the channel determined by the GO.
[0045] <Regarding the infrastructure connection method> Infrastructure connection is a connection form in which devices for communication (for example, the information processing apparatus 101 and the communication apparatus 151) are connected to an access point (for example, the access point 131) that controls the network, and the devices communicate with each other via the access point. The communication apparatus 151 can also operate in a mode (infrastructure connection mode) for communicating in the infrastructure connection as one of the connection modes.
[0046] In infrastructure connection, each device searches for an access point based on device search information. When an access point is found, after going through the process of the remaining wireless connection (such as establishing a wireless connection) between the device and the access point, then the process of IP connection (such as assigning an IP address) is performed. Note that for the commands and parameters transmitted and received when realizing a wireless connection between a device and an access point, those defined by the Wi-Fi standard can be used, and the description here is omitted.
[0047] In this embodiment, when the communication device 151 operates in the infrastructure connection mode, the access point 131 operates as the master station and the communication device 151 operates as the slave station. That is, in this embodiment, infrastructure connection refers to the connection between the communication device 151 operating as the slave station and the device operating as the master station. 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 via the access point 131 becomes possible. Since the channel used for communication in the infrastructure connection is determined by the access point 131, the communication device 151 executes communication in the infrastructure connection using the channel determined by the access point 131. In this embodiment, it is assumed that the communication device 151 can use a channel corresponding to the 2.4 GHz frequency band and a channel corresponding to the 5 GHz frequency band for communication in the infrastructure connection. Note that the communication device 151 can also use a channel corresponding to the DFS band in the 5 GHz frequency band for communication in the infrastructure connection. Note that for the information processing device 101 to communicate with the communication device 151 via the access point 131, it is necessary for the information processing device 101 to recognize that the communication device 151 belongs to the network formed by the access point 131 and to which the information processing device 101 belongs.
[0048] Also, when the information processing device 101 and the communication device 151 are connected to the access point 131 through an infrastructure connection, it becomes possible to discover the communication device 151 by broadcast executed by the information processing device 101.
[0049] <Regarding the software configuration of the information processing apparatus 101> Next, the software configuration of the information processing apparatus 101 in the present embodiment will be described. FIG. 3(a) is an example of the software configuration of the information processing apparatus 101 when the host OS operating on the information processing apparatus 101 is the Android OS. In this form, an app for the Android OS operates on the Android OS. In this form, it is assumed that the software configuration of the information processing apparatus 101 does not include Chrome OS. An environment in which the OS operating at the lowest layer of the information processing apparatus 101 is the Android OS (not Chrome OS), as in this form, is hereinafter referred to as the first environment (also referred to as the first operating environment or the actual environment). Specifically, the first environment is, for example, an environment in which the host OS is installed on the information processing apparatus 101 but the guest OS is not installed, and the communication app 400 operates on the host OS. Also, for example, specifically, the first environment is, for example, an environment in which both the host OS and the guest OS are installed on the information processing apparatus 101, but the communication app 400 operates on the host OS and operates without going through the guest OS (does not operate on the guest OS). Note that the host OS is the host operating system, and the guest OS is the guest operating system. It is assumed that the information processing apparatus 101 having the first environment and the information processing apparatus 101 having the second environment are separate information processing apparatuses 101. That is, the processing executed based on the fact that the communication app 400 operates in the first environment, which will be described later, is the processing executed in the first information processing apparatus 101 having the first environment. And the processing executed based on the fact that the communication app 400 operates in the second environment is the processing executed in the second information processing apparatus 101 having the second environment. However, for example, by installing and uninstalling the host OS and the guest OS on one information processing apparatus 101, the state in which the first environment is constructed and the state in which the second environment is constructed on one information processing apparatus 101 may be switched.That is, both the processing executed based on the communication application 400 operating in the first environment and the processing executed based on the communication application 400 operating in the second environment may be executed on one information processing apparatus 101 based on the environment constructed in the one information processing apparatus 101.
[0050] FIG. 3(b) is an example of the software configuration of the information processing apparatus 101 when the host OS operating on the information processing apparatus 101 is Chrome OS. In this form, a virtual Android OS, which is a virtual OS, operates on Chrome OS. Then, an app for Android OS operates on the virtual Android OS. As in this form, the OS operating at the bottom layer of the information processing apparatus 101 is Chrome OS, and the environment in which the virtual Android OS operates on the Chrome OS is hereinafter referred to as the second environment (also referred to as the second operating environment or virtual environment). Note that in the present embodiment, the virtual OS is a program for operating an app that does not correspond to the host OS on the host OS, and is a guest OS. Note that the virtual OS may be the entire existing OS such as Android OS, may be a part of the existing OS from which some modules are omitted, or may be a program created separately from the existing OS. Further, the virtual OS is realized, for example, by a virtualization technique such as a Virtual Machine method or a container method.
[0051] Further, the virtual Android OS may be realized by an emulator that delegates functions such as resource management to Chrome OS and provides an execution environment for the Android app. In this case, although the emulator itself is not an OS, it provides the virtual Android OS, that is, the second environment, including Chrome OS.
[0052] The problems that occur when running an app for Android OS in the second environment will be described below. As an example, an example in which the aforementioned communication app 400 is installed and executed in each of the first environment and the second environment will be described. Since the communication app 400 has a function of communicating with a communication device 151 having a printing function and performing printing of an image or the like, it may also be called a printing app. Also, Android may be denoted as Android (registered trademark), and Chrome may be denoted as Chrome. Also, an application program developed in compliance with the Android OS so as to be executed under the Android OS may be called an Android app.
[0053] The communication app 400, which is an Android app of the present embodiment, provides a function of printing an image (hereinafter referred to as photo printing). When the photo printing function is selected, icons of image data stored in a predetermined folder are displayed on the image list screen. Then, the selected image data can be transmitted to the communication device 151 and printed.
[0054] Incidentally, in the present embodiment, it is assumed that there are printers of types supported by the communication app 400 and printers of types not supported by the communication app 400. In other words, the printers of types supported by the communication app 400 are printers of types with which the communication app 400 is compatible. And in other words, the printers of types not supported by the communication app 400 are printers of types with which the communication app 400 is not compatible. Specifically, the printers of types supported by the communication app 400 are all printers of models that execute printing by an inkjet method provided by the vendor that provides the communication app 400 (inkjet printers) and specific parts of printers of models that execute printing by an electrophotographic method provided by the vendor that provides the communication app 400 (electrophotographic printers). Specifically, the printers of types not supported by the communication app 400 are printers other than specific parts of printers of models that execute printing by an electrophotographic method provided by the vendor that provides the communication app 400.
[0055] Printers of types not supported by the communication app 400 may be supported by other apps provided by the vendor that provides the communication app 400. Therefore, when a user desires to send a job to a printer of a type not supported by the communication app 400, it is preferable that the other app be launched. That is, in the screen displayed by the communication app 400, when a printer of a type not supported by the communication app 400 is selected, it is preferable that the communication app 400 execute a process for launching another app.
[0056] However, the other app may not support the second environment and may not be operable in the second environment. That is, in the first environment, the other app can send a job to a printer of a model supported by the other app, but in the second environment, even for a printer of a model supported by the other app, it may not be possible to send a job. As a result, in the second environment, even though the other app cannot send a job to a printer of a model not supported by the communication app 400, if a printer of a model not supported by the communication app 400 is displayed selectably in the communication app 400, there is a risk of causing user confusion.
[0057] Therefore, in the present embodiment, in the second environment, control is performed so that a printer of a model not supported by the communication app 400 is not displayed selectably in the communication app 400. Specifically, in the second environment, control is performed so that a printer of a model not supported by the communication app 400 among the devices discovered by the search executed by the communication app 400 is not displayed on the search result screen. By adopting such a form, only printers that can be destinations for jobs can be displayed on the search result screen even in the second environment, and it is possible to suppress causing user confusion.
[0058] Conventionally, as a method for an information processing apparatus 101 to search for a device to communicate with by a communication application 400, a method called broadcast search is known. Broadcast search is a method of discovering a device by transmitting a broadcast search packet and receiving a response. In broadcast search, specifically, first, the communication application 400 executes a socket API (Socket Application Programming Interface). Thereby, the communication application 400 instructs the OS of the information processing apparatus 101 to transmit a broadcast search packet. Then, the OS transmits a broadcast search packet to an access point (here, access point 131) that forms the network to which the information processing apparatus 101 belongs (is connected). A broadcast search packet is a packet in which a value for broadcast search, which does not specify the destination of the packet, is set in the area where the IP address is stored. In the present embodiment, the content of the broadcast search packet is specified by the communication application 400. That is, a device that can interpret the content of the broadcast search packet is a device corresponding to the communication application 400. And a device corresponding to the communication application 400 is, specifically, for example, a printing device provided by the vendor of the communication application 400. In the present embodiment, it is assumed that the communication device 151 is a device corresponding to the communication application 400. The access point 131 that has received the broadcast search packet transmits the packet to all devices belonging to the network formed by itself. When a device that can interpret the packet receives the packet, the device transmits a response to the information processing apparatus 101, which is the source of the packet, via the access point 131. Then, the OS of the information processing apparatus 101 receives the response and transmits the received response to the communication application 400. Thereby, the information processing apparatus 101 can discover each device that has transmitted a response by the communication application 400 and can execute processing based on the result of the broadcast search.Specifically, the processing based on the search results is, for example, the processing of displaying the search results or the processing of communicating with the devices discovered by the search.
[0059] Also, as a method for the information processing apparatus 101 to search for a device to communicate with by the communication application 400, a method called multicast search is known. Multicast search is a method of discovering devices by transmitting multicast search packets and receiving responses. In multicast search, specifically, first, the communication application 400 instructs the OS of the information processing apparatus 101 to transmit multicast search packets by executing the socket API. Then, the OS transmits a multicast search packet to the access point (here, access point 131) that forms the network to which the information processing apparatus 101 belongs (is connected). A multicast search packet is a packet in which a value for multicast search, which is a specific type of device, is set in the area where the IP address is stored as the destination of the packet. In this embodiment, the content of the multicast search packet is specified by the communication application 400. That is, a device that can interpret the content of the multicast search packet is a device corresponding to the communication application 400. The access point 131 that has received the multicast search packet transmits the packet to the devices of the type specified by the multicast search packet among all the devices belonging to the network formed by itself. When a device that can interpret the packet receives the packet, the device transmits a response to the information processing apparatus 101, which is the source of the packet, via the access point 131. Then, the OS of the information processing apparatus 101 receives the response and transmits the received response to the communication application 400. Thereby, the information processing apparatus 101 can discover each device that has transmitted a response by the communication application 400 and can execute processing based on the results of the multicast search.
[0060] Incidentally, although the communication app 400 is responsible for specifying the content of broadcast search packets and multicast search packets, the transmission of those packets is handled by the OS that operates at the lowest layer in the information processing device 101. Therefore, in an environment where an app for the Android OS operates in the second environment, Chrome OS needs to execute broadcast search and multicast search. However, when an app for the Android OS operates in the second environment, Chrome OS may control, via its own firewall, not to execute broadcast search and multicast search where the app for the Android OS is the source of instruction and the socket API is used. As a result, when the communication app 400 operates in the second environment, there is a problem that the communication app 400 may not be able to execute processing based on the results of broadcast search and multicast search. Note that broadcast search and multicast search where the app for Chrome OS is the source of instruction are not blocked by the Chrome OS firewall. Therefore, if the information processing device 101 is operating an app for Chrome OS on Chrome OS and an instruction to execute broadcast search or multicast search is given from that app via the socket API, Chrome OS can execute broadcast search and multicast search.
[0061] Also, in the present embodiment, the communication app 400 supports device search by WFD. Therefore, if the information processing device 101 in which the communication app 400 operates supports WFD, the communication app 400 can instruct the OS of the information processing device 101 to search for devices by WFD, receive the results of the search, and execute processing based on the results of the search.
[0062] However, devices equipped with Chrome OS or Chrome OS itself do not support WFD, and in many cases, device search by WFD cannot be executed. When the communication application 400 is operating in the second environment, there is an issue that the communication application 400 may not be able to execute processing based on the result of device search by WFD.
[0063] ● Configuration of the Communication Application 400 (Communication Application 400) FIG. 4 shows the configuration of the communication application 400 stored in the ROM 104, external storage device 106, etc. of the information processing device 101. The communication application 400 is an application program having a printing function for causing a communication device 151 functioning as a printer or printing device to print image data, document data, etc. in the information processing device 101. It also has a function of capturing image data, document data, etc. scanned by the communication device 151 into the information processing device 101.
[0064] The communication application 400 includes an operation reception unit 401, an operation environment determination unit 402, a display control unit 403, a communication device search unit 404, a non - compliant communication device processing unit 405, a communication device registration unit 406, and a printing control unit 407. Each program module is executed by the CPU 103 to realize its respective function. In the present embodiment, the communication application 400 receives an operation performed on the operation display unit 108 by the operation reception unit 401. Also, the operation environment determination unit 402 determines whether the current operation environment of the communication application 400 is the first environment provided by the Android OS or the second environment provided by the virtual Android OS constructed on top of Chrome OS. This determination can be made based on the response obtained by querying the OS or by referring to a predetermined storage location. The operation environment determination unit 402 makes a determination, for example, at S502 in FIG. 5 described later.
[0065] The display control unit 403 controls the display on the operation display unit 108 by the communication application 400. In particular, it displays the list of the searched printers (communication devices 151) on the operation display unit 108 of the information processing apparatus 101 as a search result screen. Also, when the processing by the non - compliant communication device processing unit 405 described later involves a display, it also controls that display.
[0066] The communication device search unit 404 searches for (or explores) printers (communication devices 151) that can be connected to the information processing apparatus 101 and can be used by the communication application 400 in the procedure described with reference to FIG. 5 later. The communication device search unit 404 functions as the information processing apparatus 101 in the procedure of FIG. 2, for example, and searches for the communication device 151.
[0067] The communication device registration unit 406 registers the selected communication device 151 as a printer to be used by the communication application 400 among the printers discovered by the search. The registered printers can be used thereafter without further searching. The communication device registration unit 406 performs the process of S707 in FIG. 7 described later, for example.
[0068] The print control unit 407 transmits the selected print - target data to the selected communication device 151 to cause printing. The print - target data may be, for example, document data, image data, etc. saved when the communication application 400 is launched. Or it may be data acquired from a cloud server, a communication device 151, etc. Or it may be data acquired from other data sources.
[0069] Note that in the following, the processes described as the processes executed by the configuration shown in FIG. 4 and the configuration within the communication application 400 are, precisely speaking, processes realized by the CPU 103 reading the communication application 400 stored in the ROM 104 or the like into the RAM 105 and executing it. For printing, the print control unit 407 generates a print job and transmits it to the communication device 151 (i.e., the printer). The communication device 151 executes the received print job, and printing is performed. Also, in the present embodiment, it is assumed that the devices that can be set as the job transmission destination by the communication application 400 are the devices registered in the communication application 400. In other words, it is assumed that the communication application 400 cannot transmit a job unless a device is registered in the communication application 400.
[0070] <Regarding the search for devices by the communication application 400> FIG. 5 shows a flowchart of the search for devices by the communication application 400 in the present embodiment. Note that this flowchart is realized by the CPU 103 reading various programs stored in a memory such as the external storage device 106 into the RAM 105 and executing them. Specifically, this flowchart is realized by the execution of the communication application 400. In particular, it corresponds to the processing by the communication device search unit 404. Also, this processing is assumed to start when an operation that triggers the search for a device is performed by the user on the screen displayed by the communication application 400. Note that it is not limited to this form. For example, this processing may start based on the activation of the communication application 400.
[0071] In S501, the CPU 103 obtains environment information regarding the environment in which the communication application 400 operates by executing the API of the Android OS from the communication application 400. When the environment in which the communication application 400 operates is the first environment, information corresponding to the first environment is obtained as the environment information. On the other hand, when the environment in which the communication application 400 operates is the second environment, the above-mentioned API to be executed is the API of the virtual Android OS, and information corresponding to the second environment is obtained as the environment information.
[0072] In S502, the CPU 103 determines whether the environment in which the communication application 400 is operating is the first environment based on the environment information acquired in S501. If the result of this determination is YES, the CPU 103 proceeds to S503. If the result of this determination is NO, the CPU 103 proceeds to S508.
[0073] In S503, the CPU 103 determines the content of the broadcast search packet by the communication application 400. Then, the CPU 103 instructs the Android OS through the communication application 400 to transmit the packet with the determined content by executing the socket API from the communication application 400. That is, the CPU 103 causes the communication application 400 to execute the process for broadcast search. Thereby, the CPU 103 executes the transmission of the broadcast search packet by the Android OS to the access point 131. Also, in the present embodiment, it is assumed that the broadcast search packet is configured such that only the device corresponding to the communication application 400 can respond to the packet. Also, in the present embodiment, it is assumed that a plurality of types of broadcast search packets are broadcast. Specifically, the plurality of types of broadcast search packets include packets configured such that only an inkjet printer can respond, and packets configured such that only a laser printer can respond. Note that it may include packets configured such that only an old model printer among inkjet printers can respond, or packets configured such that only a new model printer among inkjet printers can respond. Specifically, for example, the CPU 103 controls to vary the search target device by varying the port number set in the broadcast search packet. Thereby, only the desired device can be discovered in the broadcast search. And it is possible to determine which device is discovered by the broadcast search (whether it is an inkjet printer, a laser printer, etc.).
[0074] In S504, the CPU 103 acquires, from the Android OS, a response to the broadcast search packet by the communication application 400. Thereby, the device that is the source of the response is specified as the device discovered by the broadcast. The response includes whether the inquiry was successful, the type of device (such as a printer), and the model name. Further, the response may include the IP address of the communication device, the mac_address, and the like.
[0075] In the above description, the forms in which the processes for broadcast search are executed in S503 and S504 have been described, but a form in which the processes for multicast search are executed may also be used. That is, in S503, the CPU 103 may determine the content of the multicast search packet by the communication application 400, and instruct the Android OS by the communication application 400 to transmit the packet of the determined content by executing the socket API from the communication application 400. Then, in S504, the CPU 103 may acquire, from the Android OS, a response to the multicast search packet by the communication application 400.
[0076] In S505, the CPU 103 instructs the Android OS by the communication application 400 to execute the search by WFD (that is, to transmit the device discovery information by WFD) by executing the API for WFD. Thereby, the CPU 103 executes the transmission of the device discovery information by the Android OS. Then, the Android OS receives the device discovery response from the WFD-compatible devices around the information processing apparatus 101. This process corresponds to the processes of S201 and S202 in FIG. 2.
[0077] In S506, the CPU 103 acquires the device search response from the Android OS via the communication application 400. Thereby, the device that is the transmission source of the device search response is specified as the device discovered by the search using WFD. At this time, among the devices that are the transmission sources of the device search response, only the devices corresponding to the printing service may be specified as the devices discovered by the search using WFD. Which device corresponds to which service can be confirmed by communication between the device that is the transmission source of the device search response and the information processing device 101.
[0078] In S507 executed after S506, the CPU 103 causes the communication application 400 to display a search result screen that is a screen showing a list of one or more devices discovered by the broadcast search and one or more devices discovered by the search using WFD. Each displayed device is based on the information acquired in S504 and S506. Alternatively, when branching from S502 to S508, each displayed device is the information acquired in S509 described later and the information acquired in S511, and is based on the information indicating the devices extracted in S512. In the search result screen, the above list may be displayed so that one or more devices discovered by the broadcast search and one or more devices discovered by the search using WFD can be distinguished. Specifically, for example, in the search result screen, the display items corresponding to the devices discovered by the broadcast search may be attached with an icon corresponding to the fact that they are the devices discovered by the broadcast search. Similarly, in the search result screen, the display items corresponding to the devices discovered by the search using WFD may be attached with an icon corresponding to the fact that they are the devices discovered by WFD. Also, in the search result screen, the above list may be displayed so that the inkjet printer and the electrophotographic printer can be distinguished. Then, the CPU 103 accepts from the user via the communication application 400 the selection of any one of the devices displayed on the search result screen.
[0079] Fig. 6 shows a display example in S507. On the operation display unit 108 of the information processing apparatus 101, a screen 600 which is a search result screen is displayed. On the screen 600, "Printer Registration" is displayed as the title. Further, on this screen 600, a list of printers (communication devices) discovered by the search shown in Fig. 5 is displayed. Items 601 to 604 correspond to the respective discovered printers, and the identification information of the printer corresponding to each item is displayed in each item. The identification information displayed here is, for example, the model name, but it may be other information such as the SSID or the MAC address. Also, as described above, the inkjet printer and the electrophotographic printer are displayed with different icons so that they can be distinguished. Note that this distinction may be specified based on, for example, the model name received as the search response. The user can select by operating such as tapping the column of the desired printer from this list of printers. Note that, as described above, depending on whether the operating environment of the communication application 400 is the first environment or the second environment, the method of the search to be executed and the printer specified as the display target on the search result screen from the discovered printers are different. Therefore, the printers displayed on the screen 600 differ depending on whether the operating environment of the communication application 400 is the first environment or the second environment.
[0080] If the determination result of S502 is NO, that is, when the current operating environment is the second environment, the process branches to S508. In S508, the CPU 103 uses an API different from the socket API to execute a process for searching for devices on the network to which the information processing apparatus 101 belongs by the communication application 400. Specifically, the API used here is the Network Service Discovery (NSD) API. When this API is executed from the communication application 400, a search called NSD is executed. NSD is a multicast search executed using the DNS based service discovery protocol. Also, NSD is a search that can be executed from the communication application 400 even in the second environment. Specifically, in this process, when this API is executed from the communication application 400, the virtual Android OS instructs Chrome OS to execute NSD. Then, when Chrome OS executes NSD, devices on the network to which the information processing apparatus 101 belongs and devices corresponding to NSD are discovered. Note that in the execution of the NSD API, the communication application 400 can specify which service the device corresponding to is searched for by NSD. Note that the service is specified, for example, by specifying a protocol. Therefore, in this embodiment, the communication application 400 specifies to search for a device corresponding to a printing service (that is, a printer) by specifying the Internet Printing Protocol (IPP). Note that the communication application 400 specifies an IP address as the destination device of the packet in the search instruction using the socket API, whereas no IP address is specified in the search instruction using the NSD API.
[0081] Next, in S509, the CPU 103 obtains, as a result of the search by NSD, information about the discovered device by the communication application 400. Specifically, the information obtained here is, for example, the IP address, port number, service name, etc. of the discovered device.
[0082] Next, in S510, the CPU 103 executes a process for performing a unicast search on one or more devices discovered by NSD. In this embodiment, it is assumed that a process for performing a unicast search on all devices discovered by NSD is executed, but it is not limited to this form. A process for performing a unicast search may be executed on some of the devices discovered by NSD. Unicast search is a method of searching on the network to which the information processing device 101 belongs by specifying the device to be searched by its IP address. Since the IP addresses of the devices discovered by NSD are acquired by the communication application 400 as the search results of NSD, it is possible to search again for the devices discovered by NSD by unicast search. Note that the broadcast search targets the range within the subnet to which the information processing device 101 belongs. On the other hand, the unicast search targets not only the subnet to which the information processing device 101 belongs but also the ranges within other subnets connected to the subnet. Note that a subnet refers to a unit of a network composed of one access point. Note that unicast search is a search that can also be executed according to an instruction from the communication application 400 in the second environment. Specifically, in this process, the CPU 103 determines the content of the unicast search packet by the communication application 400. Then, the CPU 103 instructs the virtual Android OS via the communication application 400 to transmit a packet with the determined content by executing the socket API. Note that the unicast search packet is a packet in which a value for unicast search, which corresponds to specifying the destination of the packet (in other words, the destination of the device to be searched), is set in the area where the IP address is stored. Also, in this embodiment, it is assumed that the unicast search packet is configured such that only the device corresponding to the communication application 400 can respond to the packet. Also, in this embodiment, it is assumed that a plurality of types of unicast search packets are transmitted to one device.Specifically, the multiple types of unicast search packets include packets configured to be responsive only to inkjet printers and packets configured to be responsive only to electrophotographic printers. Note that packets configured to be responsive only to old-type printers among inkjet printers and packets configured to be responsive only to new-type printers among inkjet printers may also be included. Thereby, in unicast search, only a desired device can be discovered. And it is possible to determine which device (whether it is an inkjet printer, an electrophotographic printer, etc.) the device discovered by unicast search is. In the present embodiment, the content of the unicast search packet is the same as the content of the broadcast search packet, except for the IP address indicating the destination of the packet. Then, the virtual Android OS instructs Chrome OS to execute unicast search. And Chrome OS executes unicast search by transmitting a unicast search packet. Thereby, a device on the network to which the information processing apparatus 101 belongs is discovered by receiving a response from the device corresponding to the IP address specified in the unicast search packet.
[0083] Next, in S511, the CPU 103 obtains, as a result of the unicast search, information on the device discovered by the unicast search by the communication application 400. Specifically, the information obtained here is, for example, the IP address, MAC address, model name (machine type name), serial number, etc. of the discovered device. By executing the unicast search after NSD, it is possible to identify the device corresponding to the communication application 400 among the devices discovered by NSD. Also, information that could not be obtained in NSD can be obtained.
[0084] Next, in S512, the CPU 103 extracts (identifies) a specific type of device from the results of the unicast search obtained in S511. In the present embodiment, the specific type of device is the type of printer supported by the communication application 400 described above. Therefore, printers not extracted in this process are printers of types not supported by the communication application 400 among the devices discovered by the unicast search. Note that the present invention is not limited to this form, and the type of printer supported by the communication application 400 may be a part of the printers of models that execute printing by an inkjet method provided by the vendor that provides the communication application 400. The communication application 400 holds in advance identification information for identifying the type of printer supported by the communication application 400, and executes this determination based on that information. Specifically, the identification information is, for example, the model name.
[0085] Then, in S507 executed after S512, the CPU 103 causes the communication application 400 to display a search result screen, which is a screen showing the device list extracted in S512 among the devices discovered by the unicast search. That is, even if a specific type of device is discovered by the unicast search, the search result screen that does not include the specific type of device is controlled to be displayed. By adopting such a form, it is possible to suppress the selection of a device that cannot (or is difficult to) be registered as a job transmission destination by an application corresponding to the second environment in the second environment. In the search result screen, the above list may be displayed so that the inkjet printer and the electrophotographic printer can be distinguished. Then, the CPU 103 accepts from the user, via the communication application 400, the selection of any one of the devices displayed on the search result screen. If the result of the unicast search obtained in S511 includes a printer of a type not supported by the communication application 400, a message indicating that a printer of a type not supported by the communication application 400 has been discovered may be displayed by the communication application 400 on the search result screen or the like. Also, if the printing function provided by Chrome OS is used, there is a possibility that a job can be transmitted in the second environment even for a printer of a type not supported by the communication application 400. Therefore, for example, a message guiding the user that there is a possibility of causing a printer of a type not supported by the communication application 400 to execute printing if the printing function provided by Chrome OS is used may be displayed by the communication application 400 on the search result screen or the like. The printing function provided by Chrome OS is realized by a printing application program standard for the host OS (here, Chrome OS). The printing application program standard for the host OS is a program that is pre-installed in the information processing apparatus 101 from the time of shipment of the information processing apparatus 101, like the host OS. In other words, the printing application program standard for the host OS is an application that is not installed by a store application that is an application for installing various applications in the information processing apparatus 101 via the Internet.The printing function provided by Chrome OS is a function realized using the IPP (Internet Printing Protocol). Specifically, for example, in the printing function provided by Chrome OS, the search for printers to which print jobs are to be sent and the sending of print jobs are executed by IPP. Therefore, the print application program standard for the host OS is a program that executes the above processing using IPP.
[0086] In this way, according to the procedure of FIG. 5, based on the environment in which the communication application 400 operates, it is switched whether to execute a broadcast search or not. Specifically, based on the fact that the environment in which the communication application 400 operates is the first environment, a broadcast search is executed, and based on the fact that the environment in which the communication application 400 operates is the second environment, a broadcast search is not executed and other processing is executed. Specifically, other processing is, for example, a search by NSD or a unicast search. Also, based on the environment in which the communication application 400 operates, it is switched whether to display all printers discovered by the search on the search result screen or only the types of printers supported by the communication application 400 among the printers discovered by the search on the search result screen. Thereby, the communication application 400 can execute appropriate processing based on the environment in which the communication application 400 operates.
[0087] Note that the communication application 400 determines which of the broadcast search, multicast search, and unicast search to instruct by the IP address specified at the time of executing the socket API. That is, which search to instruct is determined by what content address is specified as the IP address included in the packet sent for the search. Therefore, in other words, in this embodiment, based on the environment in which the communication application 400 operates, the content of the IP address specified in the packet used for the search is switched.
[0088] The processing executed based on the fact that the environment in which the communication application 400 operates is the second environment is not limited to the form described above. For example, the processing may be to display a notification screen for notifying the user that broadcast search cannot be executed. And in the form in which the notification screen is displayed, search by NSD or unicast search may not be executed. Further, the notification screen may be, for example, a screen for notifying the user that the environment in which the communication application 400 operates is the second environment, or a screen for notifying the user that the communication device cannot be registered in the communication application 400. Furthermore, it may be a screen for prompting the user to operate the communication application 400 in the first environment.
[0089] Also, the search method is not limited to the method described above. For example, the order in which the processing for broadcast search (S503, S504) and the processing for WFD search (S505, S506) are executed may be reversed, or each search may be executed in parallel. Also, instead of displaying a search result screen after each search is completed, each time a device is discovered by each search, the discovered device may be added to the search result screen.
[0090] In addition, the communication application 400 may separately receive an operation from the user for instructing execution of a broadcast search and an operation for instructing execution of a WFD search. When an operation for instructing execution of a broadcast search is performed, the flowchart of FIG. 5 may be executed without performing processing for a WFD search. Similarly, when an operation for instructing execution of a WFD search is performed, the flowchart of FIG. 5 may be executed without performing processing for a broadcast search. Also, the communication application 400 may be an application that supports only one of a broadcast search and a WFD search. That is, when it is an application that supports only a broadcast search, the flowchart of FIG. 5 may be executed without performing processing for a WFD search. Similarly, when it is an application that supports only a WFD search, the flowchart of FIG. 5 may be executed without performing processing for a broadcast search.
[0091] Also, in the above description, the form in which the processing for unicast search (S510, S511) is executed after the processing for NSD (S508, S509) has been described, but it is not limited to this form. For example, in the flowchart of FIG. 5, the processing for unicast search may not be executed, and on the search result screen, printers of the types supported by the communication application 400 among the devices discovered by NSD may be displayed. At this time, the printers of the types supported by the communication application 400 may be in a form that stores information corresponding to the fact that they are printers of the types supported by the communication application 400 as a response to NSD. As a result, only the devices specified and extracted as printers of the types supported by the communication application 400 among the devices discovered by NSD may be displayed on the search result screen.
[0092] ● Registration process of printer (communication device) Fig. 7 shows an example of a process of registering a printer selected from one or more printers displayed on the screen of Fig. 6. As described above, the registered printer does not need to be searched each time it is used, and printing can be performed using the registered printer. However, this is of course on the condition that the information processing apparatus 101 can be connected to the printer that is the communication apparatus 151. If it cannot be connected, a new printer will be searched for, or an attempt will be made to use another registered printer.
[0093] In Fig. 7, the CPU 103 accepts the selection of a printer on the search result screen displayed in S507 (S701). Then, the CPU 103 determines whether the model of the printer selected in S701 is a model that executes printing by the electrophotographic method, that is, whether it is an EP machine (S702). An EP machine is, in other words, an electrophotographic printer. For example, a printer of a model that executes printing by the inkjet (IJ) method is determined not to be an EP machine. A printer of a model that executes printing by the inkjet (IJ) method is, in other words, an IJ machine, an inkjet printer. This determination may be based on information indicating the model, such as the model name included in the response received from the printer as the search result. In that case, the communication application 400 may hold the model name and information indicating whether it is an EP machine, and make a determination with reference to it.
[0094] In S702, if it is determined that the selected printer model is a model that executes printing by an electrophotographic method, the CPU 103 determines whether the communication application 400 supports (i.e., corresponds to) the printer selected in S702 (S703). In the present embodiment, the printers supported by the communication application 400 include all the printers of the models that execute printing by an inkjet method provided by the vendor that provides the communication application 400, and a part of the printers of the models that execute printing by an electrophotographic method provided by the vendor that provides the communication application 400. Note that the present invention is not limited to this form, and the printers supported by the communication application 400 may be a part of the printers of the models that execute printing by an inkjet method provided by the vendor that provides the communication application 400. In that form, the determination in S702 may be omitted, and the process may proceed to S703 after S701. Note that the communication application 400 holds in advance information such as the model name of the printers supported by the communication application 400, and executes this determination based on that information. Note that in the present embodiment, as described above, in the second environment, printers not supported by the communication application 400 are controlled not to be displayed on the search result screen. Therefore, in the second environment, the determination result of S703 never becomes NO. That is, in the second environment, the processes of S708 to S712 described later are not executed.
[0095] When the determination result of S702 is NO or when the determination result of S703 is YES, the CPU 103 determines whether the selected printer was discovered by WFD (S704). The printer discovered by WFD is the printer discovered by S505 and S506 in FIG. 5. The printer discovered by a method other than WFD is the printer discovered by S503, S504, S508 to S511 in FIG. 5. When it is determined that the selected printer was discovered by WFD, the CPU 103 establishes a connection between the selected printer and the information processing apparatus 101 by WFD (S705). When it is not determined that the selected printer was discovered by WFD, or after the selected printer and the information processing apparatus 101 are connected by WFD, the CPU 103 acquires capability information (ability information) from the selected printer (S706). The acquisition of the capability information is performed via the connection between the selected printer and the information processing apparatus 101. That is, if it is determined YES in S704, the acquisition of the capability information is performed via the WFD connection between the selected printer and the information processing apparatus 101. And if it is determined NO in S704, the acquisition of the capability information is performed, for example, via the infrastructure connection between the selected printer and the information processing apparatus 101. That is, the acquisition of the capability information is performed via the access point to which the information processing apparatus 101 is connected. Thereafter, the CPU 103 registers the selected printer (communication device), which is the printer corresponding to the acquired information, in the communication application 400 by storing the acquired information in the communication application 400 (S707). The information to be registered may be, for example, the name, the connection destination address, the acquired capability information, and the like. By registering the printer in the communication application 400, the communication application 400 can transmit various jobs such as print jobs and scan jobs to the registered printer.
[0096] When the determination result of S703 is NO, the CPU 103 determines whether an app (program) other than the communication app 400, which corresponds to the selected printer, is installed (S708). In the present embodiment, among the Android apps executed in the first environment, there is an app that is not supported by the communication app 400 but supports a printer provided by the same vendor as the vendor of the communication app 400. This other app is an app provided by the same vendor as the vendor of the communication app 400. Also, the other app can register with itself a printer that is provided by the same vendor as the vendor of the communication app 400 but is not supported by the communication app 400. That is, the other printer can send a print job or a scan job to a printer that is provided by the same vendor as the vendor of the communication app 400 but is not supported by the communication app 400. Therefore, the communication app 400 determines whether another app corresponding to the selected printer is installed even if it does not support the selected printer itself.
[0097] If the corresponding other app is installed, the CPU 103 displays a screen 810 including a message to that effect (S709). FIG. 8(A) shows an example of the screen 810 including the message 811. This message 811 includes that the currently executed communication app 400 does not support (correspond to) the selected printer, and a button for accepting a selection of whether to start the corresponding other app. When the user selects "Yes", that is, to start the other app (that is, the other program), the CPU 103 starts that app (S710). After that, since the operation screen of the started app is displayed, the user can operate it to print an image or the like to be printed. In the case where this process is executed, the communication app 400 may end the process without registering the selected printer.
[0098] On one hand S710, when it is determined that the app corresponding to the selected printer is not installed, the CPU 103 displays a screen 820 including a message to that effect (S711). An example of the screen 820 including the message 821 is shown in FIG. 8(B). This message 821 includes that the currently executed communication app 400 does not correspond to (does not support) the selected printer, and a button for receiving a selection of whether to install another corresponding app. To install an app, it is necessary to download it from the store app that provides the app. Therefore, the message also includes confirmation of moving to that store app. Moving to the store app means connecting to the store app known in advance by the communication app 400 and displaying its screen. When the user selects "Yes", that is, selects to install another app, the CPU 103 starts the store app of that app and displays the screen of the store app (S712). After that, the user performs an operation of downloading and installing the corresponding app in the store app. After installation, the CPU 103 may start the installed app as it is. In that case, since the operation screen of the started app is displayed, the user may operate it to print an image to be printed or the like. In the case where this process is executed, the communication app 400 may end the process without registering the selected printer.
[0099] As described above, according to this embodiment, the printer can be searched by a method (or protocol) according to the operating environments of the first environment and the second environment respectively. Thereby, the printer that can be connected to the information processing apparatus executing the communication app 400 can be searched regardless of the operating environment of the communication app 400. Also, the search result screen can be displayed by a display method according to the operating environments of the first environment and the second environment respectively.
[0100] [Other Embodiments] The present invention can also be realized by supplying a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and causing one or more processors in a computer of the system or apparatus to read and execute the program. It can also be realized by a circuit (e.g., ASIC) that implements one or more functions.
[0101] ● Summary of Embodiments Summarizing the above embodiments, the following inventions are included.
[0102] (Item 1) A predetermined program operable on an operating system (OS), on a computer of a first information processing apparatus having a first operating environment that operates on a first OS serving as a host OS but not on a guest OS, a first display control step of displaying one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the first operating environment on a first screen; a first reception step of receiving a selection of any one of the one or more communication devices displayed on the first screen; a first processing step of executing processing related to another program different from the predetermined program when the communication device selected from the one or more communication devices displayed on the first screen is a communication device not corresponding to the predetermined program; to cause execution, on a computer of a second information processing apparatus having a second operating environment that operates on a second OS serving as the host OS and on the guest OS, a second display control step of displaying one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the second operating environment on a second screen; a second reception step of receiving a selection of any one of the one or more communication devices displayed on the second screen; to cause execution, Even if the one or more communication devices discovered by the search executed by the first information processing device include a communication device that does not support the predetermined program, the one or more communication devices including the communication device that does not support the predetermined program are controlled to be displayed on the first screen. When the one or more communication devices discovered by the search executed by the second information processing device include a communication device that does not support the predetermined program, the one or more communication devices that do not include the communication device that does not support the predetermined program are controlled to be displayed on the second screen. A program characterized by the above.
[0103] (Item 2) On the computer of the first information processing device, When the communication device selected from the one or more communication devices displayed on the first screen is a communication device that supports the predetermined program, a first registration step of registering the communication device selected from the one or more communication devices displayed on the first screen in the predetermined program; A first transmission step of transmitting data to the communication device registered in the predetermined program; To execute, On the computer of the second information processing device, To execute a second registration step of registering the communication device selected from the one or more communication devices displayed on the second screen in the predetermined program, A second transmission step of transmitting data to the communication device registered in the predetermined program; To execute, The program according to item 1, characterized by the above.
[0104] (Item 3) The data transmitted to the communication device registered in the predetermined program is a print job for causing the communication device registered in the predetermined program to execute printing or a scan job for causing the communication device registered in the predetermined program to execute scanning. The program according to item 2, characterized in that...
[0105] (Item 4) The processing related to the other program is the processing for starting the other program. The program according to any one of items 1 to 3, characterized in that...
[0106] (Item 5) When the other program is not installed in the first information processing device, the processing related to the other program is the processing for starting a store application program for installing the other program. The program according to any one of items 1 to 4, characterized in that...
[0107] (Item 6) The other program is a program capable of transmitting data to a communication device that does not correspond to the predetermined program. The program according to any one of items 1 to 5, characterized in that...
[0108] (Item 7) The other program is a program provided by a vendor that provides the predetermined program. The program according to any one of items 1 to 6, characterized in that...
[0109] (Item 8) The communication device corresponding to the predetermined program is an inkjet printer that performs printing by an inkjet method. The program according to any one of items 1 to 7, characterized in that...
[0110] (Item 9) The communication device corresponding to the predetermined program is some models of electrophotographic printers that perform printing by an electrophotographic method. The program according to any one of items 1 to 8, characterized in that...
[0111] (Item 10) The communication devices that do not correspond to the predetermined program are some models of electrophotographic printers that perform printing by the electrophotographic method. The program according to any one of Items 1 to 9, characterized in that.
[0112] (Item 11) The search executed according to the instruction of the predetermined program operating in the first operating environment is different from the search executed according to the instruction of the predetermined program operating in the second operating environment. The program according to any one of Items 1 to 10, characterized in that.
[0113] (Item 12) The search executed according to the instruction of the predetermined program operating in the first operating environment includes a broadcast search or a multicast search executed by a socket API (Application Programming Interface). The program according to any one of Items 1 to 11, characterized in that.
[0114] (Item 13) The search executed according to the instruction of the predetermined program operating in the first operating environment includes a search by Wi-Fi Direct (registered trademark). The program according to any one of Items 1 to 12, characterized in that.
[0115] (Item 14) The search executed according to the instruction of the predetermined program operating in the second operating environment includes a search executed by an API different from the socket API (Application Programming Interface). The program according to any one of Items 1 to 13, characterized in that.
[0116] (Item 15) An API different from the socket API is a network service discovery API. The program according to item 14, characterized in that.
[0117] (Item 16) The search executed according to the instruction of the predetermined program operating in the second operating environment includes a unicast search executed by a socket API (Application Programming Interface). The program according to any one of items 1 to 15, characterized in that.
[0118] (Item 17) In the first screen and the second screen, the one or more communication devices are displayed so that an inkjet printer that performs printing by an inkjet method and an electrophotographic printer that performs printing by an electrophotographic method can be distinguished. The program according to any one of items 1 to 16, characterized in that.
[0119] (Item 18) In the first operating environment, the first OS that is the host OS is an Android (registered trademark) OS, and the guest OS does not operate on the host OS. The program according to any one of items 1 to 17, characterized in that in the second operating environment, the second OS that is the host OS is a Chrome (registered trademark) OS, and the guest OS is a virtual Android (registered trademark) OS.
[0120] (Item 19) The environment in which the predetermined program is operating is determined by the predetermined program as being the first operating environment or the second operating environment. Even if the one or more communication devices discovered by the search executed by the first information processing apparatus include a communication device that does not correspond to the predetermined program, the environment in which the predetermined program is operating is determined to be the first operating environment, and control is performed so that the one or more communication devices including the communication device that does not correspond to the predetermined program are displayed on the first screen. When the one or more communication devices discovered by the search executed by the second information processing apparatus include a communication device that does not correspond to the predetermined program, control is performed based on the fact that the environment in which the predetermined program is operating is determined to be the second operating environment, so that the one or more communication devices that do not include the communication device that does not correspond to the predetermined program are displayed on the second screen. The program according to any one of items 1 to 18, characterized in that.
[0121] (Item 20) The program according to any one of items 1 to 19, characterized in that the predetermined program is an application program for the Android (registered trademark) OS.
[0122] (Item 21) A control method for a first information processing apparatus having a predetermined program operable on an operating system (OS) and having a first operating environment that operates on a first OS but not on a guest OS as a host OS, and a second information processing apparatus having the predetermined program and having a second operating environment that is on the second OS operating as the host OS and on the guest OS, A first display control step of displaying, on a first screen, one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the first operating environment, in the first information processing apparatus; A first reception step of receiving, in the first information processing apparatus, a selection of any one of the one or more communication devices displayed on the first screen; When the communication device selected from the one or more communication devices displayed on the first screen is a communication device that does not correspond to the predetermined program, a first processing step of executing, in the first information processing device, processing related to another program different from the predetermined program; A second display control step of displaying, on a second screen in the second information processing device, one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the second operating environment; A second reception step of receiving, in the second information processing device, a selection of any one of the one or more communication devices displayed on the second screen; to execute, Even if the one or more communication devices discovered by the search executed by the first information processing device include a communication device that does not correspond to the predetermined program, control is performed so that the one or more communication devices including the communication device that does not correspond to the predetermined program are displayed on the first screen; When the one or more communication devices discovered by the search executed by the second information processing device include a communication device that does not correspond to the predetermined program, control is performed so that the one or more communication devices that do not include the communication device that does not correspond to the predetermined program are displayed on the second screen; A control method characterized by the above-mentioned.
[0123] The present invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the spirit and scope of the invention. Therefore, claims are attached to disclose the scope of the invention.
Explanation of Signs
[0124] 101 Information processing device 151 Printing device 400 Communication application
Claims
1. A predetermined program operable on an operating system (OS), on a computer of a first information processing device having a first operating environment that operates as a host OS but not as a guest OS, a first display control step of displaying, on a first screen, one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the first operating environment; a first reception step of receiving a selection of any one of the one or more communication devices displayed on the first screen; a first processing step of executing processing related to another program different from the predetermined program when the communication device selected from the one or more communication devices displayed on the first screen is a communication device not corresponding to the predetermined program; to cause to execute, on a computer of a second information processing device having a second operating environment that operates on the second OS operating as the host OS and also on the guest OS, a second display control step of displaying, on a second screen, one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the second operating environment; a second reception step of receiving a selection of any one of the one or more communication devices displayed on the second screen; to cause to execute, even if the one or more communication devices discovered by the search executed by the first information processing device include a communication device not corresponding to the predetermined program, the one or more communication devices including the communication device not corresponding to the predetermined program are controlled to be displayed on the first screen, when the one or more communication devices discovered by the search executed by the second information processing device include a communication device not corresponding to the predetermined program, the one or more communication devices not including the communication device not corresponding to the predetermined program are controlled to be displayed on the second screen, A program characterized by the above.
2. On the computer of the first information processing device, when the communication device selected from the one or more communication devices displayed on the first screen is a communication device corresponding to the predetermined program, a first registration step of registering the communication device selected from the one or more communication devices displayed on the first screen in the predetermined program; A first transmission step of transmitting data to a communication device registered in the predetermined program; to cause execution of; on a computer of the second information processing device, a second registration step of registering a communication device selected from the one or more communication devices displayed on the second screen in the predetermined program; a second transmission step of transmitting data to a communication device registered in the predetermined program; to cause execution of, The program according to claim 1, characterized in that.
3. The data transmitted to the communication device registered in the predetermined program is a print job for causing the communication device registered in the predetermined program to execute printing or a scan job for causing the communication device registered in the predetermined program to execute scanning. The program according to claim 2, characterized in that.
4. The processing related to the other program is processing for starting the other program. The program according to claim 1, characterized in that.
5. When the other program is not installed in the first information processing device, the processing related to the other program is processing for starting a store application program for installing the other program. The program according to claim 1, characterized in that.
6. The other program is a program capable of transmitting data to a communication device not corresponding to the predetermined program. The program according to claim 1, characterized in that.
7. The other program is a program provided by a vendor providing the predetermined program. The program according to claim 1, characterized in that.
8. The communication device corresponding to the predetermined program is an inkjet printer that performs printing by an inkjet method. The program according to claim 1, characterized in that.
9. The communication device corresponding to the predetermined program is some models of electrophotographic printers that perform printing by an electrophotographic method. The program according to claim 1, characterized in that.
10. The communication device not corresponding to the predetermined program is some models of electrophotographic printers that perform printing by an electrophotographic method. The program according to claim 1, characterized in that.
11. The search executed according to the instruction of the predetermined program operating in the first operating environment is different from the search executed according to the instruction of the predetermined program operating in the second operating environment. The program according to claim 1, characterized in that.
12. The search executed according to the instruction of the predetermined program operating in the first operating environment includes a broadcast search or a multicast search executed by a socket API (Application Programming Interface). The program according to claim 1, characterized in that.
13. The search executed according to the instruction of the predetermined program operating in the first operating environment includes a search by Wi-Fi Direct (registered trademark). The program according to claim 1, characterized in that.
14. The search executed according to the instruction of the predetermined program operating in the second operating environment includes a search executed by an API different from the socket API (Application Programming Interface). The program according to claim 1, characterized in that.
15. The API different from the socket API is a network service discovery API. The program according to claim 14, characterized in that.
16. The search executed according to the instruction of the predetermined program operating in the second operating environment includes a unicast search executed by a socket API (Application Programming Interface). The program according to claim 1, characterized in that.
17. In the first screen and the second screen, the one or more communication devices are displayed so that an inkjet printer that performs printing by an inkjet method and a laser printer that performs printing by an electrophotographic method can be distinguished. The program according to claim 1, characterized in that.
18. In the first operating environment, the first OS that is the host OS is an Android (registered trademark) OS, and the guest OS does not operate on the host OS. In the second operating environment, the second OS which is the host OS is Chrome (registered trademark) OS, and the guest OS is a virtual Android (registered trademark) OS. The program according to claim 1, characterized in that.
19. Whether the environment in which the predetermined program is operating is the first operating environment or the second operating environment is determined by the predetermined program. Even if the one or more communication devices discovered by the search executed by the first information processing device include a communication device that does not correspond to the predetermined program, the one or more communication devices including the communication device that does not correspond to the predetermined program are displayed on the first screen. Controlled based on the determination that the environment in which the predetermined program is operating is the first operating environment. When the one or more communication devices discovered by the search executed by the second information processing device include a communication device that does not correspond to the predetermined program, the one or more communication devices that do not include the communication device that does not correspond to the predetermined program are displayed on the second screen. Controlled based on the determination that the environment in which the predetermined program is operating is the second operating environment. The program according to claim 1, characterized in that.
20. The predetermined program is an application program for Android (registered trademark) OS. The program according to claim 1, characterized in that.
21. A first information processing device having a predetermined program operable on an operating system (OS) and having a first operating environment that operates on a first OS as a host OS but not on a guest OS, and the predetermined program And a control method for a second information processing device having a second operating environment that operates on a second OS that operates as the host OS and on the guest OS. A first display control step of displaying, on a first screen, one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the first operating environment, in the first information processing device. A first reception step of receiving, in the first information processing device, a selection of any one of the one or more communication devices displayed on the first screen. If the communication device selected from the one or more communication devices displayed on the first screen is a communication device that does not correspond to the predetermined program, a first processing step of executing, in the first information processing device, processing related to another program different from the predetermined program; A second display control step of displaying, on a second screen in the second information processing device, one or more communication devices discovered by a search executed according to an instruction by the predetermined program operating in the second operating environment; A second reception step of receiving, in the second information processing device, a selection of any one of the one or more communication devices displayed on the second screen; To execute, Even if the one or more communication devices discovered by the search executed by the first information processing device include a communication device that does not correspond to the predetermined program, it is controlled such that the one or more communication devices including the communication device that does not correspond to the predetermined program are displayed on the first screen; If the one or more communication devices discovered by the search executed by the second information processing device include a communication device that does not correspond to the predetermined program, it is controlled such that the one or more communication devices that do not include the communication device that does not correspond to the predetermined program are displayed on the second screen; A control method characterized by the above.
Citation Information
Patent Citations
Information processing apparatus, control method, and program
JP2017219961A