Storage medium, control method, and program
Patent Information
- Application Number
- JP2024172554
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-10-01
- Publication Date
- 2026-10-01
- Estimated Expiration
- 2042-11-29
AI Technical Summary
【0007】 本発明によれば、通信装置を検索するための処理をより適切に実行することが可能となる。
Smart Images

Figure 0007927810000001 
Figure 0007927810000002 
Figure 0007927810000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to storage medium , a control method, and a program. [Background Art]
[0002] Patent Document 1 proposes a technique in which an information processing apparatus searches for a communication apparatus via broadcast or Wi-Fi Direct (registered trademark). [Prior Art Documents] [Patent Documents]
[0003] [Patent Document 1] Japanese Unexamined Patent Application Publication No. 2017-010324 [Summary of the Invention] [Problem to be Solved by the Invention]
[0004] Meanwhile, with the widespread adoption of configurations in which an information processing apparatus searches for a communication apparatus, there has been a demand for more appropriately executing processing for searching for a communication apparatus.
[0005] Accordingly, an object of the present invention is to more appropriately execute processing for searching for a communication apparatus. [Means for Solving the Problem]
[0006] The present invention has been made to solve the above problem, A predetermined program that can run on an operating system (OS), and a computer of a first information processing device having a first operating environment that is on a host OS but not a guest OS, is made to perform the following steps: a first reception step of receiving a predetermined operation from a user; a first execution step of having the predetermined program execute a predetermined API (Application Programming Interface) to instruct the OS under which the predetermined program is running to perform a Wi-Fi Direct® search, based on the fact that the predetermined operation has been received and a determination result corresponding to the predetermined program being running in the first operating environment has been obtained by a predetermined determination performed by the predetermined program; and a second execution step of performing processing based on the result of the Wi-Fi Direct search when the predetermined API has been executed. A second information processing device having a second operating environment that is on both a host OS and a guest OS is made to perform the following steps: a second reception step of receiving a predetermined operation from a user and a determination result corresponding to the predetermined program being running in the second operating environment has been obtained by the predetermined program, based on the fact that the predetermined operation has been received and a determination result corresponding to the predetermined program being running in the second operating environment has been obtained by a predetermined determination performed by the predetermined program, and the predetermined program controls the predetermined program not to execute the predetermined API, and the Wi-Fi The method is characterized by: a third execution step in which the predetermined program executes a first API for instructing the OS under the operation of the predetermined program to perform a search using a first method different from the Direct search method; and a fourth execution step in which, if the first API is executed, processing is performed based on the results of the search using the first method. . [Effect of the Invention]
[0007] According to the present invention, processing for searching for a communication apparatus can be executed more appropriately. [Brief Description of the Drawings]
[0008] [Figure 1] Fig. 1 is an example diagram showing a configuration of a communication system. [Figure 2] This figure shows the wireless connection sequence in WFD mode. [Figure 3] Diagram showing the software configuration of the information processing device. [Figure 4] A diagram showing a flowchart for searching for a device using a communication application. [Figure 5] A diagram showing an example of XML data returned by a communication device as a response. [Figure 6] A flowchart showing the scanning function of a communication app. [Figure 7] A diagram showing an example of a notification screen. [Figure 8] A flowchart showing the scanning function of a communication app. [Modes for carrying out the invention]
[0009] Preferred embodiments of the present invention will be described below with reference to the drawings. However, it should be understood that the present invention also includes modifications and improvements made to the embodiments described below, based on the ordinary knowledge of those skilled in the art, without departing from the spirit of the invention.
[0010] (First Embodiment) This section describes the information processing device and communication device included in the communication system of this embodiment. While a smartphone is used as an example of the information processing device in this embodiment, it is not limited to this, and various devices such as mobile terminals, notebook PCs, tablet terminals, PDAs (Personal Digital Assistants), and digital cameras can be applied. Furthermore, various devices capable of wireless communication with the information processing device can be applied as the communication device. For example, if it is a printer, it can be an inkjet printer, a full-color laser beam printer, a monochrome printer, etc. In addition to printers, it can also be applied to scanners, copiers, facsimile machines, mobile terminals, smartphones, notebook PCs, tablet terminals, PDAs, digital cameras, music playback devices, televisions, smart speakers, etc. It can also be applied to multifunction devices equipped with multiple functions such as copying, faxing, printing, and scanning. In this embodiment, the communication device is assumed to be a multifunction printer with printing and scanning functions.
[0011] <About the hardware configuration of each device> First, the configuration of the information processing device included in the communication system of this embodiment and the communication device capable of communicating with the information processing device will be described with reference to the block diagram in Figure 1. In addition, the following configuration is described as an example in this embodiment, but the functions are not particularly limited to what is shown in this figure.
[0012] The information processing device 101 includes an input interface 102, a CPU 103, a ROM 104, a RAM 105, an external storage device 106, an output interface 107, an operation display unit 108, a communication unit 109, a short-range wireless communication unit 110, a camera 111, and the like.
[0013] The input interface 102 is an interface for receiving data input and operation instructions from a user, and is configured of a physical keyboard, buttons, a touch panel, or the like. Note that the output interface 107 described below and the input interface 102 may have the same configuration, and the configuration may be such that screen output and reception of operations from a user are performed by the same configuration.
[0014] The CPU 103 is a system control unit and controls the entire information processing apparatus 101.
[0015] 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. Note that in the present embodiment, the OS held by the ROM 104 and operating on the information processing apparatus 101 is assumed to be Android (registered trademark) OS provided by Google Inc. or Chrome (registered trademark) OS provided by Google Inc. When the OS operating on the information processing apparatus 101 is Chrome OS, the ROM 104 is also assumed to hold a virtual Android OS for operating an application for Android OS described below on the information processing apparatus 101.
[0016] The RAM 105 is configured of SRAM (Static Random Access Memory) or the like that requires a backup power supply. Note that since 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 volatilized. A memory area for storing setting information of the information processing apparatus 101, management data of the information processing apparatus 101, and the like is also provided in the RAM 105. Further, the RAM 105 is also used as a main memory and a work memory for the CPU 103.
[0017] External storage device 106 includes an application program (hereinafter referred to as a communication application) having a function of communicating with communication device 151. Specifically, for example, the communication application is an application having a print function for causing communication device 151 to execute printing, and a scan function for causing communication device 151 to execute scanning. However, the present invention is not limited to this form, and the application may have either the print function or the scan function, or may have another function. In addition, external storage device 106 includes various programs such as a print information generation program for generating print information interpretable by communication device 151, and an information transmission / reception control program for controlling transmission and reception with communication device 151 connected via communication unit 109. It stores various types of information used by these programs. It also stores image data obtained from another information processing device or the Internet via a communication unit. In the present embodiment, the communication application is assumed to be an application for the Android OS.
[0018] Output interface 107 is an interface that performs control for operation display unit 108 to display data and notify the status of information processing device 101.
[0019] Operation display unit 108 is configured of an LED (light-emitting diode), an LCD (liquid crystal display), or the like, and displays data and notifies the status of information processing device 101. A soft keyboard including keys such as a numerical value input key, a mode setting key, a confirm key, a cancel key, and a power key may be provided on operation display unit 108, so that input from a user via operation display unit 108 is accepted.
[0020] The communication unit 109 is configured to connect to a device such as a communication device 151 and perform data communication. For example, the communication unit 109 can connect to an access point (not shown) within the communication device 151. By connecting the communication unit 109 to the access point within the communication device 151, the information processing device 101 and the communication device 151 can communicate with each other. Hereinafter, the access point may also be referred to as AP. The communication unit 109 may communicate directly with the communication device 151 via wireless communication, or it may communicate via an access point 131 located outside both the information processing device 101 and the communication device 151. In this embodiment, the IEEE 802.11 series communication standard is used as the wireless communication method. The IEEE 802.11 series communication standard is Wi-Fi (registered trademark). The access point 131 may be, for example, a wireless LAN router or similar device. In this embodiment, the method by which the information processing device 101 and the communication device 151 are connected directly without going through an external access point is called the direct connection method. Furthermore, the method by which the information processing device 101 and the communication device 151 are connected via an external access point 131 is called the infrastructure connection method.
[0021] The short-range wireless communication unit 110 is configured to wirelessly connect to devices such as the communication device 151 at short range and perform data communication, and communicates using a different communication method than the communication unit 109. The short-range wireless communication method used by the short-range wireless communication unit 110 is, for example, Bluetooth® or NFC (Near Field Communication). Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 110 can connect to the short-range wireless communication unit 157 in the communication device 151.
[0022] The imaging device 111 is a device that converts images captured by the image sensor into digital data. The digital data is first stored in the RAM 105. Then, a program executed by the CPU 154 converts it into a predetermined image format and saves it as image data to the external storage device 106.
[0023] ROM152 stores fixed data such as control programs, data tables, and OS programs executed by CPU154.
[0024] The communication device 151 includes a ROM 152, RAM 153, CPU 154, print engine 155, communication unit 156, short-range wireless communication unit 157, input interface 158, output interface 159, operation display unit 160, scan control unit 161, etc. The communication device 151 can operate in the set connection mode (communication mode) once the connection mode is set.
[0025] The communication unit 156 is configured for the communication device 151 to communicate with other devices, and in this embodiment, the communication unit 156 communicates according to the IEEE 802.11 series communication standard. The communication unit 156 has an access point inside the communication device 151 for connecting to devices such as the information processing device 101. This access point can be connected to the communication unit 109 of the information processing device 101. The communication unit 156 may communicate directly with the information processing device 101 via wireless communication, or it may communicate via the access point 131. The communication unit 156 may also have hardware that functions as an access point, or it may operate as an access point through software that enables it to function as an access point. In this embodiment, the communication unit 156 and the short-range wireless communication unit 157 are implemented in a single wireless chip. That is, in this embodiment, a combo chip that supports both the communication function of the IEEE 802.11 series communication standard and the communication function of the short-range wireless communication method is used. However, the configuration is not limited to this, and the communication unit 156 and the short-range wireless communication unit 157 may each be implemented by separate wireless chips.
[0026] RAM153 consists of DRAM and other components that require a backup power supply. Since RAM153 retains data through a data backup power supply (not shown), it can store important data such as program control variables without losing them. RAM153 is also used as the main memory and work memory of the CPU154, storing a receive buffer for temporarily saving print information received from the information processing device 101, and various other types of information.
[0027] ROM 152 stores fixed data such as control programs, data tables, and OS programs executed by the CPU 154. In this embodiment, each control program stored in ROM 152 performs software execution control such as scheduling, task switching, and interrupt handling under the management of the embedded OS stored in ROM 152. ROM 152 also includes a memory area for storing data that needs to be retained even when power is not supplied, such as configuration information and management data for the communication device 151.
[0028] The CPU 154 is the system control unit and controls the entire communication device 151.
[0029] Based on the information stored in the print engine 155 and RAM 153, and the print jobs received from the information processing device 101, etc., an image is formed on a recording medium such as paper using a recording material such as ink, and the print result is output. At this time, the print jobs transmitted from the information processing device 101, etc., have a large amount of data and require high-speed communication, so they are received via the communication unit 156, which can communicate at a higher speed than the short-range wireless communication unit 157.
[0030] The short-range wireless communication unit 157 is configured to wirelessly connect to devices such as the information processing device 101 at short range and perform data communication, and communicates using a different communication method than the communication unit 156. The short-range wireless communication method used by the short-range wireless communication unit 110 is, for example, Bluetooth® or NFC. Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 157 can connect to the short-range wireless communication unit 110.
[0031] The input interface 158 is an interface for receiving data input and operation instructions from the user, and consists of a physical keyboard, buttons, touch panel, etc. Alternatively, the output interface 159 (described later) and the input interface 158 may have the same configuration, allowing for screen output and acceptance of user operations using the same configuration. The output interface 159 is an interface that controls the operation display unit 160 for displaying data and notifying the status of the communication device 151.
[0032] The operation display unit 160 consists of a display unit such as an LED (light-emitting diode) or an LCD (liquid crystal display) and displays data and notifies the status of the communication device 151. Alternatively, a soft keyboard equipped with keys such as numerical input keys, mode setting keys, confirm keys, cancel keys, and power keys may be installed on the operation display unit 160 to accept input from the user via the operation display unit 160.
[0033] The scan control unit 161 includes an image sensor unit (reading unit) that performs scanning of documents placed on the document tray or ADF as shown in the attached diagram. The image sensor unit includes an image sensor which has an array of elements that read a light source that illuminates the document with light and elements that read the reflected light and perform photoelectric conversion. The scan control unit 161 acquires image data by performing A / D (analog / digital) conversion of the analog electrical signal obtained by reading the document with the image sensor unit. The scan control unit 161 also includes a circuit that performs DMA (direct memory access) transfer in order to store the acquired image data in the RAM 153.
[0034] <About the direct connection method> Direct connection refers to a configuration in which devices connect wirelessly directly (i.e., peer-to-peer) without the need for external devices such as access point 131. The communication device 151 can operate in a mode for communication via direct connection (direct connection mode) as one of its connection modes. In Wi-Fi communication, there are multiple modes for communication via direct connection, such as software AP mode and Wi-Fi Direct® mode. Wi-Fi Direct will be referred to as WFD below.
[0035] The mode in which a direct connection is performed using WFD is called WFD mode. WFD is a standard developed by the Wi-Fi Alliance and is included in the IEEE 802.11 series of communication standards. In WFD mode, after the device to be communicated with is found using device discovery information, the roles of the P2P group owner (GO) and the P2P client are determined, and then the remaining wireless connection processing is performed. The group owner corresponds to the Wi-Fi base station (access point), and the client corresponds to the Wi-Fi slave station (slave device). This role determination corresponds to GO Negotiation in P2P, for example. In WFD mode, before the role determination is performed, the communication device 151 is neither a base station nor a slave station. Specifically, first, one device issues device discovery information to the other device to connect in WFD mode. Once the other device to be communicated with is found, the two devices confirm information about the services and functions that can be supplied by each other. This confirmation of device supply information is optional and not mandatory. This equipment supply information confirmation phase corresponds, for example, to P2P Provision Discovery. Next, by confirming this equipment supply information with each other, it is determined which will be the P2P client and which will be the P2P group owner. Once the client and group owner are determined, they exchange parameters for communication using WFD. Based on the exchanged parameters, the remaining wireless connection processing and IP connection processing are carried out between the P2P client and group owner. In WFD mode, the communication device 151 may always operate as GO without performing the GO Negotiation described above. In other words, the communication device 151 may operate in WFD mode, which is Autonomous GO mode. Furthermore, the state in which the communication device 151 is operating in WFD mode means, for example, a state in which the WFD connection has not been established but the communication device 151 is operating as GO, or a state in which the WFD connection has been established and the communication device 151 is operating as GO.
[0036] In software AP mode, one device (e.g., information processing device 101) acts as a client, requesting various services from the other device (e.g., information processing device 101 and communication device 151). The other device then implements the functions of a Wi-Fi access point through software configuration. The software AP corresponds to a Wi-Fi base station, and the client corresponds to a Wi-Fi slave station. In software AP mode, the client searches for a device that will become a software AP using device discovery information. Once a software AP is found, the remaining wireless connection processing (such as establishing a wireless connection) takes place between the client and the software AP, followed by IP connection processing (such as assigning an IP address). The commands and parameters sent and received when establishing a wireless connection between the client and the software AP can be those specified in the Wi-Fi standard, and are therefore omitted from this explanation.
[0037] In this embodiment, when the communication device 151 establishes and maintains a direct connection, it operates as a master station within the network to which it belongs. A master station is a device that constructs a wireless network and provides slave stations with parameters used to connect to the wireless network. Parameters used to connect to the wireless network include, for example, parameters related to the channel used by the master station. By receiving these parameters, the slave station connects to the wireless network constructed by the master station using the channel used by the master station. In direct connection mode, since the communication device 151 operates as a master station, it is possible for the communication device 151 to determine which frequency band and which channel to use for communication in direct connection mode. In this embodiment, the communication device 151 is capable of using channels corresponding to the 2.4 GHz frequency band and channels corresponding to the 5 GHz frequency band for communication in direct connection mode. The user can arbitrarily set which frequency band to use (i.e., which frequency band channel to use) by setting it on a screen displayed by the communication device 151. However, in this embodiment, even if 5GHz is selected on the screen displayed by the communication device 151, the communication device 151 will not use channels corresponding to the DFS (Dynamic Frequency Selection) band within the 5GHz frequency band for communication in direct connection mode. In other words, the communication device 151 will only use channels corresponding to frequency bands other than the DFS band within the 5GHz frequency band for communication in direct connection mode. If radar waves in the frequency band corresponding to a channel are detected while a channel corresponding to the DFS band is being used, the currently used channel must be changed. The frequency band in which such channel changes may occur due to the detection of radar waves is called the DFS band. However, if, for example, a wireless chip that supports the DFS function is being used, channels corresponding to the DFS (Dynamic Frequency Selection) band within the 5GHz frequency band may be available for communication in direct connection mode.
[0038] Figure 2 shows the wireless connection sequence in WFD mode. In this sequence, the processing performed by each device is realized by the CPU of each device reading various programs stored in the memory such as ROM into RAM and executing them. This process is initiated when each device has a predetermined application for executing the WFD function running and receives a predetermined operation from the user to establish a WFD connection. The predetermined operation to establish a WFD connection is, for example, the operation of selecting the "Enable / Disable Direct Connection Mode" button. This operation corresponds to the operation of starting Direct Connection Mode.
[0039] First, in S201, the information processing device 101 transmits device search information and searches for a device that supports the WFD function as a communication partner device.
[0040] Next, in S202, if the received device discovery information is transmitted using the same channel currently used for direct connection mode, the communication device 151 sends a device discovery response, which is a response to the information, to the information processing device 101. As a result, the information processing device 101 discovers the communication device 151 as a device that supports the WFD function. After the information processing device 101 discovers the communication device 151, each device may exchange information regarding the services and functions that each device can provide.
[0041] Next, in S203, GO Negotiation is performed between the information processing device 101 and the communication device 151. Once the client and group owner are determined, they exchange parameters for communication using WFD. Based on the exchanged parameters, the remaining wireless connection processing and IP connection processing are performed between the P2P client and the group owner. As mentioned above, if the communication device 151 operates in Autonomous GO mode, GO Negotiation may be omitted and the communication device 151 may always operate as GO. Also, when the communication device 151 operates as GO, the communication device 151 determines the frequency band and channel to be used for WFD communication as the master station. Therefore, the communication device 151 operating as GO can select which frequency band to use, 5GHz or 2.4GHz, and which channel to use from the channels corresponding to the determined frequency band.
[0042] Subsequently, in S204, each device performs the process of establishing a wireless connection using WFD based on the exchanged parameters and the channel determined by GO.
[0043] <Regarding infrastructure connection methods> Infrastructure connection is a connection configuration in which communication devices (for example, an information processing device 101 and a communication device 151) are connected to an access point (for example, an access point 131) that manages the network, allowing the devices to communicate with each other via the access point. The communication device 151 can also operate in an infrastructure connection mode (infrastructure connection mode) as one of its connection modes.
[0044] In infrastructure connectivity, each device searches for an access point using device discovery information. Once an access point is found, the remaining wireless connection processing (establishing the wireless connection, etc.) takes place between the device and the access point, followed by IP connection processing (assigning an IP address, etc.). The commands and parameters sent and received when establishing a wireless connection between the device and the access point should be those specified in the Wi-Fi standard, and will not be explained here.
[0045] In this embodiment, when the communication device 151 operates in infrastructure connection mode, the access point 131 operates as the master station and the communication device 151 operates as the slave device. That is, in this embodiment, infrastructure connection refers to the connection between the communication device 151 operating as a slave device 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 becomes possible via the access point 131. Since the channel used for communication in the infrastructure connection is determined by the access point 131, the communication device 151 performs communication in the infrastructure connection using the channel determined by the access point 131. In this embodiment, the communication device 151 is capable of using channels corresponding to the 2.4 GHz frequency band and channels corresponding to the 5 GHz frequency band for communication in the infrastructure connection. The communication device 151 can also use channels corresponding to the DFS band within the 5 GHz frequency band for communication in the infrastructure connection. Furthermore, in order for the information processing device 101 to communicate with the communication device 151 via the access point 131, it is necessary to recognize that the communication device 151 belongs to the network formed by the access point 131, to which the information processing device 101 belongs.
[0046] Furthermore, if the information processing device 101 and the communication device 151 are connected to the access point 131 via infrastructure connection, the communication device 151 can be discovered by broadcasting performed by the information processing device 101.
[0047] <About the software configuration of the information processing device 101> Next, the software configuration of the information processing device 101 in this embodiment will be described. Figure 3(a) shows an example of the software configuration of the information processing device 101 when the host OS running on the information processing device 101 is Android OS. In this configuration, Android OS applications run on Android OS. In this configuration, Chrome OS is not included in the software configuration of the information processing device 101. In this configuration, an environment in which the OS running at the lowest level of the information processing device 101 is Android OS (not Chrome OS) will be referred to as the first environment below. Specifically, the first environment is, for example, an environment in which the information processing device 101 has a host OS installed but no guest OS installed, and the communication application runs on the host OS. Alternatively, the first environment is, for example, an environment in which the information processing device 101 has both a host OS and a guest OS installed, but the communication application runs on the host OS and operates without going through the guest OS (does not run on the guest OS).
[0048] Figure 3(b) shows an example of the software configuration of the information processing device 101 when the host OS running on the information processing device 101 is Chrome OS. In this configuration, a virtual Android OS, which is a virtual OS, runs on Chrome OS. Android OS applications then run on the virtual Android OS. In this configuration, the OS running at the lowest level of the information processing device 101 is Chrome OS, and the environment in which the virtual Android OS runs on Chrome OS will be referred to as the second environment below. In this embodiment, a virtual OS is a program that allows applications that are not compatible with the host OS to run on the host OS, and is a guest OS. The virtual OS may be an entire existing OS such as Android OS, an existing OS with some modules omitted, or a program created separately from an existing OS. The virtual OS can be implemented using virtualization technologies such as the Virtual Machine method or the container method.
[0049] However, when running an Android OS application in the second environment, the following issues arise.
[0050] First, conventionally, a method called broadcast search is known as a way for the information processing device 101 to search for a device with which it will communicate via a communication application. Broadcast search is a method of discovering a device by sending and receiving a broadcast search packet. Specifically, in broadcast search, the communication application first instructs the OS of the information processing device 101 to send a broadcast search packet by executing a socket API (Application Programming Interface). The OS then sends the broadcast search packet to the access point (in this case, access point 131) that forms the network to which the information processing device 101 belongs (is connected). A broadcast search packet is a packet in which a value for broadcast search, corresponding to not specifying a destination for the packet, is set in the area where the IP address is stored. In this embodiment, the content of the broadcast search packet is specified by the communication application. That is, a device that can interpret the content of the broadcast search packet is a device that corresponds to the communication application. Specifically, a device that corresponds to the communication application is, for example, a printing device provided by the vendor of the communication application. In this embodiment, the communication device 151 is assumed to be a device that corresponds to the communication application. When access point 131 receives a broadcast search packet, it transmits the packet to all devices belonging to the network it forms. When a device capable of interpreting the packet receives it, it sends a response via access point 131 to the information processing device 101, which was the source of the packet. The OS of the information processing device 101 receives the response and sends the received response to the communication application. As a result, the information processing device 101 can discover each device that sent a response via the communication application and execute processing based on the results of the broadcast search. Specifically, processing based on the search results may include, for example, displaying the search results or communicating with the devices discovered through the search.
[0051] Furthermore, a method called multicast search is known as a way for the information processing device 101 to search for a device with which it will communicate via a communication application. Multicast search is a method of discovering a device by sending and receiving multicast search packets. Specifically, in multicast search, the communication application first instructs the OS of the information processing device 101 to send multicast search packets by executing a socket API. The OS then sends multicast search packets to the access point (in this case, access point 131) that forms the network to which the information processing device 101 belongs (is connected). A multicast search packet is a packet in which a multicast search value is set in the area where the IP address is stored, and this value corresponds to specifying a particular type of device as the destination of the packet. In this embodiment, the content of the multicast search packet is specified by the communication application. That is, the device that can interpret the content of the multicast search packet is the device corresponding to the communication application. Access point 131, which receives the multicast search packet, sends the packet to the device of the type specified by the multicast search packet among all the devices belonging to the network it forms. When a device capable of interpreting the packet receives it, it sends a response to the information processing device 101, the source of the packet, via the access point 131. The OS of the information processing device 101 receives the response and sends it to the communication application. As a result, the information processing device 101 can discover each device that sent a response via the communication application and perform processing based on the results of the multicast search.
[0052] Incidentally, while the communication application is responsible for specifying the content of broadcast search packets and multicast search packets, the OS, which operates at the lowest layer in the information processing device 101, is responsible for sending those packets. Therefore, in environments where Android OS applications run in the second environment, Chrome OS needs to perform broadcast and multicast searches. However, when Android OS applications run in the second environment, Chrome OS may use its firewall to prevent broadcast and multicast searches initiated by Android OS applications and using the socket API from being executed. As a result, when a communication application is running in the second environment, there is a problem in that the communication application may not be able to perform processing based on the results of broadcast and multicast searches. Note that broadcast and multicast searches initiated by Chrome OS applications are not blocked by the Chrome OS firewall. Therefore, if the information processing device 101 is running a Chrome OS application on Chrome OS, and that application issues a command to perform a broadcast or multicast search using the socket API, Chrome OS can perform the broadcast or multicast search.
[0053] Furthermore, in this embodiment, the communication application supports device retrieval using WFD. Therefore, if the information processing device 101 on which the communication application is running supports WFD, the communication application can instruct the OS of the information processing device 101 to perform a device retrieval using WFD, and upon receiving the results of the retrieval, can execute processing based on the results of the retrieval.
[0054] However, devices running Chrome OS, or Chrome OS itself, often do not support WFD, making it impossible to perform device searches using WFD. Furthermore, if a communication application is running in the second environment, there is a problem in that the communication application may not be able to perform processing based on the results of the WFD device search.
[0055] Furthermore, in this embodiment, the communication application has a function (scan function) to send a scan job to the communication device 151 to perform a scan, and to acquire image data (scan data) obtained by the scan performed by the scan job from the communication device 151. However, when the communication application is running in the second environment, there is a problem that the communication application may not be able to acquire the scan data acquired by the communication device 151.
[0056] When a communication application sends a scan job to a communication device 151 that performs a push scan, it starts a WebDAV (Web-based Distributed Authoring and Versioning) server within the communication application. If the environment in which the communication application operates is the second environment, the virtual Android OS assigns the IP address of the virtual interface configured as the interface used by the WebDAV server. This IP address is called the first address. The communication application then instructs the virtual Android OS to send the scan job. Here, the scan job includes the first address as the source address, the IP address of the communication device 151 as the destination address, and the first port number as the source port number. The virtual Android OS then instructs Chrome OS to send the scan job. At this point, Chrome OS performs NAT (Network Address Translation), which is an address translation process. Specifically, for example, Chrome OS translates the source address from the first address to the second address, and the source port number from the first port number to the second port number. Then, using the translated address and port number, it sends the scan job to the communication device 151. The converted address is stored in the header of the scan job packet.
[0057] Here, we assume that the communication device 151 is a device that performs push scans. Therefore, when a scan job is received by the communication device 151, the communication session between the information processing device 101 and the communication device 151 is temporarily disconnected. For this reason, in order for the communication device 151 to send scan data to the information processing device 101, it is necessary to re-establish the communication session between the information processing device 101 and the communication device 151.
[0058] In that case, the communication device 151 needs to specify an IP address indicating the destination of the scan data. However, as described above, the scan job received by the communication device 151 includes a second address, which is the IP address after the first address has been translated by Chrome OS. Therefore, the communication device 151 cannot obtain the first address. Furthermore, even if the first address could be obtained by referring to the first address contained in the non-header portion of the scan job packet, the first address is a private IP address inside the information processing device 101. As a result, in the second environment, there is a problem in that the communication application may not be able to obtain the scan data obtained from the scan performed by the communication device 151 by a scan job that causes the communication device 151 to perform a push scan.
[0059] <Regarding searching for devices using communication apps> Figure 4 shows a flowchart of the device search using the communication application in this embodiment. This flowchart is realized when the CPU 103 reads various programs stored in memory such as the external storage device 106 into the RAM 105 and executes them. Specifically, this flowchart is realized when the communication application is executed. This process is started when the user performs an operation that triggers the device search on the screen displayed by the communication application. However, this is not the only form; for example, this process may be started based on the launch of the communication application.
[0060] In S401, CPU103 obtains environmental information about the environment in which the communication application is running by executing an Android OS API from the communication application. If the environment in which the communication application is running is the first environment, the environmental information obtained will be the information corresponding to the first environment. On the other hand, if the environment in which the communication application is running is the second environment, the API executed will be an API of the virtual Android OS, and the environmental information obtained will be the information corresponding to the second environment.
[0061] In S402, CPU 103 determines whether the environment in which the communication application is running is the first environment, based on the environment information obtained in S401. If the result of this determination is YES, CPU 103 proceeds to S403; if the result of this determination is NO, CPU 103 proceeds to S411.
[0062] In S403, the CPU 103 determines the content of the broadcast search packet based on the communication application. The CPU 103 then instructs the Android OS to send the packet with the determined content by executing a socket API from the communication application. In other words, the CPU 103 executes the broadcast search process based on the communication application. This causes the CPU 103 to execute the transmission of the broadcast search packet to the access point 131 by the Android OS. In this embodiment, the broadcast search packet is configured so that only devices corresponding to the communication application can respond to it. In this embodiment, multiple types of broadcast search packets are broadcast. Specifically, these multiple types of broadcast search packets include packets configured to respond only to inkjet printers, and packets configured to respond only to electrophotographic printers. It may also include packets configured to respond only to older inkjet printers and packets configured to respond only to newer inkjet printers. Specifically, for example, the CPU 103 controls the devices to be searched by using different port numbers set in the broadcast search packets. This allows broadcast searches to find only the desired devices. Furthermore, it is possible to determine which type of device the discovered device is (e.g., whether it is an inkjet printer or an electrophotographic printer).
[0063] In S404, the CPU 103 obtains responses to broadcast search packets from the Android OS via a communication application. This identifies the device that sent the response as the device discovered by the broadcast. Figure 5 shows an example of XML data returned by the communication device 151 as a response to the broadcast. The status tag represents the response result to the query, and in this example, it indicates that the query was successful. The device_type tag and model_name tag represent the type and model name of the device, respectively. The information processing device 101 can recognize a device with printer information in the device_type tag as a printer, so in this example, the model of the communication device is a printer and the model name is "Communication apparatus 151". The ip_address tag represents the IP address of the communication device, and in this example, it represents that the IP address of the communication device is 192.168.0.2. Furthermore, the mac_address tag represents the MAC address of the communication device, and it represents that the MAC address is aa:bb:cc:dd:ee:ff. However, the information and data format included in the data returned by the communication device as a response are not limited to this, and various types of information about the communication device may be included.
[0064] In the above description, we have explained the configuration in which processing for broadcast search is performed in S403 and S404, but it is also possible for processing for multicast search to be performed. That is, in S403, the CPU 103 may determine the content of the multicast search packet using a communication application, and the communication application may instruct the Android OS to send the packet with the determined content by executing a socket API from the communication application. Then, in S404, the CPU 103 may obtain the response to the multicast search packet from the Android OS using the communication application.
[0065] In S405, the CPU 103 executes an API for WFD, instructing the Android OS via a communication application to perform a WFD search (i.e., send device discovery information via WFD). This causes the CPU 103 to execute the transmission of device discovery information by the Android OS. Subsequently, the Android OS receives device discovery responses from WFD-compatible devices around the information processing device 101. This process corresponds to the processes in S201 and S202.
[0066] In S406, the CPU 103 obtains device discovery responses from the Android OS via a communication application. This identifies the device that sent the device discovery response as a device discovered by WFD. In this case, only the devices that support printing services among the devices that sent the device discovery response may be identified as devices discovered by WFD. Which device supports which service can be confirmed by communication between the device that sent the device discovery response and the information processing device 101.
[0067] In S407, the CPU 103 displays a search results screen, which is a screen showing a list of one or more devices found by broadcast search and one or more devices found by WFD search, via a communication application based on the information obtained in S404 and S406. The list may be displayed on the search results screen in a way that distinguishes between one or more devices found by broadcast search and one or more devices found by WFD search. Specifically, for example, on the search results screen, the display item corresponding to a device found by broadcast search may be marked with an icon indicating that it was found by broadcast search. Similarly, on the search results screen, the display item corresponding to a device found by WFD search may be marked with an icon indicating that it was found by WFD. The list may also be displayed on the search results screen in a way that distinguishes between inkjet printers and electrophotographic printers. The CPU 103 then accepts a selection of one of the devices displayed on the search results screen from the user via a communication application.
[0068] In S408, CPU 103 determines whether the selected device was discovered via broadcast. If the result of this determination is YES, CPU 103 proceeds to S410; if the result of this determination is NO, CPU 103 proceeds to S409.
[0069] In S409, the CPU 103 instructs the Android OS from the communication application to establish a WFD connection between the selected device and the information processing device 101. The Android OS then executes the process to establish the WFD connection between the selected device and the information processing device 101. This process corresponds to the processes in S203 and S204. In this embodiment, the information processing device 101 is capable of maintaining both a WFD connection and a normal Wi-Fi connection in parallel. Therefore, the CPU 103 establishes the WFD connection between the selected device and the information processing device 101 while maintaining the Wi-Fi connection between the access point 131 and the information processing device 101.
[0070] In S410, CPU 103 obtains capability information from the selected device. Specifically, capability information includes information such as whether the device supports printing and scanning functions, whether it supports double-sided printing and color / monochrome printing, and the types of recording media and recording media it supports. The capability information may also include identification information of the device, such as MAC address, model name, and IP address. The communication application registers the selected device in the communication application by associating it with the capability information. From then on, the communication application can send various jobs to the devices registered in the communication application. Consequently, the communication application can have the devices registered in the communication application execute processing according to the various jobs. After that, the processing of this flowchart ends.
[0071] On the other hand, if the result of the S402 determination is NO, in S411, the CPU 103 uses an API different from the socket API to perform a process via the communication application to search for devices on the network to which the information processing device 101 belongs. Specifically, the API used here is the Network Service Discovery (NSD) API. When this API is executed from the communication application, a search called NSD is performed. NSD is a multicast search performed using the DNS-based service discovery protocol. Furthermore, NSD is a search that can also be performed in the second environment by instruction from the communication application. Specifically in this process, when this API is executed from the communication application, 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 device 101 belongs that are compatible with NSD are discovered. When executing the NSD API, the communication application can specify which service-compatible devices to search for using NSD. The service can be specified, for example, by specifying the protocol. Therefore, in this embodiment, the communication application specifies that it should search for a device (i.e., a printer) that supports the printing service by specifying the Internet Printing Protocol (IPP). Note that when the communication application uses the socket API for a search command, it specifies the IP address as the destination device for the packet, whereas when the search command uses the NSD API, it does not specify the IP address.
[0072] Next, in S412, CPU103 retrieves information about the discovered device as a result of the NSD search. Specifically, the information retrieved here includes, for example, the IP address, port number, and service name of the discovered device.
[0073] Next, in S413, the CPU 103 executes a process to perform a unicast search on one or more devices discovered by the NSD. In this embodiment, the process to perform a unicast search is performed on all devices discovered by the NSD, but the system is not limited to this configuration. The process to perform a unicast search may be performed on some of the devices discovered by the NSD. A unicast search is a method of searching on the network to which the information processing device 101 belongs by specifying the devices to be searched by their IP addresses. Since the IP addresses of the devices discovered by the NSD are obtained by the communication application as a result of the NSD search, it is possible to search for the devices discovered by the NSD again using a unicast search. While broadcast search is limited to the subnetwork to which the information processing device 101 belongs, unicast search is limited to the subnetwork to which the information processing device 101 belongs, as well as other subnetworks connected to that subnetwork. A subnetwork refers to a single network unit composed of one access point. Unicast search can also be performed in the second environment by instruction from the communication application. In this process, the CPU 103 specifically determines the content of the unicast lookup packet based on the communication application. The CPU 103 then executes a socket API to instruct the virtual Android OS via the communication application to send the packet with the determined content. The unicast lookup packet is a packet in which a value for unicast lookup is set in the area where the IP address is stored, and this value corresponds to specifying the destination of the packet (in other words, the destination of the device to be looked up). In this embodiment, the unicast lookup packet is configured so that only devices corresponding to the communication application can respond to it. In this embodiment, multiple types of unicast lookup packets are sent to a single device.Specifically, the multiple types of unicast search packets include packets configured to respond only to inkjet printers and packets configured to respond only to electrophotographic printers. It may also include packets configured to respond only to older inkjet printers and packets configured to respond only to newer inkjet printers. This allows for the discovery of only the desired device through unicast searching. Furthermore, it is possible to determine which type of device the discovered device is (e.g., inkjet printer or electrophotographic printer). In this embodiment, the content of the unicast search packet differs from the content of the broadcast search packet only in the IP address indicating the packet's destination. The virtual Android OS then instructs Chrome OS to perform a unicast search. Chrome OS then performs the unicast search by sending a unicast search packet. As a result, a response is received from a device on the network to which the information processing device 101 belongs, corresponding to the IP address specified in the unicast search packet, and the device is discovered.
[0074] Next, in S414, CPU103 retrieves information about the discovered devices as a result of the unicast search. Specifically, the information retrieved here includes, for example, the IP address, MAC address, model name (type name), and serial number of the discovered devices. By performing a unicast search after NSD, it is possible to identify the devices corresponding to the communication application from among the devices discovered by NSD. In addition, it is possible to obtain information that could not be obtained by NSD.
[0075] Next, in S415, the CPU 103 displays a search results screen via the communication application, which is a screen showing a list of devices found by the unicast search. The list on the search results screen may be displayed in a way that allows for the distinction between inkjet printers and electrophotographic printers. The CPU 103 then accepts a selection of one of the devices displayed on the search results screen from the user via the communication application. After that, the CPU 103 proceeds to 310 to register the selected device.
[0076] In this embodiment, the system switches whether or not to perform a broadcast search based on the environment in which the communication application is operating. Specifically, if the environment in which the communication application is operating is the first environment, a broadcast search is performed; if the environment in which the communication application is operating is the second environment, a broadcast search is not performed, and other processing is carried out. These other processing methods include, for example, NSD searches or unicast searches. This allows the communication application to perform appropriate processing based on the environment in which it is operating.
[0077] The communication application specifies whether to instruct broadcast, multicast, or unicast lookup using the IP address specified when executing the socket API, and this is determined by which type of IP address is specified in the packet sent for the lookup. In other words, this embodiment switches the content of the IP address specified in the packet used for the lookup based on the environment in which the communication application is operating.
[0078] The processing performed based on the fact that the environment in which the communication application operates is the second environment is not limited to the forms described above. For example, this processing may include displaying a notification screen to inform the user that a broadcast search cannot be performed. In the form in which the notification screen is displayed, NSD searches or unicast searches do not need to be performed. Furthermore, this notification screen may include, for example, a screen to inform the user that the environment in which the communication application operates is the second environment, a screen to inform the user that a communication device cannot be registered with the communication application, or a screen to prompt the user to run the communication application in the first environment.
[0079] Furthermore, the search method is not limited to the methods described above. For example, the order in which the processes for searching by broadcast (S403, S404) and searching by WFD (S405, S406) are executed may be reversed, or the searches may be executed in parallel. Also, instead of displaying the search results screen after each search is completed, the discovered devices may be added to the search results screen each time a device is discovered through a search.
[0080] Furthermore, the communication application may be able to accept separate commands from the user to instruct the execution of a search by broadcast and to instruct the execution of a search by WFD. If an operation to instruct the execution of a search by broadcast is performed, the flowchart in Figure 4 may be executed without performing the WFD search process. Similarly, if an operation to instruct the execution of a search by WFD is performed, the flowchart in Figure 4 may be executed without performing the broadcast search process. The communication application may also be an application that supports only one of the two methods: search by broadcast or search by WFD. That is, if the application only supports search by broadcast, the flowchart in Figure 4 may be executed without performing the WFD search process. Similarly, if the application only supports search by WFD, the flowchart in Figure 4 may be executed without performing the broadcast search process.
[0081] Furthermore, while the above describes a configuration in which the processing for NSD (S411, S412) is followed by the processing for unicast searching (S413, S414), the system is not limited to this configuration. For example, in the flowchart of Figure 4, the processing for unicast searching may not be performed, and the search results screen may display only the devices discovered by NSD. In this case, the device corresponding to the communication application may store information indicating that it is a device corresponding to the communication application as a response to NSD. Thus, only the devices identified as devices corresponding to the communication application among those discovered by NSD may be displayed on the search results screen.
[0082] <Regarding the execution of the scanning function using a communication app> As described above, once the communication device 151 is registered with the communication application, the communication application can send scan jobs to the registered communication device 151.
[0083] Figure 6 shows a flowchart of the scanning function performed by the communication application in this embodiment. This flowchart is realized when the CPU 103 reads various programs stored in memory such as the external storage device 106 into the RAM 105 and executes them. Specifically, this flowchart is realized when the communication application is executed. This process is started when the user performs an operation that triggers the execution of the scanning function on the screen displayed by the communication application.
[0084] In S601, the CPU 103 identifies the device to which the scan job will be sent and obtains the model information of the identified device. Specifically, for example, the CPU 103 identifies the communication device 151 registered in the communication application as the destination for the scan job. If there are multiple devices registered in the communication application, the CPU 103 may have the user select one of the multiple devices registered in the communication application and identify the selected device as the destination for the scan job. The user's selection may be accepted in S601, or it may be accepted in advance by the user before an operation that triggers the execution of the scan function is performed. When the communication device 151 is identified, the CPU 103 obtains the model information included in the capability information by referring to the capability information of the communication device 151 that is managed for the purpose of registering the communication device 151 with the communication application.
[0085] In S602, the CPU 103 determines whether the model of the device to which the scan job is sent is a predetermined model that supports pull scan. A pull scan is a type of scan in which the information processing device 101 receives scan data from the communication device 151 via a session established between the information processing device 101 and the communication device 151. In this embodiment, for example, some models of inkjet printers that print using the inkjet method and some models of electrophotographic printers that print using the electrophotographic method are predetermined models. Some models of electrophotographic printers that print using the electrophotographic method are different from the predetermined models and are models that support push scan. If the result of this determination is YES, the CPU 103 proceeds to S603, and if the result of this determination is NO, the CPU 103 proceeds to S605.
[0086] In S603, the CPU 103 instructs the underlying OS of the communication application to send a scan job. As a result, the scan job is sent from the information processing device 101 to the communication device 151. The underlying OS of the communication application is Android OS in the first environment and a virtual Android OS in the second environment. In the second environment, the virtual Android OS further instructs Chrome OS to send a scan job. The scan job sent here is a job created by the communication application to cause the communication device 151 to perform a pull scan.
[0087] In S604, the CPU 103 retrieves scan data acquired by the information processing device 101 from the communication device 151 via the communication application, without using a WebDAV server, from the OS underlying the communication application. The process then proceeds to S609.
[0088] If the result of the S602 judgment is NO, S605 is executed, in which CPU103 acquires environmental information. This process is the same as S401.
[0089] In S606, the CPU 103 determines, based on the environmental information acquired in S605, whether the environment in which the communication application is running is the first environment. If the result of this determination is YES, the CPU 103 proceeds to S607; if the result of this determination is NO, the CPU 103 proceeds to S610. As explained in Figure 4, in this embodiment, different search processes are executed based on the environment in which the communication application is running. Therefore, the environment in which the communication application is running is identified based on the search process that discovered the device to which the scan job will be sent. For example, the process in S606 may be a process that identifies which search process discovered the device to which the scan job will be sent. If the identified search process is the search process that is executed when the environment in which the communication application is running is the first environment, the process may proceed to S607. If the identified search process is the search process that is executed when the environment in which the communication application is running is the second environment, the process may proceed to S610.
[0090] In S607, the CPU 103 instructs the Android OS via the communication application to send a scan job. This sends the scan job from the information processing device 101 to the communication device 151. The scan job sent here is a job created by the communication application to instruct the communication device 151 to perform a push scan. Therefore, the CPU 103 starts the WebDAV server via the communication application.
[0091] In the S608, the CPU 103 acquires scan data obtained from the communication device 151 by the information processing device 101 via a communication application using a WebDAV server from the Android OS.
[0092] In S609, CPU103 displays the image represented by the scan data acquired by the communication application. Afterward, the processing of this flowchart is terminated.
[0093] If the result of the S602 judgment is NO, S610 is executed, in which the CPU 103 performs a notification process, which is the process of displaying a notification screen to inform the user that the scanning function cannot be executed from the communication application. An example of the notification screen displayed here is shown in Figure 7. The notification screen may be, for example, a screen prompting the user to execute the standard scanning function that is standard in the host OS. It may also be a screen presenting the operations for executing the standard scanning function. It may also be a screen with a button to display a web manual in a web browser that presents the operations for executing the scanning function that is standard in the host OS. The standard scanning function is an application that is standard in the information processing device 101 along with the host OS, and is executed by the standard scanning application that manages the standard scanning function. Therefore, the screen prompting the user to execute the standard scanning function can also be said to be, for example, a screen prompting the user to use the standard scanning application. The screen presenting the operations for executing the standard scanning function can also be said to be, for example, a screen presenting the operations for launching the standard scanning application. The notification screen may also be, for example, a screen asking the user whether or not to launch the standard scanning application. If input is received to activate the standard scan function, the CPU 103 may launch the standard scan application from the communication application. Since the standard scan application is an application for the host OS, it operates without going through the guest OS. Therefore, the standard scan application can acquire scan data obtained from the communication device 151 by scans performed based on scan jobs sent and executed by instructions from the standard scan application. In addition, in S610, the CPU 103 may perform the startup process of launching the standard scan application from the communication application without performing a notification process. In addition, in S610, the CPU 103 may determine whether the host OS version is a version that supports the startup process, and execute the startup process if YES, and execute a notification process if NO.When the launched standard scan application is operated by the user, a scan job is sent from the information processing device 101 to the communication device 151, etc., based on instructions from the standard scan application. The scan job sent based on instructions from the standard scan application is a job created by the standard scan application. Therefore, the process of S610 can be said to be the process of sending a scan job created by the standard scan application, which is different from the communication application. After S610, the process of this flowchart ends.
[0094] Thus, in this embodiment, if the environment in which the communication application operates is the second environment, and the communication application cannot obtain scan data from the communication device 151, it does not send a scan job to the communication device 151. Then, for example, as a process other than sending a scan job, it displays a notification screen or launches the standard scan application. This makes it possible to present the user with an alternative means of obtaining scan data when the communication application cannot obtain scan data from the communication device 151.
[0095] The issues arising in the second environment described above can also occur if the host OS in the second environment is an OS other than Chrome OS, or if the guest OS in the second environment is an OS other than Android OS. In other words, although the above description assumes that the second environment is an environment in which a virtual Android OS runs on Chrome OS and Android OS applications run on the virtual Android OS, it is not limited to this form. For example, the OS running at the lowest layer may be other OSs such as Windows® OS provided by Microsoft or Mac® OS provided by Apple, instead of Chrome OS. Also, the guest OS and the applications running on the guest OS may be iOS® or iOS applications, instead of Android OS or Android OS applications. For example, CPU 103 may use a communication application to identify which OS is the host OS in the second environment before S610. Then, in the notification processing at S610, a notification screen with content corresponding to the identified OS may be displayed. Specifically, for example, if the name of the standard scan application or the method for launching the standard scan application differs depending on the type of OS, the notification screen may display the name of the standard scan application corresponding to the specified OS and the method for launching the standard scan application on that specified OS. Also, for example, on the S610, instead of a notification process, the process of launching the standard scan application corresponding to the specified OS may be executed.
[0096] (Second Embodiment) As mentioned above, the host OS in the second environment is not limited to Chrome OS; it may also be another OS such as Windows OS. Furthermore, there may be other applications for other operating systems provided by the same vendor as the communication application, which are separate applications from the communication application. In this embodiment, we will describe a configuration in which different processing is performed depending on the type of host OS in the second environment.
[0097] Figure 8 shows a flowchart of the scanning function performed by the communication application in this embodiment. This flowchart is realized when the CPU 103 reads various programs stored in memory such as the external storage device 106 into the RAM 105 and executes them. Specifically, this flowchart is realized when the communication application is executed. This process is started when the user performs an operation that triggers the execution of the scanning function on the screen displayed by the communication application.
[0098] Since S801 to S810 are the same as S601 to S610, the explanation will be omitted.
[0099] If the result of the S806 determination is NO, in S811, which is executed, the CPU 103 identifies the host OS in the second environment using the communication application. The CPU 103 then uses the communication application to determine whether the identified host OS is an OS that does not support a specific scan application. The specific scan application is an application separate from the communication application and is provided by the same vendor as the communication application. In this embodiment, Chrome OS is assumed to be an OS that does not support the specific scan application. Windows OS is assumed to be an OS that supports the specific scan application. That is, a scan application for Windows OS is assumed to exist as the specific scan application. Since the scan application for Windows OS can operate in the second environment without going through the guest OS, it can acquire scan data obtained by push scans performed by the communication device 151. As described above, whether an OS supports a specific scan application is determined by the type of OS, so the determination process in S811 may also determine whether the host OS is Chrome OS or not. If the result of this determination is YES, the CPU 103 proceeds to S810 and executes a notification process similar to S610 as the first notification process. On the other hand, if the result of this judgment is NO, CPU 103 proceeds to S812.
[0100] In S812, the CPU 103 executes a second notification process, which is the process of displaying a notification screen to prompt the user to use a specified application. The notification screen displayed here may, for example, be a screen that displays a button to launch the specified application. If the button is pressed and the specified application is already installed on the information processing device 101, the CPU 103 launches the specified application. On the other hand, if the button is pressed and the specified application is not yet installed on the information processing device 101, the CPU 103 launches a store app to install the specified application. The notification screen displayed here may, for example, be a screen that asks the user whether to launch the specified application. If input to launch the specified application is received, the CPU 103 may launch the specified application from the communication app. In S812, the CPU 103 may launch the specified application without executing the notification process. After that, the process ends.
[0101] This configuration allows for the execution of appropriate processing according to the type of host OS in the second environment.
[0102] (Other embodiments) As explained above, Chrome OS may use its firewall to prevent broadcast and multicast searches initiated by Android OS applications and using the Socket API. However, depending on the port number specified when executing the Socket API and the content of the port number set in the packet used for the search, broadcast and multicast searches may not be blocked by the firewall. Therefore, for example, even in the second environment, a communication application may instruct the virtual Android OS to execute broadcast or multicast searches using the Socket API for certain searches that are not blocked by the Firewall. Specifically, for example, suppose a specific port number is specified for a type of packet configured to only respond to older inkjet printers, and broadcast and multicast searches using this packet are not blocked by the Firewall. In that case, for example, in S411, CPU103 may instruct the virtual Android OS from the communication application to perform a broadcast search by sending a type of packet that uses the Socket API and is configured to only respond to older inkjet printers, in addition to searches using the NSD API. Then, in S415, CPU103 may display not only the search results from S414 but also the search results of the broadcast search executed by the above instruction. Furthermore, devices found in both NSD search and broadcast search are controlled to prevent duplicate display. This makes it possible to find devices in the second environment that cannot be found in NSD search for reasons such as not supporting IPP.
[0103] Furthermore, the flowchart in Figure 4 may be initiated based on the fact that a network setting has been performed from the information processing device 101 to the communication device 151 using a communication application. Specifically, network setting is the process of sending information about access point 131 to the communication device 151 via a Wi-Fi or Bluetooth connection between the information processing device 101 and the communication device 151. This allows the communication device 151 to connect with access point 131 using that information. Subsequently, if the information processing device 101 is also connected to access point 131, the flowchart in Figure 4 will be executed, allowing the information processing device 101 to discover the communication device 151. Therefore, when the information processing device 101 sends information about access point 131 to the communication device 151 via a Wi-Fi connection between the information processing device 101 and the communication device 151, it may disconnect the connection after sending the information and establish a connection between the information processing device 101 and access point 131. Also, the flowchart initiated based on the execution of network setting may not display a search results screen, for example. Specifically, instead of displaying a search results screen and accepting a selection from the user, a process may be performed to identify the device on which network configuration has been performed among the devices found through the search. Specifically, this identification process is performed by comparing the MAC address and serial number, which are information obtained from the communication device 151 via the above-mentioned connection used for network configuration and are information of the communication device 151 on which network configuration has been performed, with the MAC address and serial number, which are information obtained through the search and are information of the device found through the search. Capability information may then be obtained from the device identified in this way. Furthermore, the flowchart initiated based on the execution of network configuration may not perform processes related to the WFD search (S405, S406, S408, S409, etc.).
[0104] Furthermore, the above describes a configuration in which the devices to be searched by unicast search from among the devices found by NSD search in S412 are determined without user selection. However, the system is not limited to this configuration; it may also be configured in which the devices to be searched by unicast search from among the devices found by NSD search are determined based on user selection, and only unicast searches for the determined devices are performed. In this configuration, for example, after the NSD search in S412 is performed and before the unicast search is performed, the CPU 103 displays a search results screen, which is a screen showing a list of devices found by NSD search, via the communication application. The CPU 103 then determines that only the devices selected by the user from among the devices displayed on the search results screen will be searched by unicast search. The CPU 103 then instructs the virtual Android OS via the communication application to send a unicast search packet specifying the IP address of the determined device, and then executes the process of registering the device found by unicast search with the communication application.
[0105] Furthermore, as described above, in the second environment, a configuration in which a unicast search is performed after an NSD search is performed was explained. However, the configuration is not limited to this configuration; for example, in the second environment, a unicast search may be performed without an NSD search being performed first. In this configuration, for example, if the result of the 402 check is NO, the CPU 103 does not execute S411 and S412. The CPU 103 then displays a screen via a communication application to accept IP address input from the user. Then, in S413, the CPU 103 executes a process to perform a unicast search for one or more devices corresponding to the IP address entered by the user via the screen. Specifically, the CPU 103 sets the IP address entered by the user via the screen in the unicast search packet. Then, by executing a socket API, the CPU 103 instructs the virtual Android OS via the communication application to send a packet with the IP address entered by the user via the screen set in it.
[0106] Furthermore, in the second environment, after the communication application has executed the process for NSD search, it may be determined whether or not the NSD search failed. This determination may be made, for example, by whether or not the communication application was notified that the NSD search had failed. If it is determined that the NSD search has failed, the CPU 103 may display a screen via the communication application to accept IP address input from the user. The CPU 103 may then execute a process to perform a unicast search for one or more devices corresponding to the IP address entered by the user via this screen. This allows the unicast search to be performed even if the NSD search fails and the IP address necessary for the unicast search could not be obtained through the NSD search.
[0107] Furthermore, while the above describes a configuration in which both broadcast search and WFD search are performed when the result of S402 is YES, the system is not limited to this configuration. It is also possible for only one of the two—broadcast search or WFD search—to be performed when the result of S402 is YES. Specifically, for example, in a configuration where only broadcast search is performed when the result of S402 is YES, steps S405, S406, S408, and S409 are omitted from the flowchart in Figure 4. Also, specifically, in a configuration where only WFD search is performed when the result of S402 is YES, steps S403, S404, and S408 are omitted from the flowchart in Figure 4, and S409 is always executed after S407. Furthermore, while the above describes a configuration in which the flowchart in Figure 4 is executed as the process for searching for communication devices, and the flowcharts in Figures 6 and 8 are executed as the process for scanning, the system is not limited to this configuration. For example, the process of searching for a communication device may be the process shown in the flowchart of Figure 4, but the process for scanning may be a known process other than the process shown in the flowcharts of Figures 6 and 8. Alternatively, for example, the process of searching for a communication device may be the process shown in the flowchart of Figure 4, but the communication application may not have a scanning function and therefore no scanning process may be performed. Alternatively, for example, the process of searching for a communication device may be a known process other than the process shown in the flowchart of Figure 4, but the process for scanning may be the process shown in the flowcharts of Figures 6 and 8.
[0108] In the above example, the NSD API was executed in S411, which is the process in the flowchart of Figure 4, but the implementation is not limited to this form. For example, the NSD API may be executed at a time before the flowchart of Figure 4, such as when the communication application is launched. In this form, for example, a determination equivalent to S402 is performed at a time before the flowchart of Figure 4. If it is determined that the first environment exists, no special search processing is performed at that time, and if it is determined that it is not the first environment, the NSD API equivalent to S411 is executed. Then, S411 is omitted in the flowchart of Figure 4. In this form, the NSD result may be obtained before the flowchart of Figure 4. The NSD by the host OS may be executed continuously, and the NSD result may be obtained by the communication application each time the NSD result changes. Then, in S412, it is possible to obtain a new NSD result or to refer to an already obtained NSD result.
[0109] It goes without saying that the object of the present invention can also be achieved by supplying a recording medium containing program code for software that realizes the functions of the embodiments described above to a system or device, and by having the computer (or CPU or MPU) of that system or device read and execute the program code stored on the recording medium. In this case, the program code read from the storage medium itself realizes the functions of the embodiments described above, and the storage medium containing that program code constitutes the present invention.
[0110] For storing program code, storage media such as flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and DVDs can be used.
[0111] Furthermore, it goes without saying that the functionality of the aforementioned embodiment is realized not only by the execution of program code read by the computer, but also when the operating system (OS) running on the computer performs some or all of the actual processing based on the instructions of that program code, and the functionality of the aforementioned embodiment is realized through that processing.
[0112] Furthermore, the disclosure of this embodiment includes the following configuration. (Composition 1) A specified program, In the computer of the information processing device, A first execution step in which, based on the fact that the predetermined program is running on the host OS of the information processing device and the predetermined program is not running via a guest OS different from the host OS, the predetermined program executes a predetermined process for performing a search by Wi-Fi Direct (registered trademark), and based on the fact that the guest OS is running on the host OS and the predetermined program is running on the guest OS, the predetermined program controls the predetermined program so that it does not execute the predetermined process; If the predetermined process is executed, a second execution step is performed which involves executing a process based on the results of the Wi-Fi Direct search, A program characterized by causing the execution of a specific action. (Configuration 2) The program according to configuration 1, characterized in that the predetermined process includes a process that instructs the host OS to perform a search using Wi-Fi Direct. (Composition 3) A third execution step in which, based on the fact that the guest OS is running on the host OS and the predetermined program is running on the guest OS, the predetermined program performs a first process to search for a device on the network to which the information processing device belongs using a first method different from the Wi-Fi Direct search method, If the first process is executed, a fourth execution step is performed which involves executing a process based on the results of the search by the first method, The program according to configuration 1 or 2, characterized in that it further executes the following. (Composition 4) The program according to configuration 3, characterized in that the first process is a process that instructs the host OS to perform a search by the first method using a socket API (Application Programming Interface). (Composition 5) The program according to configuration 3 or 4, characterized in that the search performed by the first method is a broadcast search or a multicast search. (Composition 6) The program according to any one of configurations 3 to 5, characterized in that the processing based on the results of the search by the first method includes at least one of the processing of displaying the device found by the search by the first method and the processing of communicating with the device found by the search by the first method. (Composition 7) The processing based on the results of the Wi-Fi Direct search includes processing to display the devices discovered by the Wi-Fi Direct search, The processing based on the results of the search by the first method includes processing to display the devices found by the search by the first method, The program according to configuration 6, characterized in that the display of devices discovered by the Wi-Fi Direct search and devices discovered by the first method is controlled so that the devices discovered by the Wi-Fi Direct search and devices discovered by the first method can be distinguished from each other. (Composition 8) A fifth execution step in which, based on the fact that the guest OS is running on the host OS and the predetermined program is running on the guest OS, the predetermined program performs a second process to search for a device on the network to which the information processing device belongs using a second method different from the Wi-Fi Direct search method, If the second process is executed, a sixth execution step is performed which executes a process based on the results of the search by the second method, The program described in any of configurations 1 to 7 further executes the following: (Composition 9) The program according to configuration 8, characterized in that the second process is a process that instructs the guest OS to perform a search by the second method using an API different from the socket API (Application Programming Interface). (Composition 10) The program according to configuration 8 or 9, characterized in that the second process is a process that instructs the guest OS to perform a search by the second method using a Network Service Discovery API (Application Programming Interface). (Composition 11) The program according to any one of configurations 8 to 10, characterized in that the search by the second method is a search that utilizes the DNS-based service discovery protocol. (Composition 12) The program according to configuration 8, characterized in that the search by the second method is a unicast search. (Composition 13) If the guest OS is running on the host OS and the predetermined program is running on the guest OS, a seventh execution step is performed by the predetermined program to perform a third process after the second process is executed, for searching for at least one device found by the search by the second method using a third method that is different from the search method by Wi-Fi Direct and different from the second method. If the third process is performed, an eighth execution step is performed which involves processing based on the results of the search by the third method, A program according to any one of configurations 8 to 11, characterized in that it further executes the following: (Composition 14) The program according to configuration 13, characterized in that the third process is a process for sending packets for searching by the third method to all devices found by the search by the second method. (Composition 15) The program according to configuration 13, characterized in that the third process is a process for sending a packet for searching by the third method to a device selected by the user from among the devices found by the search by the second method. (Composition 16) The program according to any one of configurations 13 to 15, characterized in that the third process is a process that instructs the guest OS to perform a search by the third method using a socket API (Application Programming Interface). (Composition 17) The program according to any one of configurations 13 to 16, characterized in that the processing based on the results of the search by the third method includes at least one of the processing of displaying the device found by the search by the third method and the processing of communicating with the device found by the search by the third method. (Composition 18) The program according to any one of configurations 13 to 17, characterized in that the search by the third method is a unicast search. (Composition 19) The program according to any one of configurations 1 to 18, characterized in that it further causes the information processing device to perform a transmission step which performs a process to send a print job to a device that has been found by a search performed by the information processing device to perform printing. (Composition 20) A program according to any one of configurations 1 to 19, which is a job to perform a scan on a device discovered by a search performed by the information processing device, and further causes the program to perform a transmission step in which the predetermined program performs a process to send the scan job created by the predetermined program. (Composition 21) The process for sending the scan job is the process by which the predetermined program instructs the host OS to send the scan job. Based on the fact that the predetermined program is running on the host OS and not running via the guest OS, the predetermined program executes a process for sending the scan job. The program according to configuration 20, characterized in that, based on the fact that the guest OS is running on the host OS and the predetermined program is running on the guest OS, the predetermined program controls the process for sending the scan job so that it is not executed. (Composition 22) A seventh execution step in which, based on the fact that the guest OS is running on the host OS and the predetermined program is running on the guest OS, the predetermined program executes processing related to another program, which is different from the predetermined program and is a standard feature of the host OS that controls the scanning function, The program according to configuration 21, characterized by further execution. (Composition 23) The program according to configuration 22, characterized in that the processing relating to the other program is at least one of the following: processing prompting the user to use the other program; processing presenting an operation to start the other program; processing confirming with the user whether or not to start the other program; and processing starting the other program. (Composition 24) The program according to any one of configurations 1 to 23, characterized in that the processing based on the results of the Wi-Fi Direct search includes at least one of the following: the processing of displaying the devices discovered by the Wi-Fi Direct search; the processing of connecting to the devices discovered by the Wi-Fi Direct search; and the processing of communicating with the devices discovered by the Wi-Fi Direct search. (Composition 25) A control method for an information processing device having a predetermined program, A first execution step in which, based on the fact that the predetermined program is running on the host OS of the information processing device and the predetermined program is not running via a guest OS different from the host OS, the predetermined program executes a predetermined process for performing a search by Wi-Fi Direct (registered trademark), and based on the fact that the guest OS is running on the host OS and the predetermined program is running on the guest OS, the predetermined program controls the predetermined program so that it does not execute the predetermined process; If the predetermined process is executed, a second execution step is performed which involves executing a process based on the results of the Wi-Fi Direct search, A control method characterized by having the following features. (Composition 26) An information processing device having a predetermined program, A first execution means that, based on the fact that the predetermined program is running on the host OS of the information processing device and the predetermined program is not running via a guest OS different from the host OS, executes a predetermined process for performing a search by Wi-Fi Direct (registered trademark) using the predetermined program, and controls the predetermined program so that it does not execute the predetermined process based on the fact that the guest OS is running on the host OS and the predetermined program is running on the guest OS, When the predetermined process is executed, a second execution means executes a process based on the results of the Wi-Fi Direct search, An information processing device characterized by having the following features. [Explanation of Symbols]
[0113] 101 Information Processing Device 151 Communication equipment 131 Access Point
Claims
1. A predetermined program which is a program that can run on an operating system (OS), A computer of a first information processing device having a first operating environment that is on the host OS but not on the guest OS, A first reception step in which a predetermined operation is received from the user, A first execution step in which, based on the acceptance of the predetermined operation and the determination result obtained by the predetermined program corresponding to the predetermined program being operating in the first operating environment, the predetermined program executes a predetermined API (Application Programming Interface) to instruct the OS under the operation of the predetermined program to perform a search using Wi-Fi Direct®, When the predetermined API is executed, a second execution step is performed to execute processing based on the results of the search by Wi-Fi Direct, Make it run, A computer of a second information processing device having a second operating environment that is both a host OS and a guest OS, A second reception step in which the predetermined operation is received from the user, A third execution step in which, based on the acceptance of the predetermined operation and the determination result obtained by the predetermined program corresponding to the predetermined program being operating in the second operating environment, the predetermined program controls the predetermined API not to be executed by the predetermined program, and the predetermined program executes a first API to instruct the OS under the operation of the predetermined program to perform a search using a first method different from the Wi-Fi Direct search method, If the first API is executed, a fourth execution step is performed to perform processing based on the results of the search using the first method, A program characterized by causing the execution of a specific action.
2. The computer of the first information processing device, A fifth execution step in which, based on the acceptance of the predetermined operation and the determination obtained by the predetermined program that the predetermined program is operating in the first operating environment, the predetermined program executes a second API to instruct the OS under the operation of the predetermined program to perform a search for the devices on the network to which the first information processing device belongs using a second method different from the Wi-Fi Direct search method, When the second API is executed, a sixth execution step is performed to execute processing based on the results of the search by the second method, The program according to claim 1, characterized in that it further executes the following:
3. The program according to claim 2, characterized in that the execution of the second API is the execution of a process that instructs the OS under the operation of the predetermined program to perform a search by the second method via a socket API.
4. The program according to claim 2, characterized in that the search by the second method is a broadcast search or a multicast search.
5. The program according to claim 2, characterized in that the processing based on the results of the search by the second method includes at least one of the processing of displaying the device found by the search by the second method and the processing of communicating with the device found by the search by the second method.
6. The processing based on the results of the search by Wi-Fi Direct includes processing to display the devices discovered by the search by Wi-Fi Direct, The processing based on the results of the search by the second method includes processing to display the devices found by the search by the second method, The program according to claim 5, characterized in that the system is controlled to display devices discovered by the Wi-Fi Direct search and devices discovered by the second method search in such a way that the devices discovered by the Wi-Fi Direct search and devices discovered by the second method search can be distinguished from each other.
7. The program according to claim 1, characterized in that the execution of the first API is the execution of a process that instructs the OS under the operation of the predetermined program to perform a search by the first method using an API different from the socket API.
8. The program according to claim 7, characterized in that the execution of the first API is the execution of a process that instructs the OS under the operation of the predetermined program to perform a search by the first method using the Network Service Discovery API.
9. The program according to claim 1, characterized in that the search by the first method is a search that utilizes a DNS-based service discovery protocol.
10. The program according to claim 1, characterized in that the search by the first method is a unicast search.
11. The computer of the second information processing device, If the predetermined operation is accepted and a determination result corresponding to the predetermined program being in operation in the second operating environment is obtained by the determination performed by the predetermined program, then a seventh execution step is performed in which the predetermined program executes a third API to instruct the OS under the operation of the predetermined program to perform a search for at least one device found by the search by the first method using a third method that is different from the search method using Wi-Fi Direct and different from the first method, after the first API has been executed. If the third API is executed, an eighth execution step is performed to execute processing based on the results of the search by the third method, The program according to claim 1, characterized in that it further executes the following:
12. The program according to claim 11, characterized in that the execution of the third API is the execution of a process for sending a packet for the search by the third method to all devices found by the search by the first method.
13. The program according to claim 11, characterized in that the execution of the third API is the execution of a process for sending a packet for the search by the third method to a device selected by the user from among the devices found by the search by the first method.
14. The program according to claim 13, characterized in that the execution of the third API is the execution of a process that instructs the OS under the operation of the predetermined program to perform a search by the third method via a socket API.
15. The program according to claim 11, characterized in that the processing based on the results of the search by the third method includes at least one of the processing of displaying the device found by the search by the third method and the processing of communicating with the device found by the search by the third method.
16. The program according to claim 11, characterized in that the search by the third method is a unicast search.
17. The computer of the first information processing device, The first information processing device then performs a first transmission step, which involves sending a print job to a device discovered by the search performed by the first information processing device, to initiate printing. The computer of the second information processing device, The program according to claim 1, further characterized in that it causes the second information processing device to perform a second transmission step, which involves performing a process to send a print job to a device discovered by a search performed by the second information processing device, for the purpose of performing printing.
18. The computer of the first information processing device, The program according to claim 1, which is a job to perform a scan on a device discovered by a search performed by the first information processing device, and further performs a transmission step in which the predetermined program performs a process to send the scan job created by the predetermined program.
19. The process for sending the scan job is a process in which the predetermined program instructs the OS under the operation of the predetermined program to send the scan job. Based on the determination performed by the predetermined program, which yields a determination result corresponding to the predetermined program being in operation in the first operating environment, the predetermined program executes a process for sending the scan job. The computer of the second information processing device, The program according to claim 18, characterized in that, based on the determination performed by the predetermined program, a determination result corresponding to the predetermined program being in operation in the second operating environment is obtained, the predetermined program further causes the predetermined program to execute a second control step that controls the process for sending the scan job not to be executed.
20. The computer of the second information processing device, Based on the determination performed by the predetermined program, which yields a determination result corresponding to the predetermined program being in operation in the second operating environment, the predetermined program performs a ninth execution step in which it executes processing related to another program, which is a different program from the predetermined program and is a standard feature of the OS under which the predetermined program is running, and which controls the scanning function. The program according to claim 19, characterized in that it further executes the following.
21. The program according to claim 20, characterized in that the processing relating to the other program is at least one of the following: processing prompting the user to use the other program; processing presenting an operation for starting the other program; processing confirming with the user whether or not to start the other program; and processing starting the other program.
22. The program according to claim 1, characterized in that the processing based on the results of the search by Wi-Fi Direct includes at least one of the following: processing to display the devices found by the search by Wi-Fi Direct; processing to connect to the devices found by the search by Wi-Fi Direct; and processing to communicate with the devices found by the search by Wi-Fi Direct.
23. The program according to claim 1, characterized in that the predetermined determination is performed by the predetermined program executing a fourth API of the OS under which the predetermined program is running, or by the predetermined program obtaining predetermined information from the OS under which the predetermined program is running that corresponds to the environment in which the predetermined program is running.
24. A first information processing device having a predetermined program which is a program that can run on an operating system (OS), and having a first operating environment which is on a host OS but not on a guest OS, and a control method for a second information processing device having a second operating environment which is on both a host OS and a guest OS, A first reception step in which a predetermined operation is received from the user by the first information processing device, A first execution step in which, based on the acceptance of the predetermined operation and the determination result obtained by the predetermined program that the predetermined program is operating in the first operating environment, the predetermined program executes a predetermined API (Application Programming Interface) in the first information processing device to instruct the OS under the operation of the predetermined program to perform a search using Wi-Fi Direct®, When the predetermined API is executed, the first information processing device performs processing based on the results of the search by Wi-Fi Direct in the second execution step, A second reception step in which the second information processing device receives the predetermined operation from the user, A third execution step in which, based on the acceptance of the predetermined operation and the determination result obtained by the predetermined program that the predetermined program is operating in the second operating environment, the predetermined program controls the predetermined API not to be executed by the predetermined program, and the predetermined program executes a first API in the second information processing device to instruct the OS under the operation of the predetermined program to perform a search using a first method different from the Wi-Fi Direct search method, When the first API is executed, a fourth execution step is performed in the second information processing device to perform processing based on the results of the search by the first method, A control method characterized by having the following features.
25. A predetermined program which is a program that can run on an operating system (OS), A computer of a first information processing device having a first operating environment that is on the host OS but not on the guest OS, A first reception step in which a predetermined operation is received from the user, A first execution step in which, based on the acceptance of the predetermined operation and the determination result obtained by the predetermined program corresponding to the predetermined program being operating in the first operating environment, the predetermined program executes a predetermined API (Application Programming Interface) to instruct the OS under the operation of the predetermined program to perform a search using Wi-Fi Direct®, When the predetermined API is executed, a second execution step is performed to execute processing based on the results of the search by Wi-Fi Direct, Make it run, A computer of a second information processing device having a second operating environment that is both a host OS and a guest OS, A second reception step in which the predetermined operation is received from the user, A third execution step in which, based on the acceptance of the predetermined operation and the determination result obtained by the predetermined program corresponding to the predetermined program being operating in the second operating environment, the predetermined program controls the predetermined API not to be executed by the predetermined program, and the predetermined program executes a first API to instruct the OS under the operation of the predetermined program to perform a search using a first method different from the Wi-Fi Direct search method, If the first API is executed, a fourth execution step is performed to perform processing based on the results of the search using the first method, A storage medium for storing a program characterized by its ability to execute.
Citation Information
Patent Citations
Image forming device and method for transmitting information
JP2001216115A
Method for constructing safely managed virtual machine execution environment, program and computer apparatus
JP2013012018A
Communication device, control method of communication device, and program
JP2014216911A
Information processing device, control method, and program
JP2017010324A
Program set, reading result acquisition method, and information processing device
JP2021145184A