Program
The program addresses the issue of separate application and OS screens leading to unexpected user operations by controlling the application screen to prevent user interactions during connection establishment, ensuring proper processing execution and successful subsequent processes.
Patent Information
- Application Number
- JP2023175551
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-10
- Publication Date
- 2025-04-22
AI Technical Summary
When an application program transfers processing to another program and waits for processing of another program, depending on the OS configuration, the application screen and the screen of another program may be displayed as separate windows. This can lead to issues where unexpected user operations on the application screen can prevent proper execution of processing.
A program that operates on an OS, with a first operating environment on a host OS but not on a guest OS, instructs the host OS to establish a connection with a given access point based on a predetermined operation on a screen. It also instructs the guest OS to execute a process for establishing a connection, while controlling the application screen to prevent user operations during this process.
This solution allows the processing of the application program to be controlled according to the OS configuration, preventing unexpected user operations from interfering with the processing and ensuring that subsequent processes, such as network setup, can be started successfully.
Smart Images

Figure 2025065995000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an application program that runs on an OS. [Background technology]
[0002] Patent Document 1 describes that a warning screen is displayed to encourage students to stop watching the screen based on the time they are watching the screen, and an operation lock is initiated to prohibit operations. Patent Document 1 also describes that this makes it impossible to perform operations other than those related to the sleep state, allowing students to rest their eyes. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2023-26168 A Summary of the Invention [Problem to be solved by the invention]
[0004] When an application program transfers processing to another program and waits for the other program to finish processing, the application screen and the other program screen may be displayed as separate windows depending on the OS configuration. In such a case, if an unexpected user operation is received on the application screen, the application program cannot execute processing appropriately.
[0005] An object of the present invention is to provide a program for controlling the processing of an application program in accordance with the configuration of the OS. [Means for solving the problem]
[0006] In order to solve the above-mentioned problems, a program according to the present invention is a program operable on an operating system (OS), and causes a computer of a first information processing device having a first operating environment on a first OS operating as a host OS but not on a guest OS to execute a first instruction step of instructing the host OS to execute a first process for establishing a connection between a predetermined access point and the first information processing device based on a predetermined operation being performed on a predetermined screen displayed by the program, and a first communication step of executing communication via the connection between the predetermined access point and the first information processing device after a connection between the predetermined access point and the first information processing device is established as a result of the host OS being instructed to execute the first process, and The method is characterized in that the computer of a second information processing device having a second operating environment on an OS and on the guest OS executes a second instruction step of instructing the guest OS to execute a second process for establishing a connection between the specified access point and the second information processing device based on the specified operation being performed on the specified screen displayed by the program, a control step of executing a specified control so that a process based on the operation on the specified screen is not executed after the execution of the second process is instructed to the guest OS, and a second communication step of executing communication via the connection between the specified access point and the second information processing device after a connection between the specified access point and the second information processing device is established as a result of the execution of the second process being instructed to the host OS. Effect of the Invention
[0007] According to the present invention, the processing of an application program can be controlled in accordance with the configuration of the OS. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram showing a configuration including an information processing device and a communication device. [Diagram 2]FIG. 11 is a diagram showing a wireless connection sequence in the WFD mode. [Diagram 3] FIG. 2 is a diagram illustrating a software configuration of the information processing device. [Figure 4] FIG. 13 is a diagram showing a user interface screen. [Diagram 5] FIG. 13 is a diagram showing a user interface screen. [Figure 6] FIG. 13 is a diagram showing a user interface screen. [Figure 7] FIG. 13 is a diagram showing a user interface screen. [Figure 8] FIG. 13 is a diagram showing a user interface screen. [Figure 9] FIG. 1 is a sequence diagram between an application and an OS. [Figure 10] FIG. 1 is a sequence diagram between an application and an OS. [Figure 11] 13 is a flowchart showing a network setup process. [Figure 12] 13 is a flowchart showing the process of an application. [Figure 13] 13 is a flowchart showing the process of an application. [Figure 14] 13 is a flowchart showing the process of an application. [Figure 15] FIG. 2 is a diagram showing functional blocks included in an application. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, the embodiments will be described in detail with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims. Although the embodiments describe a number of features, not all of these features are essential to the invention, and the features may be combined in any manner. Furthermore, in the attached drawings, the same reference numbers are used for the same or similar configurations, and duplicated descriptions are omitted.
[0010] [First embodiment] An information processing device and a communication device included in the communication system of the present embodiment will be described. In the present embodiment, a smartphone is exemplified as the information processing device, but the present embodiment is not limited thereto, and various devices such as a mobile terminal, a notebook PC, a tablet terminal, a PDA (Personal Digital Assistant), and a digital camera can be applied. In addition, various devices that can perform wireless communication with the information processing device can be applied as the communication device. For example, if it is a printer, it can be applied to an inkjet printer, a full-color laser beam printer, a monochrome printer, and the like. 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, and the like. In addition, it can also be applied to multifunction machines having multiple functions such as a copying function, a FAX function, a printing function, and a scanner function. In the present embodiment, the communication device is a multifunction printer having a printing function, a scanner function, and the like.
[0011] <Hardware configuration of each device> First, the configuration of an information processing device included in the communication system of this embodiment and a communication device capable of communicating with the information processing device will be described with reference to the block diagram of Fig. 1. In addition, the following configuration will be described as an example in this embodiment, but the functions are not particularly limited to those shown in this diagram.
[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, an image capture device 111, etc. The input interface 102 is an interface for receiving data input and operation instructions from a user, and is composed of a physical keyboard, display buttons, a touch panel, etc. Note that the output interface 107 described below and the input interface 102 may have the same configuration, and the screen output and the reception of operations from the user may be performed by the same configuration.
[0013] The CPU 103 is a system control unit, and controls the entire information processing device 101. The ROM 104 stores fixed data such as a control program executed by the CPU 103, a data table, and an embedded operating system (hereinafter, referred to as OS) program. In this embodiment, each control program stored in the ROM 104 performs software execution control such as scheduling, task switching, and interrupt processing under the management of the embedded OS stored in the ROM 104. Note that in this embodiment, the OS held by the ROM 104 and running on the information processing device 101 is the Android (registered trademark) OS provided by Google Inc. or the Chrome (registered trademark) OS provided by Google Inc. If the OS running on the information processing device 101 is the Chrome OS, the ROM 104 also holds a virtual Android OS for running an application for the Android OS, which will be described later, on the information processing device 101.
[0014] The RAM 105 is composed of a static random access memory (SRAM) that requires a backup power source. Since the RAM 105 holds data using a primary battery (not shown) for data backup, it can store important data such as program control variables without volatilizing the data. The RAM 105 also has a memory area for storing setting information for the information processing device 101, management data for the information processing device 101, and the like. The RAM 105 is also used as the main memory and work memory for the CPU 103.
[0015] The external storage device 106 includes an application program (hereinafter, referred to as an application) having a function of communicating with the communication device 151. Specifically, the application is, for example, an application having a print function for causing the communication device 151 to execute printing, or a scan function for causing the communication device 151 to execute scanning. However, the application is not limited to this form, and may be an application having either a print function or a scan function (a print application or a scan application), or may be an application having other functions. For example, the application may be a setup application having a function of executing a network setup process for connecting the communication device 151 to an external access point. In this embodiment, the setup application is assumed to have all of the print function, the scan function, and the function of executing the network setup process. The external access point is, for example, the access point 131 described later. The network setup process corresponds to the process of FIG. 11 described later. The setup application of this embodiment will be described as an example of a setup application having function blocks 1501 to 1504 that execute the above-mentioned respective functions as shown in FIG. 15. In particular, the setup application of this embodiment has a function block 1505 that determines whether the information processing device 101 is in a first environment or a second environment, which will be described later. The setup application of this embodiment is not limited to the functions shown in FIG. 15, and has other function blocks as appropriate. The external storage device 106 is provided with various programs such as a print information generation program that generates print information that can be interpreted by the communication device 151, and an information transmission / reception control program that transmits and receives information to and from the communication device 151 connected via the communication unit 109. These programs may be included in the above-mentioned setup application, or may be configured separately from the setup application. The external storage device 106 also stores various information used by these programs. The external storage device 106 also stores image data obtained from other information processing devices or the Internet via the communication unit 109. In this embodiment, the setup application is an application for the Android OS.
[0016] The output interface 107 is an interface that controls the operation display unit 108 to display data and notify the status of the information processing device 101. The operation display unit 108 is composed of an LED (light emitting diode) and an LCD (liquid crystal display) and the like, and displays data and notifies the status of the information processing device 101. Note that a soft keyboard having keys such as numeric input keys, a mode setting key, a decision key, a cancel key, and a power key may be provided on the operation display unit 108 to accept input from a user via the operation display unit 108.
[0017] The communication unit 109 is configured to connect to a device such as the communication device 151 and execute data communication. For example, the communication unit 109 can be connected to an access point (not shown) in the communication device 151. When the communication unit 109 is connected to the access point in the communication device 151, the information processing device 101 and the communication device 151 can communicate with each other. Hereinafter, the access point may be expressed as AP. The communication unit 109 may directly communicate with the communication device 151 by wireless communication, or may communicate via an access point 131 that is located outside the information processing device 101 and outside the communication device 151. In this embodiment, the communication standard of the IEEE802.11 series is used as the wireless communication method. The communication standard of the IEEE802.11 series is Wi-Fi (registered trademark).
[0018] Moreover, the access point 131 may be, for example, a device such as a wireless LAN router. In this embodiment, a method in which the information processing device 101 and the communication device 151 are directly connected to each other without going through an external access point is called a direct connection method. Also, a method in which the information processing device 101 and the communication device 151 are connected to each other through an external access point 131 is called an infrastructure (hereinafter, referred to as infrastructure) connection method.
[0019] The short-range wireless communication unit 110 is configured to perform data communication by wirelessly connecting to a device such as the communication device 151 at a short distance, and performs communication by a communication method different from that of the communication unit 109. Examples of the short-range wireless communication method used by the short-range wireless communication unit 110 include Bluetooth (registered trademark) and Near Field Communication (NFC). Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 110 is connectable to a short-range wireless communication unit 157 in the communication device 151.
[0020] The photographing device 111 is a device that converts an image photographed by a photographing element into digital data. The digital data is temporarily stored in the RAM 105. After that, the digital data is converted into a predetermined image format by a program executed by the CPU 103, and is stored in the external storage device 106 as image data.
[0021] The communication device 151 includes a ROM 152, a RAM 153, a CPU 154, a print engine 155, a communication unit 156, a short-range wireless communication unit 157, an input interface 158, an output interface 159, an operation display unit 160, and a scan control unit 161. The communication device 151 can operate in a connection mode (communication mode) that is set by the connection mode being set.
[0022] The communication unit 156 is a component for the communication device 151 to communicate with other devices, and in this embodiment, the communication unit 156 communicates according to the IEEE802.11 series of communication standards. The communication unit 156 has an access point for connecting to devices such as the information processing device 101 as an access point inside the communication device 151. The access point can be connected to the communication unit 109 of the information processing device 101. The communication unit 156 may directly communicate with the information processing device 101 by wireless communication, or may communicate via the access point 131. The communication unit 156 may include hardware that functions as an access point, or may operate as an access point by software for functioning as an access point. In this embodiment, the communication unit 156 and the short-range wireless communication unit 157 are realized by one wireless chip. That is, in this embodiment, a combo chip that supports both the communication function of the IEEE802.11 series of communication standards and the communication function by the short-range wireless communication method is used. However, the present invention is not limited to this embodiment, and the communication unit 156 and the short-range wireless communication unit 157 may be realized by separate wireless chips.
[0023] The RAM 153 is composed of a DRAM or the like that requires a backup power source. Since the RAM 153 holds data by being supplied with a data backup power source (not shown), it can store important data such as program control variables without volatilizing the data. The RAM 153 is also used as the main memory and work memory of the CPU 154, and operates as a receiving buffer for temporarily storing print information received from the information processing device 101 or the like, and stores various types of information.
[0024] ROM 152 stores fixed data such as control programs, data tables, and OS programs executed by CPU 154. In this embodiment, each control program stored in ROM 152 performs software execution control such as scheduling, task switching, and interrupt processing under the management of an embedded OS stored in ROM 152. ROM 152 also has a memory area for storing data that needs to be held even when power is not supplied, such as setting information for communication device 151 and management data for communication device 151.
[0025] The CPU 154 is a system control unit, and controls the entire communication device 151. Based on the information stored in the print engine 155 and the RAM 153 and the print job received from the information processing device 101, etc., an image is formed on a recording medium such as paper using a recording agent such as ink, and the print result is output. At this time, the print job transmitted from the information processing device 101, etc., has a large amount of transmission data and requires high-speed communication, so it is received via a communication unit 156 that can communicate faster than the short-range wireless communication unit 157.
[0026] The short-range wireless communication unit 157 is a component for wirelessly connecting to a device such as the information processing device 101 at a short distance and executing data communication, and performs communication by a communication method different from that of the communication unit 156. Examples of the short-range wireless communication method used by the short-range wireless communication unit 157 include Bluetooth (registered trademark) and NFC. Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 157 is connectable to the short-range wireless communication unit 110.
[0027] The input interface 158 is an interface for receiving data input and operation instructions from the user, and is composed of a physical keyboard, buttons, a touch panel, etc. Note that the output interface 159 described below and the input interface 158 may have the same configuration, and may output the screen and receive operations from the user with the same configuration. The output interface 159 is an interface that controls the operation display unit 160 to display data and notify the status of the communication device 151.
[0028] The operation display unit 160 is composed of a display unit such as an LED (light emitting diode) or an LCD (liquid crystal display), and displays data and notifies the state of the communication device 151. Note that a soft keyboard having keys such as numeric input keys, a mode setting key, a decision key, a cancel key, and a power key may be provided on the operation display unit 160 to accept input from the user via the operation display unit 160.
[0029] The scan control unit 161 includes an image sensor unit (reading unit) that scans an original placed on a document tray or an automatic document feeder (ADF) (not shown). The image sensor unit includes a light source that irradiates the original with light and an image sensor in which elements that read the reflected light and perform photoelectric conversion are arranged. The scan control unit 161 acquires image data by A / D (analog / digital) conversion of an analog electrical signal obtained by reading the original with the image sensor unit. The scan control unit 161 includes a circuit that performs DMA (direct memory access) transfer to store the acquired image data in the RAM 153.
[0030] <About the direct connection method> A direct connection refers to a form in which devices are directly (i.e., peer-to-peer) wirelessly connected to each other without going through an external device such as the access point 131. The communication device 151 can operate in a mode for communicating via a direct connection (direct connection mode) as one of the connection modes. In Wi-Fi communication, there are multiple modes for communicating via a direct connection, such as a software AP mode and a Wi-Fi Direct (registered trademark) mode. Wi-Fi Direct is hereinafter abbreviated as WFD.
[0031] A mode in which a direct connection is performed by WFD is called a WFD mode. WFD is a standard established by the Wi-Fi Alliance, and is included in the IEEE802.11 series of communication standards. In the WFD mode, after a device to be a communication partner is searched for by device search information, the roles of a P2P group owner (GO) and a P2P client are determined, and the remaining wireless connection processing is performed. The group owner corresponds to a Wi-Fi parent station (parent device), and the client corresponds to a Wi-Fi child station (child device). This role determination corresponds to, for example, GO Negotiation in P2P. Note that in the WFD mode before the role determination, the communication device 151 is in a state of neither a parent station nor a child station. Specifically, first, one device issues device search information between devices to communicate with each other, and searches for a device to connect to in WFD mode. When the other device to be a communication partner is searched for, the two devices confirm information about services and functions that can be provided by each other's devices. Note that this device provision information confirmation is optional and not required. This device provision information confirmation phase corresponds to, for example, Provision Discovery of P2P. Next, by mutually confirming this device provision information, it is determined which one will be the P2P client and which one will be the P2P group owner as their roles. Next, when the client and the group owner are determined, parameters for performing communication by WFD are exchanged between them. Based on the exchanged parameters, the remaining wireless connection processing and IP connection processing are performed between the P2P client and the group owner. Note that in the WFD mode, the communication device 151 may always operate as a GO without executing the above-mentioned GO Negotiation. That is, the communication device 151 may operate in a WFD mode that is an autonomous GO mode. Also, the state in which the communication device 151 operates in the WFD mode is, for example, a state in which the communication device 151 operates as a GO even though a WFD connection is not established, or a state in which a WFD connection is established and the communication device 151 operates as a GO.
[0032] In the software AP mode, between devices that communicate (for example, the information processing device 101 and the communication device 151), one device (for example, the information processing device 101) becomes a client that plays a role of requesting various services. The other device realizes the function of an access point in Wi-Fi by software settings. The software AP corresponds to a parent station of Wi-Fi, and the client corresponds to a child station of Wi-Fi. In the software AP mode, the client searches for a device that will become a software AP using device search information. When the software AP is searched, the remaining wireless connection processing (establishment of a wireless connection, etc.) between the client and the software AP is performed, and then the IP connection processing (assignment of an IP address, etc.) is performed. Note that commands and parameters transmitted and received when realizing a wireless connection between the client and the software AP may be those specified in the Wi-Fi standard, and therefore a description thereof will be omitted here.
[0033] In this embodiment, when the communication device 151 establishes and maintains a direct connection, it operates as a master station in the network to which the communication device 151 belongs. The master station is a device that constructs a wireless network and provides a slave station with parameters used for connecting to the wireless network. The parameters used for connecting to the wireless network are, for example, parameters related to a channel used by the master station. By receiving the parameters, the slave station connects to the wireless network constructed by the master station using the channel used by the master station. In the direct connection mode, the communication device 151 operates as a master station, so that the communication device 151 can determine which frequency band and which channel to use for communication in the direct connection mode. In this embodiment, the communication device 151 is capable of using a channel corresponding to a 2.4 GHz frequency band and a channel corresponding to a 5 GHz frequency band for communication in the direct connection mode. Then, which frequency band to use (i.e., which channel of the frequency band to use) can be arbitrarily set by a user through a setting on a screen displayed by the communication device 151. However, in this embodiment, even if 5 GHz is selected on the screen displayed by the communication device 151, the communication device 151 does not use a channel corresponding to the DFS (Dynamic Frequency Selection) band in the 5 GHz frequency band for communication in the direct connection mode. In other words, the communication device 151 uses only channels corresponding to frequency bands other than the DFS band in the 5 GHz frequency band for communication in the direct connection mode. Note that, when a channel corresponding to the DFS band is being used and a radar wave in the frequency band corresponding to the channel is detected, the channel currently being used must be changed. Such a frequency band in which a channel change may occur due to the detection of a radar wave is called a DFS band. Note that, for example, when a wireless chip compatible with the DFS function is used, a channel corresponding to the DFS (Dynamic Frequency Selection) band in the 5 GHz frequency band may be available for communication in the direct connection mode.
[0034] 2 is a diagram showing a wireless connection sequence in WFD mode. Note that the processing executed by each device in this sequence is realized by the CPU of each device reading various programs stored in a memory such as a ROM of each device into a RAM and executing them. Also, this processing is assumed to be started when a predetermined operation for establishing a connection by WFD is received from a user in a state in which each device is running a predetermined application for executing a WFD function. Note that an example of the predetermined operation for establishing a connection by WFD is an operation of selecting the "Enable / Disable Direct Connection Mode" button. Note that this operation corresponds to an operation for starting the direct connection mode.
[0035] 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.
[0036] Next, in S202, if the received device search information is information that has been transmitted using the same channel as the channel currently being used for the direct connection mode, the communication device 151 transmits a device search 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. Note that after the information processing device 101 discovers the communication device 151, a process of exchanging information about services and functions that each device can provide may be performed between the devices.
[0037] Next, in S203, GO Negotiation is executed between the information processing device 101 and the communication device 151. Once the client and the group owner are determined, parameters for communication by WFD are exchanged between them. 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 described above, the communication device 151 may operate in the Autonomous GO mode, so that the GO Negotiation is omitted and the communication device 151 always operates as the GO. Also, when the communication device 151 operates as the 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 the GO can select which frequency band to use, 5 GHz or 2.4 GHz, and which channel to use from among the channels corresponding to the determined frequency band.
[0038] Thereafter, in S204, each device executes a process of establishing a wireless connection by WFD based on the exchanged parameters and on the channel determined by the GO.
[0039] <About infrastructure connection method> The infrastructure connection is a connection form in which devices that communicate with each other (for example, the information processing device 101 and the communication device 151) are connected to an access point (for example, the access point 131) that manages a network of the devices, and the devices communicate with each other via the access point. The communication device 151 can also operate in a mode for communicating via an infrastructure connection (infrastructure connection mode) as one of the connection modes.
[0040] In infrastructure connections, each device searches for an access point using device search information. Once an access point is found, the remaining wireless connection processing (establishment of a wireless connection, etc.) is carried out between the device and the access point, and then IP connection processing (assignment of an IP address, etc.) is carried out. Note that commands and parameters sent and received when establishing a wireless connection between a device and an access point can be those specified in the Wi-Fi standard, and so a description thereof will be omitted here.
[0041] In this embodiment, when the communication device 151 operates in the infrastructure connection mode, the access point 131 operates as a parent device, and the communication device 151 operates as a child device. That is, in this embodiment, the infrastructure connection refers to a connection between the communication device 151 operating as a child device and a device operating as a parent device. When the communication device 151 has established an infrastructure connection and the information processing device 101 has also established an infrastructure connection with the access point 131, communication between the communication device 151 and the information processing device 101 via the access point 131 is possible. Since the channel used for communication in the infrastructure connection is determined by the access point 131, the communication device 151 executes communication in the infrastructure connection using the channel determined by the access point 131. In this embodiment, the communication device 151 is assumed to be able to use a channel corresponding to the 2.4 GHz frequency band and a channel corresponding to the 5 GHz frequency band for communication in the infrastructure connection. Note that the communication device 151 is also able to use a channel corresponding to the DFS band in the 5 GHz frequency band for communication in the infrastructure connection. In order for the information processing device 101 to communicate with the communication device 151 via the access point 131, the information processing device 101 needs to recognize that the communication device 151 belongs to a network formed by the access point 131 and to which the information processing device 101 belongs. In addition, when the information processing device 101 and the communication device 151 are connected to the access point 131 by an infrastructure connection, it becomes possible for the communication device 151 to be discovered by a broadcast executed by the information processing device 101.
[0042] <About network setup mode> The communication device 151 can operate in a network setup mode. A trigger for the communication device 151 to start operating in the network setup mode may be, for example, a user pressing a network setup mode button, or the communication device 151 being started (powered ON) for the first time after arrival. The network setup mode button may be a hardware (physical) button provided in the communication device 151, or may be a software button displayed on the display unit 158 by the communication device 151.
[0043] When the communication device 151 starts operating in the network setup mode, it enables Wi-Fi communication. Specifically, the communication device 151 enables an internal AP (connection setting AP) of the communication device 151, which is dedicated to the network setup mode, as an enabling process of Wi-Fi communication. This allows the communication device 151 to establish a direct connection with the information processing device 101 by Wi-Fi. It is assumed that connection information (SSID (Service Set Identifier) and password) for connecting to the connection setting AP is held in advance in a setup application installed in the information processing device 101, and the information processing device 101 recognizes the connection information for connecting to the connection setting AP in advance. Therefore, unlike the connection information of the AP enabled in the direct connection mode, it is assumed that the connection information for connecting to the connection setting AP cannot be arbitrarily changed by the user. Note that in the network setup mode, the communication device 151 may connect to the information processing device 101 by Wi-Fi Direct (WFD) instead of normal Wi-Fi. That is, the communication device 151 may operate as a Group Owner and receive a setting command from the information processing device 101 through communication by WFD. Also, in the network setup mode, the communication device 151 may connect to the information processing device 101 through Bluetooth. Here, Bluetooth includes Bluetooth Classic and Bluetooth Low Energy (BLE). That is, for example, the communication device 151 may operate as a slave device in BLE in the network setup mode and receive a setting command from the information processing device 101 through communication by BLE. Also, in the network setup mode, the communication device 151 may be capable of executing both network setup by Wi-Fi and network setup by BLE. That is, when the communication device 151 starts operation in the network setup mode, it may enable both Wi-Fi communication and BLE communication.Specifically, when the communication device 151 starts operating in the network setup mode, it may perform both enabling the connection setting AP and enabling the advertising state, which is a state in which advertising information is sent via BLE and BLE connection is possible.
[0044] When the communication device 151 operates in the network setup mode, it controls the communication unit 156 to operate as a network setup access point (connection setting AP, setup access point) that is valid only while the communication device 151 operates in the network setup mode. The setup access point is an access point different from the access point that is enabled in the soft AP mode described above. The SSID of the setup access point includes a predetermined character string that can be recognized by the setup application of the information processing device 101.
[0045] The communication device 151 operating in the network setup mode uses a predetermined communication protocol (setup communication protocol) in communication with the information processing device 101 connected to the setup access point. Specifically, the setup communication protocol is, for example, SNMP (Simple Network Management Protocol).
[0046] After starting operation in the network setup mode, when a predetermined time has elapsed, the communication device 151 stops operation in the network setup mode and disables the setup access point. In addition, when connection information for connecting to the access point 131 and an instruction to change the wireless communication operation mode are received from the information processing device 101 during the network setup mode, the setup access point is also disabled. In addition, the setup access point is assumed to be an access point that does not require a password for connection. Note that the setup access point may be an access point that requires a password. In this case, the password used to connect to the setup access point is assumed to be a fixed password (that cannot be changed by the user) that is known in advance by the setup application.
[0047] <Software configuration of the information processing device 101> Next, the software configuration of the information processing device 101 in this embodiment will be described. FIG. 3(a) is an example of the software configuration of the information processing device 101 in the case where the host OS operating on the information processing device 101 is the Android OS (first OS). In this embodiment, an application for the Android OS operates on the Android OS. In this embodiment, the software configuration of the information processing device 101 does not include the Chrome OS. In this embodiment, an environment in which the OS operating on the lowest layer of the information processing device 101 is the Android OS (not the Chrome OS) is referred to as the first environment below. Specifically, the first environment is, for example, an environment in which the information processing device 101 is equipped with a host OS but not with a guest OS, and an application operates on the host OS. Also, for example, the first environment is, for example, an environment in which the information processing device 101 is equipped with both the host OS and the guest OS, but the application operating in this embodiment operates on the host OS and does not go through the guest OS (does not operate on the guest OS).
[0048] FIG. 3(b) is an example of a software configuration of the information processing device 101 in the case where the host OS operating on the information processing device 101 is the Chrome OS (second OS). In this embodiment, a virtual Android OS, which is a virtual OS, operates on the Chrome OS. Then, an application for the Android OS operates on the virtual Android OS. As in this embodiment, the OS operating on the lowest layer of the information processing device 101 is the Chrome OS, and an environment in which the virtual Android OS operates on the Chrome OS is hereinafter referred to as a second environment. Note that in this embodiment, the virtual OS is a program for operating an application that is not compatible with the host OS on the host OS, and is a guest OS. Note that the virtual OS may be the entire existing OS such as the Android OS, may be an existing OS with some modules omitted, or may be a program created separately from the existing OS. In addition, the virtual OS is realized by a virtualization technology such as a Virtual Machine method or a container method.
[0049] The following describes the issues that arise when running an Android OS application in the second environment.
[0050] There are cases where the process is transferred from an application for the Android OS to other software. For example, assume that the application for the Android OS is a setup application for performing network setup, and the process is transferred to the OS in order to connect the information processing apparatus 101 to an external access point. The external access point here corresponds to, for example, an access point inside the printer in the network setup mode.
[0051] In the above-mentioned first environment, it is assumed that a screen displayed by a setup application (hereinafter, application screen) is displayed in the foreground. When the process is transferred to the OS, a screen displayed by an OS standard application (hereinafter, OS screen) is displayed so as to overlap in front of the application screen window. That is, the OS screen is displayed in the foreground, and the application screen is displayed in the background. Note that the OS screen may not be a screen displayed on the entire display of the information processing device 101, but may be a dialog displayed on a part of the display. Also, the OS standard application is an OS standard application that is pre-installed in the information processing device 101 when the information processing device 101 arrives, similar to the host OS. In other words, the OS standard application is an application that is not installed by a store application, which is an application for installing various applications in the information processing device 101 via the Internet. Note that the OS standard application can also be considered as a part of the host OS. When the display of the OS screen ends in this state, the application screen is displayed in the foreground again, and the OS notifies the application that the display of the application screen has returned to the foreground. Then, based on the return of the display of the application screen from the background to the foreground, the setup application executes a process to determine the external access point to which the information processing device 101 is connected, and then executes a network setup process for the printer.
[0052] On the other hand, suppose that an application screen is displayed in the foreground in the second environment. The second environment is an environment that supports a multi-window function. The multi-window function is a function that displays multiple windows in parallel (simultaneously) on the screen of the information processing device 101. Therefore, if the process is transferred to the OS here, the OS screen may be displayed by a window that is different from the window that displays the application screen and is displayed in a different area from the area in which the window that displays the application screen is displayed. That is, even if the OS screen is displayed based on a user operation on the application screen, the display of the application screen may remain in the foreground and may not transition to the background. Therefore, even if the display of the OS screen is finished, the OS does not notify the setup application that it has returned to the foreground. Therefore, the setup application does not receive a notification from the OS and cannot start a subsequent predetermined process, for example, a network setup process.
[0053] Therefore, in this embodiment, when an application for Android OS transfers processing to the OS and executes a predetermined process based on information acquired from the OS, the setup application determines whether it is operating in the first environment or the second environment. If it is determined that the setup application is operating in the second environment, the setup application queries the OS at a predetermined time interval for information to be used in the subsequent predetermined process without waiting for the above notification from the OS. The setup application then executes a process to determine an external access point to which the information processing device 101 is connected. With this configuration, the subsequent predetermined process, for example, a network setup process, can be started even in the second environment.
[0054] The problem will now be explained further.
[0055] As described above, when processing is transferred to the OS in a state where an application screen is displayed in the foreground in the second environment, the OS screen is displayed in a window different from the window displaying the application screen, and the application screen remains in the foreground. That is, this is a state where the user can perform operations on not only the OS screen but also the application screen. On the other hand, when processing is transferred to the OS in a state where an application screen is displayed in the foreground in the first environment, the OS screen becomes the foreground and the application screen becomes the background. This is a state where the user cannot perform operations on the application screen.
[0056] The setup app is not designed to accept user operations on the app screen when it is waiting for the results of processing by the OS after processing has been transferred to the OS. Therefore, if an unexpected user operation is received at that time, the setup app will be released from the "waiting for processing by the OS" state. As a result, it will not be possible to start subsequent processing, such as network setup processing.
[0057] Therefore, in this embodiment, when an application for Android OS transfers processing to the OS and executes a predetermined process based on information obtained from the OS, it is determined whether the setup application is operating in the first environment or the second environment. If it is determined that the setup application is operating in the second environment, the setup application controls the display of the application screen so that it cannot accept user operations after transferring processing to the OS. With this configuration, it is possible to prevent a situation in which it becomes impossible to start a subsequent predetermined process, such as a network setup process, due to the acceptance of an unexpected user operation.
[0058] First, a case where the information processing device 101 is in the above-mentioned first environment will be described. Fig. 9 is a diagram showing a sequence process between a setup application and a host OS in the first environment. The host OS here is, for example, the Android OS in Fig. 3(a).
[0059] In S101, the setup application displays a user operation instruction screen. The user operation instruction screen is a screen displayed by the setup application. In this embodiment, the setup application is an application for performing network setup for the communication device 151. FIG. 4(a) is a diagram showing an example of a user operation instruction screen displayed in S101. The user operation instruction screen displays an operation procedure 402 for shifting the state of the communication device 151 to the network setup mode. For example, as shown in FIG. 4(a), a message is displayed that prompts the user to press and hold a button on the communication device 151 for three seconds. When the button for shifting to the network setup mode is operated according to the operation procedure, the communication device 151 shifts to the network setup mode. Specifically, for example, the CPU 154 operates the communication unit 156 as a setup access point that is valid only when the communication unit 156 is operating in the network setup mode. After operating according to the operation procedure 402, the user presses the next button 401. Furthermore, when the setup application displays the user operation instruction screen in S101, the setup application internally stores connection information (such as SSID) for the currently connected external access point.
[0060] When the user presses the Next button 401 on the user operation instruction screen in Fig. 4(a), the setup application instructs the host OS to execute a search for an external access point (external AP) in S102. When the execution of a search for an external AP is instructed, a search in progress screen in Fig. 4(b) is displayed on the operation display unit 108.
[0061] In S103, when the host OS receives an instruction to search for an external AP from the setup application, the host OS executes a search for surrounding external APs. In S104, the host OS notifies the setup application of information (search result) of the external AP found as a result of the search for the external AP. The information on the external AP is, for example, an SSID. In S104, for example, information on the first external AP found is notified to the setup application.
[0062] In S105, the setup application judges whether or not a specific AP has been found based on the search result notified from the host OS. Here, the specific AP is a setup access point, and the setup application recognizes in advance a character string that identifies the setup access point. Here, the description will be given assuming that the specific AP has been found.
[0063] In S106, the setup application displays an operation guidance screen that displays guidance on the operation to be performed by the user on the OS screen that is displayed next. FIG. 4(c) is a diagram showing an example of the operation guidance screen displayed in S106. As shown in FIG. 4(c), the operation guidance screen displays "When the printer is detected on the next screen, perform the connection operation," and displays a dialogue including a message 403 that prompts the user to perform an operation on the OS screen. The dialogue including the message 403 is displayed in a window that displays the application screen. Therefore, although not shown, the application screen that was displayed immediately before (for example, the screen of FIG. 4(a) or FIG. 4(b)) is displayed in a light color behind the dialogue including the message 403. In addition, the dialogue including the message 403 is not a dialogue displayed via an application standard for the OS, but is a dialogue displayed by the setup application. In other words, the wording displayed as the message 403 is determined by the setup application. In S107, the setup application accepts pressing of the Next button 404 on the operation guidance screen, and in S108, instructs the host OS to display the OS screen. Then, in S109, the host OS uses a standard OS application to display an OS screen that can accept an instruction to connect to the discovered external AP. Fig. 4(d) is a diagram showing an example of the OS screen displayed in S109. The OS screen is displayed in the window that displays the application screen.
[0064] At the time of S110, the application screen is in the background, and the OS screen is in the foreground. Specifically, for example, the OS screen is displayed so as to overlap the front of the application screen window, and the user cannot operate the application screen. As shown in FIG. 4(d), the OS screen displays a message 405 including identification information of the discovered external AP. The identification information is, for example, an SSID. Also, a connect button 406 and a cancel button 407 are displayed on the OS screen, and can be pressed by the user. Also, as described above, the OS screen is a dialog displayed by an application standard for the OS. In other words, the wording displayed as the message 405 and the wording displayed on the connect button 406 and the cancel button 407 are determined by the application standard for the OS.
[0065] In S111, the host OS accepts pressing of the connect button 406 on the OS screen. In S112, the host OS disconnects the currently connected external AP, connects to the external AP for which a connection instruction was accepted on the OS screen, and in S113, ends display of the OS screen.
[0066] Meanwhile, in S114, the setup application judges whether the application itself is running in the first environment or the second environment. Specifically, for example, the setup application uses an Application Programming Interface (API) to inquire about the operating environment of the host OS, and makes the judgment based on the result of the inquiry. Since the first environment is assumed here, it is judged that the setup application is running in the first environment. In FIG. 9, the judgment in S114 is shown as being executed after S110, but it may be executed before S110.
[0067] When the display of the OS screen ends in S113, the host OS returns the application screen to the foreground in S115. Then, in S116, the host OS notifies the setup application that the application screen has returned to the foreground.
[0068] In S117, the setup application inquires of the host OS about the connection status of the information processing device 101 to the external AP based on the notification that the application screen has returned to the foreground. In S118, the host OS transmits the connection status to the external AP to the setup application in response to the inquiry in S117. The connection status to the external AP is information about the external AP to which the information processing device 101 is connected (hereinafter, connected AP), for example, an SSID. Furthermore, when there is no connected AP, information indicating that there is no connected AP is transmitted as the connection status.
[0069] In S119, the setup application determines whether the connecting AP is a predetermined AP. Here, it is determined whether the connecting AP is a setup access point. The setup application performs the determination in S119 based on the SSID of the known setup access point. If it is determined that the connecting AP is a setup access point, in S120, the setup application executes a network setup process for the communication device 151. At that time, the application screen transitions to a screen for the network setup process. The network setup process will be described later with reference to FIG. 11.
[0070] As described above, in this embodiment, when the information processing device 101 is in the first environment, the setup application determines whether or not the external AP connected to the information processing device 101 is a setup access point based on a notification from the host OS that the application screen has become the foreground. More specifically, when the setup application receives a notification from the host OS that the application screen has become the foreground, the setup application queries the host OS for the SSID of the external AP connected to the information processing device 101. Then, when it is determined that the external AP connected to the information processing device 101 is a setup access point, the setup application executes a network setup process for the communication device 151.
[0071] Next, a case where the information processing device 101 is in the above-mentioned second environment will be described. Fig. 10 is a diagram showing a sequence process between a setup application and a guest OS in the second environment. The guest OS here is, for example, the virtual Android OS in Fig. 3(b).
[0072] S201 to S205 are the same as those in S101 to S105 of FIG. 9, so the description thereof will be omitted.
[0073] In S206, the setup application displays an operation guidance screen that provides guidance on the operation to be performed by the user on the OS screen to be displayed next. FIG. 5B is a diagram showing an example of the operation guidance screen displayed in S206. As shown in FIG. 5B, the operation guidance screen displays guidance 503 saying "When the printer is detected on the next screen, perform the connection operation" and a "Next" button 504. Note that the application screen that was displayed immediately before is displayed in a faint manner behind the window that displays the guidance 503. In S207, the setup application accepts pressing of the Next button 504 on the operation guidance screen, and in S208 instructs the guest OS to display a screen.
[0074] In S211, the guest OS displays an OS screen capable of accepting an instruction to connect to the discovered external AP by an OS standard application. When the information processing device 101 is in the second environment, the OS screen is displayed in a window different from the application screen (here, an operation guidance screen) in parallel with the application screen window. An OS screen 803 in FIG. 8(a) is a diagram showing an example of an OS screen displayed in S211. As shown in FIG. 8(a), a message including identification information of the discovered external AP is displayed on the OS screen 803. The identification information is, for example, an SSID. In addition, a connect button 804 and a cancel button 805 are displayed on the OS screen 803 and can be pressed by the user. In S216, when the guest OS accepts pressing of the connect button 804 on the OS screen 803, in S217, the guest OS disconnects the currently connected external AP, connects to the external AP for which a connection instruction has been accepted on the OS screen, and ends the display of the OS screen 803 in S218.
[0075] Meanwhile, in S209, the setup application determines whether the application itself is running in the first environment or the second environment. Specifically, for example, the setup application uses an API to inquire about the operating environment of the guest OS, and makes a determination based on the result of the inquiry. Since it is assumed here that the operating environment is the second environment, it is determined that the setup application is running in the second environment.
[0076] In S212, the setup application controls the application screen being displayed so that user operations cannot be accepted. The application screen being displayed at this time is specifically an operation guidance screen. Hereinafter, such control is also referred to as locking the screen. FIGS. 8(a) to 8(c) are diagrams showing an example of controlling the display mode of the application screen. Specifically, for example, as shown in FIG. 8(a), a dialog 801 is displayed on the operation guidance screen by the setup application, and the user is guided to an operation to be performed on a screen other than the application screen. For example, a dialog presenting an operation to be performed on an OS screen displayed in a window different from the application screen, such as "Please tap 'Connect' on the displayed screen", is displayed in front of the window of the application screen, thereby making it impossible to accept user operations on the operation guidance screen. Note that even if an operation is performed on the dialog 801, the setup application does not execute any particular process. For example, as shown in FIG. 8(b), the color of the entire application screen 806 may be changed (for example, grayed out) to indicate that user operations are not possible. 8(c), buttons 807 and 808 on the application screen that were displayed immediately before guidance 503 may be changed in color (e.g., grayed out) to make it impossible to accept user operations. For example, button 808 is a link to display a Web manual, and is not originally intended to be pressed by the user while the application is waiting for processing by the OS.
[0077] When the information processing device 101 is in the first environment, the OS screen is displayed so as to overlap the application screen, and the user cannot operate the application screen. On the other hand, when the information processing device 101 is in the second environment, the OS screen is displayed in a window different from the window displaying the application screen, and the window displaying the application screen and the window displaying the OS screen are displayed in parallel. Therefore, the user can press any button on the application screen, even though the OS screen is displayed and an operation should be performed on the OS screen. However, the setup application is not configured to accept a user operation when the OS screen is displayed and waiting for a connection to an external AP (i.e., waiting for processing by the OS). Therefore, if an unexpected user operation is accepted at that timing, the state of the setup application "waiting for a connection to an external AP" is released, and the subsequent network setup process cannot be started. Therefore, in this embodiment, the display control is performed so that the application screen cannot accept a user operation, thereby preventing an unexpected user operation from being accepted.
[0078] The control executed in S212 is not limited to the above-mentioned form. For example, the control may be such that the dialog 801 is not displayed and the operation guidance screen remains displayed in the foreground, but the setup application does not execute any processing even if an operation is performed on the operation guidance screen. Specifically, for example, the control may be such that the setup application does not execute any processing even if the "Next" button 504 is pressed. Also, for example, the control may be such that the dialog 801 is not displayed, but the "Next" button 504 is grayed out, so that a user operation on the operation guidance screen cannot be accepted.
[0079] In S213, the setup application inquires of the guest OS about the connection status of the information processing device 101 to the external AP. In S214, the guest OS transmits the connection status to the external AP to the setup application in response to the inquiry in S213. The connection status to the external AP is information on what external AP (connection AP) the information processing device 101 is connected to, for example, an SSID. If there is no connection AP, information indicating that there is no connection AP is transmitted as the connection status. In S215, the setup application determines whether the connection AP is a predetermined AP. Here, it is determined whether the connection AP is a setup access point. The setup application performs the determination in S215 based on the SSID of the known setup access point. Note that in S214, if there is no connection AP, information indicating that is transmitted to the setup application.
[0080] In this embodiment, the processes of S213 to S215 are performed at a predetermined time interval. Specifically, for example, the processes of S213 to S215 are performed at 100 ms intervals for a specific time (for example, 30 seconds). In this way, in the second environment, the notification of S116 in Fig. 9 is not sent from the guest OS, so the inquiry of S213 is repeatedly made to the guest OS.
[0081] FIG. 10 shows that the processes of S213 to S215 are performed before S216, between S216 and S217, and between S217 and S218. If the processes of S213 to S215 are performed before S216, the information processing device 101 is not yet connected to the external AP in S215, so it is determined that the connecting AP is not a setup access point. In this case, the processes of S213 to S215 are repeated. If the processes of S213 to S215 are performed between S216 and S217, the information processing device 101 is not yet connected to the external AP in S215, so it is determined that the connecting AP is not a setup access point. In this case, the processes of S213 to S215 are repeated. If the processes of S213 to S215 are performed between S217 and S218, the information processing device 101 is connected to the external AP in S215. Therefore, the connection AP is determined to be a setup access point, and the process proceeds to S219.
[0082] In S219, the setup application releases the display control in S212, and in S220 executes network setup processing for the communication device 151. At that time, the setup application controls the application screen being displayed so that it can accept user operations. Specifically, for example, the application screen as shown in Fig. 8(a) to Fig. 8(c) is ended, and a screen for network setup processing is displayed. The network setup processing will be described later with reference to Fig. 11.
[0083] As described above, in the present embodiment, when the information processing device 101 is in the second environment, the setup application displays the operation guidance on the OS screen and then controls the display of the application screen so that user operations cannot be accepted. This makes it possible to prevent the network setup process from not starting due to the acceptance of an unexpected user operation. After performing the above display control, the setup application queries the guest OS at predetermined time intervals about the external AP to which the information processing device 101 is connected. This makes it possible to start the subsequent network setup process even in a configuration in which a notification that the application screen has become the foreground is not received from the OS.
[0084] Fig. 11 is a flowchart showing the network setup process executed in S120 and S220. The process in Fig. 11 is executed as the process of the setup application, and is realized by the CPU 103 reading a program stored in the ROM 104 into the RAM 105 and executing it.
[0085] In S301, the CPU 103 requests a list of access points (access point list) from the communication device 151 via a Wi-Fi connection between the communication device 151 operating in a network setup mode and the information processing device 101.
[0086] In S302, the CPU 103 acquires a list of access points via a Wi-Fi connection between the communication device 151 operating in a network setup mode and the information processing device 101. Note that the list of access points acquired here is a list indicating one or more access points to which the communication device 151 can connect, which are discovered by the communication device 151 executing an AP search.
[0087] In S303, the CPU 103 judges whether or not the list of access points acquired in S302 includes a connected AP to which the information processing device 101 has made a connection. The connected AP is, for example, information on the AP stored in S101 or S201. Since the list of access points acquired in S302 includes only access points to which the communication device 151 can connect, the case where the connected AP is included in the acquired list means that the communication device 151 can connect to the connected AP. Furthermore, the case where the connected AP is not included in the acquired list means that the communication device 151 cannot connect to the connected AP. For example, an access point that can be connected using an encryption method that is not compatible with the communication device 151 is not included in the list because the communication device 151 cannot connect to it. Furthermore, for example, an access point that can be connected using a frequency band that is not compatible with the communication device 151 is not included in the list because the communication device 151 cannot connect to it. If it is judged in S303 that the connected AP is not included, the process proceeds to S306.
[0088] In S306, CPU 103 displays the list acquired in S302, and in S307, accepts the selection of any access point from the list from the user. Fig. 6(b) is a diagram showing an example of a screen displayed in S306. As shown in Fig. 6(b), an example of an SSID is displayed on the screen. Then, CPU 103 determines the access point selected by the user as the AP to which communication device 151 is to be connected.
[0089] In S308, CPU 103 displays a screen for accepting input of a password for connecting to the access point selected by the user. Fig. 6(c) is a diagram showing an example of the screen displayed in S308. As shown in Fig. 6(c), an area for accepting input of a password is displayed on screen 604.
[0090] In S309, the CPU 103 transmits connection information including the password input in S308. The connection information is information for connecting to an access point, and includes, for example, an SSID and a password. When the CPU 103 transmits the connection information, it displays a screen indicating that the device is being connected, as shown in FIG. 6(d). The communication device 151 notifies the information processing device 101 that it has received the connection information via a Wi-Fi connection between the communication device 151 operating in a network setup mode and the information processing device 101. Then, the communication device 151 attempts to connect to an access point corresponding to the connection information by using the connection information received from the information processing device 101. If the connection is successful, the communication device 151 can then perform communication via a network formed by the connected access point.
[0091] In S310, the CPU 103 connects to the access point. In S310, for example, the setup application reconnects to the access point to which the information processing device 101 was connected by using the connection information stored in S101 of Fig. 9 or S201 of Fig. 10. Note that this is not limited to the above. For example, when the information processing device 101 transmits to the communication device 151 connection information of an access point other than the access point to which the information processing device 101 was connected by Wi-Fi, the information processing device 101 may connect to the other access point.
[0092] In S311, CPU 103 searches for communication device 151 on the network to which it belongs, determines whether communication device 151 has been found, and determines whether the network setup process has been successful based on the determination result. Note that the network to which it belongs is the network of the access point connected in S310. If it is determined that communication device 151 has been found, and therefore that the network setup process has been successful, the process proceeds to S312.
[0093] In S312, the CPU 103 requests capability information from the communication device 151. When the communication device 151 receives the request from the information processing device 101, the communication device 151 transmits the capability information to the information processing device 101. The CPU 103 registers information about the communication device 151 on the setup application, and thereafter enables the setup application to transmit a print job to the communication device 151. At this time, if the information processing device 101 belongs to a network formed by an access point to which the communication device 151 is connected by the network setup process, communication with the communication device 151 can be executed via the access point. If communication between the information processing device 101 and the communication device 151 cannot be executed, such as when the access point to which the communication device 151 is connected is not the access point to which the information processing device 101 is connected, the request and acquisition of capability information are omitted. For example, a communication protocol different from the setup communication protocol may be used for the communication in S312.
[0094] In S313, CPU 103 displays the application basic screen. On the application basic screen displayed here, information (such as IP address) of communication device 151 registered in S312 is displayed, as shown in Fig. 7(a). If it is determined in S311 that the network setup process has failed, CPU 103 displays the application basic screen in S313. Fig. 7(b) is a diagram showing an example of the application basic screen displayed here. The screen in Fig. 7(b) differs from Fig. 7(a) in that information of communication device 151 is not displayed.
[0095] Refer to S303 again. If it is determined in S303 that a connected AP is included, the process proceeds to S304.
[0096] In S304, the CPU 103 displays a message to the connected AP to the effect that a connection will be made. Fig. 6(a) is a diagram showing an example of a message screen displayed in S304. That is, here, a message 601 including information on the connected AP is displayed, and the screen prompts the user to confirm the connection.
[0097] In S305, CPU 103 determines whether an instruction to connect to the connected AP has been accepted. For example, if Yes button 602 is pressed on the screen of FIG. 6(a), it is determined that an instruction to connect to the connected AP has been accepted. In that case, the process proceeds to S308 described above, where CPU 103 displays a screen for accepting input of a password for connecting to the connected AP. On the other hand, if No button 603 is pressed on the screen of FIG. 6(a), it is determined that an instruction to connect to the connected AP has not been accepted. In that case, the process proceeds to S306 described above, where CPU 103 displays the list acquired in S302.
[0098] Hereinafter, a flowchart of the setup application for realizing the processing of Fig. 9 to Fig. 11 will be described with reference to Fig. 12 and Fig. 13. The processing of Fig. 12 and Fig. 13 is realized, for example, by the CPU 103 reading a program stored in the ROM 104 into the RAM 105 and executing it.
[0099] In S401, the CPU 103 displays a user operation instruction screen on the operation display unit 108. The process of S401 corresponds to the process of S101 in FIG. 9 and S201 in FIG. 10. In S402, the CPU 103 instructs the OS to execute a search for an external access point (external AP). The OS here is the host OS if the information processing device 101 is in the first environment, and is the guest OS if the information processing device 101 is in the second environment. The process of S402 corresponds to the process of S102 in FIG. 9 and S202 in FIG. 10.
[0100] In S403, the CPU 103 acquires information (search result) of the discovered external AP notified by the OS. The process of S403 corresponds to the process of S104 in Fig. 9 and S204 in Fig. 10. The OS here is the host OS if the information processing device 101 is in the first environment, and is the guest OS if the information processing device 101 is in the second environment.
[0101] In S404, the CPU 103 judges whether or not a predetermined AP is found based on the search result notified by the OS. Specifically, for example, it is judged whether or not the search result notified by the OS includes a character string of an access point for setup. The process of S404 corresponds to the process of S105 in FIG. 9 and S205 in FIG. 10. The OS here is a host OS if the information processing device 101 is in the first environment, and a guest OS if the information processing device 101 is in the second environment. If it is judged that the predetermined AP is not found, the process proceeds to S313 in FIG. 11. FIG. 7(b) is a diagram showing an example of an application basic screen displayed in S313 when it is judged that the predetermined AP is not found. As shown in FIG. 7(b), the application basic screen displays buttons that can receive instructions of functions that the communication device 151 can execute, such as "print" and "scan". On the other hand, if it is judged that the predetermined AP is found, the process proceeds to S405.
[0102] In S405, the CPU 103 displays an operation guidance screen that displays guidance on an operation to be performed by the user on the OS screen to be displayed next, on the operation display unit 108. The processing of S405 corresponds to the processing of S106 in FIG. 9 and S206 in FIG.
[0103] In S406, CPU 103 determines whether or not the "Next" button has been pressed on the operation guidance screen. Specifically, for example, it determines whether or not button 404 in FIG. 4(c) or button 504 in FIG. 5(b) has been pressed. If it is determined that the "Next" button has not been pressed, for example in the case of a timeout, the process proceeds to S313 in FIG. 11. In that case, the basic application screen as shown in FIG. 7(b) is displayed. On the other hand, if it is determined that the "Next" button has been pressed, the process proceeds to S407.
[0104] In S407, the CPU 103 instructs the OS to display an OS screen. The process of S407 corresponds to the process of S108 in FIG. 9 and S208 in FIG. 10. The OS here is a host OS if the information processing device 101 is in the first environment, and a guest OS if the information processing device 101 is in the second environment. If the information processing device 101 is in the first environment, the OS screen is displayed in the foreground, and the application screen is displayed in the background. If the information processing device 101 is in the second environment, the OS screen is displayed in parallel with the application screen window in a window different from the application screen window. In this case, the application screen remains in the foreground.
[0105] In S408, CPU 103 determines whether the setup application is running in the first environment or the second environment. The process of S408 corresponds to the process of S114 in Fig. 9 and S209 in Fig. 10. CPU 103 may obtain information on whether the environment is a virtual environment from the OS, for example, and determine whether the environment is the first environment or the second environment based on the information. If it is determined that the setup application is running in the first environment, the process proceeds to S409, and if it is determined that the setup application is running in the second environment, the process proceeds to S421.
[0106] In S409, the CPU 103 determines whether the application screen has returned to the foreground. Specifically, for example, it is determined whether a notification that the application screen has returned to the foreground has been received from the host OS. The process of S409 is repeated until it is determined that the application screen has returned to the foreground. If it is determined that the application screen has returned to the foreground, the process proceeds to S410.
[0107] In S410, the CPU 103 inquires of the host OS about the connection status of the information processing apparatus 101 to the external AP. The process of S410 corresponds to the process of S117 in Fig. 9. In S411, the CPU 103 acquires the connection status to the external AP from the host OS. The process of S411 corresponds to the process of S118 in Fig. 9.
[0108] In S412, the CPU 103 judges whether the connection AP is a predetermined AP. Specifically, for example, it is judged whether the connection AP is a setup access point. The process of S412 corresponds to the process of S119 in FIG. 9. If it is not judged that the connection AP is a predetermined AP, the process proceeds to S414. The process proceeds to S414, for example, when the cancel button 407 on the OS screen in FIG. 4(d) is pressed, when a timeout occurs, or when the connection to the external AP fails (power off of the external AP, WiFi connection error, etc.). In other words, the process of S412 is a process for confirming whether a connection between the predetermined access point and the information processing device 101 is established.
[0109] In S414, the CPU 103 displays on the operation display unit 108 a message screen that prompts the user to connect using the OS standard WiFi setting screen. FIG. 5A is a diagram showing an example of the message screen displayed in S414. A button 502 for displaying the OS standard WiFi setting screen is displayed on the message screen 501. When the button 502 is pressed, the OS standard WiFi setting screen (not shown) is displayed, and the process returns to S407, and an instruction to display the OS screen is given to the host OS. At this time, the application screen may be in the background, or the screen display may be terminated. In addition, the process of FIG. 12 may be terminated and another process may be executed. If it is determined in S412 that the connection AP is a predetermined AP, here, a setup access point, the process proceeds to S413, and the process of FIG. 11 is executed.
[0110] When it is determined in S408 that the setup application is running in the second environment, in S421, the CPU 103 controls the display of the application screen being displayed so that the user operation cannot be accepted. The process of S421 corresponds to the process of S212 in FIG.
[0111] In S422, CPU 103 inquires of the guest OS about the connection status of information processing device 101 to the external AP. The process of S422 corresponds to the process of S213 in Fig. 10. In S423, CPU 103 acquires the connection status to the external AP from the guest OS. The process of S423 corresponds to the process of S214 in Fig. 10. In other words, the process of S422 is a process for checking whether or not a connection between a predetermined access point and information processing device 101 has been established.
[0112] In S424, the CPU 103 determines whether the connection AP is a predetermined AP. Specifically, for example, it is determined whether the connection AP is a setup access point. The process of S424 corresponds to the process of S215 in FIG. 10. If it is determined that the connection AP is a predetermined AP, the process proceeds to S425. In other words, the process of S424 is a process for confirming whether a connection between the predetermined access point and the information processing device 101 has been established.
[0113] In S425, the CPU 103 releases the display control in S421. Specifically, for example, the display of the application screens in Fig. 8(a) to Fig. 8(c) is terminated. Thereafter, the process proceeds to S301 in Fig. 11, and the process in Fig. 11 is executed. The network setup process screen displayed at that time is a screen that can accept user operations. If it is determined in S424 that the connected AP is not the specified AP, the process proceeds to S426.
[0114] In S426, the CPU 103 waits for a predetermined time by a timer. Specifically, for example, the wait time is 100 ms. Then, in S427, the CPU 103 judges whether or not a timeout has occurred. Specifically, for example, the CPU 103 judges whether or not 30 seconds have elapsed since the processing of S422 was first executed. If it is judged in S427 that the timeout has not occurred, the processing from S422 is repeated. That is, in the processing in the second environment in this embodiment, unlike the processing in the first environment, the processing of inquiring of the OS about the connection status of the information processing device 101 to the external AP is executed based on the passage of time without receiving a notification from the OS that the application screen has returned to the foreground. On the other hand, if it is judged that the timeout has occurred, in S428, the CPU 103 releases the display control in S421. Specifically, for example, the display of the application screen in FIG. 8(a) to FIG. 8(c) is ended. Then, in S429, the CPU 103 displays on the operation display unit 108 a message screen that prompts the user to connect using the OS standard WiFi setting screen. FIG. 5C is a diagram showing an example of the message screen displayed in S429. A button 511 for displaying the OS standard WiFi setting screen is displayed on the message screen 510. When the button 511 is pressed, the OS standard WiFi setting screen (not shown) is displayed, and the process returns to S407, where an instruction to display the OS screen is issued to the guest OS. At this time, the application screen may be terminated. Also, the process of FIG. 12 may be terminated and another process may be executed.
[0115] As described above, according to the present embodiment, when the information processing device 101 is in the second environment, the setup application displays operation guidance on the OS screen and then controls the display of the application screen so that user operations cannot be accepted. This makes it possible to prevent the network setup process from not starting due to the acceptance of an unexpected user operation. After performing the above display control, the setup application queries the guest OS at predetermined time intervals about the external AP to which the information processing device 101 is connected. This makes it possible to start the subsequent network setup process even in a configuration in which a notification that the application screen has become the foreground is not received from the guest OS.
[0116] [Second embodiment] The second embodiment will be described below with respect to differences from the first embodiment. In the first embodiment, when the information processing device 101 is in the second environment, the application screen and the OS screen are displayed in a multi-window, and therefore, it has been described that the display control of the application screen is performed in S212, and S213 to S215 are repeatedly performed for the guest OS. However, if the application screen and the OS screen are displayed in a multi-window, the problem described in the first embodiment may occur similarly. For example, even if the information processing device 101 is in the first environment, if the housing of the information processing device 101 is foldable and has multiple display screens, the same problem may occur. Such an information processing device 101 is, for example, a mobile terminal in which the operation display unit 108 is configured to be foldable with two displays.
[0117] When the operation of the first embodiment is applied to two displays, display 1 and display 2, for example, when the "Next" button is pressed while an OS operation guidance screen is displayed on display 1, the OS screen is displayed on display 2 in a window separate from the application screen window. That is, even if the information processing device 101 having multiple displays has the first environment, it is possible to display multiple windows in parallel. That is, when the application screen is waiting for the result of processing by the OS, it is in a state where it is possible to accept an unexpected user operation on the application screen. In addition, since the application screen remains in the foreground, it does not receive a notification such as S116 from the host OS, and the subsequent network setup process cannot be started.
[0118] Therefore, in this embodiment, even if the information processing device 101 is in the first environment, if the information processing device 101 has a predetermined configuration having multiple displays as described above, the process in Fig. 10 is executed. This makes it possible to prevent unexpected user operations from being accepted on the application screen and to start the network setup process.
[0119] Fig. 14 is a flowchart showing a part of the process of the setup application in this embodiment. The process of Fig. 14 is realized, for example, by the CPU 103 reading a program stored in the ROM 104 into the RAM 105 and executing it.
[0120] In this embodiment, the process of S501 is executed between S407 and S409 in FIG. 12. That is, if it is determined in S408 that the setup application is running in the first environment, in S501, the CPU 103 determines whether or not the information processing device 101 has a predetermined configuration. Here, the predetermined configuration is, for example, a configuration in which the housing of the information processing device 101 is foldable and has multiple display screens. The CPU 101 may obtain device configuration information from the host OS using an API, and determine whether or not the information processing device 101 has a predetermined configuration based on the information. If it is determined that the information processing device 101 does not have the predetermined configuration, the process proceeds to S409 in FIG. 12. On the other hand, if it is determined that the information processing device 101 has the predetermined configuration, the process proceeds to S421 in FIG. 13.
[0121] As described above, according to this embodiment, when the housing of the information processing device 101 is foldable and has multiple display screens, the same process as in the case of the second environment described in the first embodiment is executed. This makes it possible to prevent the network setup process from failing to start due to the receipt of an unexpected user operation.
[0122] In the above-described embodiments, an example in which an OS screen for connecting the communication device 151 to an external AP is displayed has been described. However, a screen that can be displayed in a window different from the application screen is not limited to such an OS screen. That is, the operation of each embodiment is applicable as long as the application transfers processing to other software once, and executes subsequent processing based on the processing being returned from the software. In the above-described embodiments, a form in which control is performed so that a user operation on the application screen is not performed at a timing when an OS screen for connecting the communication device 151 to an external AP is displayed in a window different from the window displaying the application screen. However, the timing at which the process of controlling so that a user operation on the application screen is not performed is not limited to the above-described form.
[0123] For example, it is assumed that the application can display the application screen 809 in FIG. 8(d). It is assumed that the application can accept pressing of a button for a cloud photo service on the application screen 809 and display a web browser screen related to the cloud photo service. The web browser screen is, for example, a screen that accepts an operation for selecting one of a plurality of cloud photo services, an operation for logging in to the selected cloud photo service, and an operation for selecting an image to be printed from a plurality of images managed by the logged-in cloud photo service. In such a configuration, if the operating environment of the application is the first environment, when pressing of a button for a cloud photo service on the application screen is accepted, a web browser is started and the web browser screen is displayed in a window separate from the application screen 809. However, since only one window is displayed at a time in the first environment, the web browser screen is in the foreground and the application screen is in the background. Then, when the above operation is completed on the web browser screen and the web browser screen is closed, the application screen returns to the foreground, and the application executes subsequent processing based on a notification of the return. Specifically, the subsequent processing is, for example, processing for printing an image to be printed selected on the Web browser screen, such as processing for previewing the image and transmitting a print job for printing the image to the communication device 151. However, if the operating environment of the application is the second environment, when a cloud photo service button is pressed on the application screen 809, the application screen displays a Web browser screen 810 in a separate window, and the window displaying the application screen and the window displaying the Web browser screen 810 are displayed in parallel, resulting in the same problem as described in the first embodiment. For example, in a state in which a cloud photo service button is pressed on the application screen 809 and the Web browser screen 810 is displayed in multiple windows, pressing a cloud storage service button on the application screen can be accepted.If the button for the cloud storage service is pressed in such a state, the waiting state for authentication of the cloud photo service of the application is released, and the subsequent processing cannot be executed. In addition, since there is no notification of the return of the application screen to the foreground, the subsequent processing cannot be started. Therefore, in a state in which the Web browser screen 810 is displayed in the second environment, a process for controlling so that a user operation on the application screen is not performed as described in S212 may be executed. By applying such an operation, even in a configuration in which a window displaying the application screen 809 and a window displaying the Web browser screen 810 are displayed in parallel, it is possible to prevent unexpected user operations from being received on the application screen. In addition, even if there is no notification of the return of the application screen to the foreground, it is possible to start the subsequent processing. Note that the state in which the process for controlling so that a user operation on the application screen is not performed as described in S212 is executed does not have to be a state in which the Web browser screen 810 is displayed in the second environment. In other words, the state in which this process is being executed may be any state in which a screen is displayed in the second environment by a program other than the setup application, and may be any state in which a screen other than the web browser screen 810 is displayed.
[0124] The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions.
[0125] The disclosure of this embodiment includes the following program. (Item 1) A program that can run on an operating system (OS), A computer of a first information processing apparatus having a first operating environment on a first OS that operates as a host OS but not on a guest OS, a first instruction step of instructing the host OS to execute a first process for establishing a connection between a predetermined access point and the first information processing device based on a predetermined operation being performed on a predetermined screen displayed by the program; a first communication step of performing communication via the connection between the predetermined access point and the first information processing device after a connection between the predetermined access point and the first information processing device is established as a result of the host OS being instructed to execute the first process; Run the command, A computer of a second information processing apparatus having a second operating environment on a second OS operating as the host OS and on the guest OS, a second instruction step of instructing the guest OS to execute a second process for establishing a connection between the predetermined access point and the second information processing device based on the predetermined operation being performed on the predetermined screen displayed by the predetermined program; a control step of executing a predetermined control so that a process based on an operation on the predetermined screen is not executed after the execution of the second process is instructed to the guest OS; a second communication step of performing communication via the connection between the predetermined access point and the second information processing device after a connection between the predetermined access point and the second information processing device is established as a result of the host OS being instructed to execute the second process; A program characterized by executing the above. (Item 2) 2. The program according to item 1, wherein the predetermined control is a process for preventing the predetermined operation from being accepted. (Item 3) 3. The program according to item 2, wherein the predetermined control is a process of graying out a display button for accepting the predetermined operation. (Item 4) 3. The program according to item 2, wherein the predetermined control is a process of graying out the entire predetermined screen. (Item 5) The program described in any one of items 1 to 4, further comprising a display step of displaying a screen presenting operations to be performed on a screen displayed in a separate window by the guest OS while the specified control is being executed. (Item 6) 6. The program according to any one of claims 1 to 5, wherein the control step starts the specified control based on an instruction to the guest OS to execute the second process. (Item 7) The program according to item 6, wherein the control step executes the predetermined control until it is confirmed that a connection between the predetermined access point and the second information processing device has been established. (Item 8) The program described in item 6, characterized in that the control step executes the specified control until a process of checking whether a connection between the specified access point and the second information processing device has been established times out. (Item 9) The program described in any one of items 1 to 8, characterized in that the first communication step transmits information about an external access point via a connection after it is confirmed that a connection has been established between the specified access point and the first information processing device. (Item 10) The program described in item 9, characterized in that the external access point is an access point to which the first information processing device was connected before a connection was established between the specified access point and the first information processing device. (Item 11) The program described in item 9 or 10, characterized in that the external access point is an access point selected from an access point list received from a device operating as the specified access point via a connection between the specified access point and the first information processing device. (Item 12) The program described in any one of items 1 to 11, characterized in that the second communication step transmits information about an external access point via a connection after it is confirmed that a connection has been established between the specified access point and the second information processing device. (Item 13) The program described in item 12, characterized in that the external access point is an access point to which the second information processing device was connected before a connection was established between the specified access point and the second information processing device. (Item 14) The program described in item 12 or 13, characterized in that the external access point is an access point selected from an access point list received from a device operating as the specified access point via a connection between the specified access point and the second information processing device. (Item 15) further executing a determination step of determining whether the environment in which the program is operating is the first operating environment or the second operating environment; Whether or not the predetermined control is executed is controlled based on a result of the determination in the determination step. 15. The program according to any one of items 1 to 14. (Item 16) Item 16. The program according to item 15, characterized in that, when it is determined that the environment in which the program is operating is the second operating environment, the predetermined control is executed. (Item 17) when it is determined in the determining step that the environment in which the program is operating is the first operating environment, a second determining step is further executed to determine whether the first information processing device is an information processing device having a predetermined configuration; 17. The program according to item 16, characterized in that, when it is determined that the first information processing device is an information processing device having the predetermined configuration, the predetermined control is executed. (Item 18) 18. The program according to item 17, characterized in that, if it is determined that the first information processing device is not an information processing device having the specified configuration, the program controls so that the specified control is not executed. (Item 19) 19. The program according to item 17 or 18, wherein the predetermined configuration is a foldable mobile terminal having multiple displays. (Item 20) The program described in any one of items 1 to 19, characterized in that the host OS in the first operating environment is Android OS, the host OS in the second operating environment is Chrome OS, and the guest OS in the second operating environment is a virtual Android OS. (Item 21) 21. The program according to any one of items 1 to 20, wherein the predetermined access point is an access point inside a printer that is external to the first information processing device and external to the second information processing device. (Item 22) 22. The program according to any one of items 1 to 21, wherein the predetermined access point is an access point for network setup.
[0126] The invention is not limited to the above-described embodiments, and various modifications and variations are possible without departing from the spirit and scope of the invention. Accordingly, the following claims are appended to apprise the public of the scope of the invention. [Explanation of symbols]
[0127] 101 Information processing device: 103, 154 CPU: 104, 152 ROM: 105, 153 RAM: 151 Communication device
Claims
1. A program operable on an operating system (OS), A computer of a first information processing apparatus having a first operating environment on a first OS that operates as a host OS but not on a guest OS, a first instruction step of instructing the host OS to execute a first process for establishing a connection between a predetermined access point and the first information processing device based on a predetermined operation being performed on a predetermined screen displayed by the program; a first communication step of performing communication via the connection between the predetermined access point and the first information processing device after a connection between the predetermined access point and the first information processing device is established as a result of the host OS being instructed to execute the first process; Run the command, a computer of a second information processing apparatus having a second operating environment on the second OS operating as the host OS and on the guest OS; a second instruction step of instructing the guest OS to execute a second process for establishing a connection between the predetermined access point and the second information processing device based on the predetermined operation being performed on the predetermined screen displayed by the program; a control step of executing a predetermined control so that a process based on an operation on the predetermined screen is not executed after the execution of the second process is instructed to the guest OS; a second communication step of performing communication via the connection between the predetermined access point and the second information processing device after a connection between the predetermined access point and the second information processing device is established as a result of the host OS being instructed to execute the second process; A program characterized by executing the above.
2. 2. The program according to claim 1, wherein the predetermined control is a process for preventing the predetermined operation from being accepted.
3. 3. The program according to claim 2, wherein the predetermined control is a process of graying out a display button for accepting the predetermined operation.
4. 3. The program according to claim 2, wherein the predetermined control is a process of graying out the entirety of the predetermined screen.
5. The program according to claim 1, further comprising a display step of displaying a screen presenting operations to be performed on a screen displayed in a separate window by the guest OS while the specified control is being executed.
6. 2. The program according to claim 1, wherein the control step starts the predetermined control based on an instruction to execute the second process being given to the guest OS.
7. 7. The program according to claim 6, wherein said control step executes said predetermined control until it is confirmed that a connection between said predetermined access point and said second information processing device has been established.
8. 7. The program according to claim 6, wherein the control step executes the predetermined control until a process for confirming whether or not a connection between the predetermined access point and the second information processing device has been established times out.
9. The program according to claim 1, characterized in that the first communication step transmits information regarding an external access point via a connection after it is confirmed that a connection between the specified access point and the first information processing device has been established.
10. 10. The program according to claim 9, wherein the external access point is an access point to which the first information processing device was connected before a connection was established between the predetermined access point and the first information processing device.
11. The program according to claim 9, characterized in that the external access point is an access point selected from an access point list received from a device operating as the specified access point via a connection between the specified access point and the first information processing device.
12. The program according to claim 1, characterized in that the second communication step transmits information regarding an external access point via a connection after it is confirmed that a connection between the specified access point and the second information processing device has been established.
13. 13. The program according to claim 12, wherein the external access point is an access point to which the second information processing device was connected before a connection was established between the predetermined access point and the second information processing device.
14. The program according to claim 12, characterized in that the external access point is an access point selected from an access point list received from a device operating as the specified access point via a connection between the specified access point and the second information processing device.
15. further executing a determination step of determining whether the environment in which the program is operating is the first operating environment or the second operating environment; Whether or not the predetermined control is executed is controlled based on a result of the determination in the determination step.
2. The program according to claim 1 .
16. 16. The program according to claim 15, wherein the predetermined control is executed when it is determined that the environment in which the program is operating is the second operating environment.
17. when it is determined in the determining step that the environment in which the program is operating is the first operating environment, a second determining step is further executed to determine whether the first information processing device is an information processing device having a predetermined configuration; 17. The program according to claim 16, further comprising control for executing the predetermined control when it is determined that the first information processing apparatus is an information processing apparatus having the predetermined configuration.
18. 18. The program according to claim 17, further comprising controlling the first information processing apparatus so that the predetermined control is not executed when it is determined that the first information processing apparatus is not an information processing apparatus having the predetermined configuration.
19. 18. The program according to claim 17, wherein the predetermined configuration is a foldable mobile terminal having multiple displays.
20. 2. The program of claim 1, wherein the host OS in the first operating environment is an Android OS, the host OS in the second operating environment is a Chrome OS, and the guest OS in the second operating environment is a virtual Android OS.
21. 2. The program according to claim 1, wherein the predetermined access point is an access point inside a printer that is external to the first information processing apparatus and external to the second information processing apparatus.
22. 2. The program according to claim 1, wherein the predetermined access point is an access point for network setup.
Citation Information
Patent Citations
Information processing program, information processing device, and information processing method
JP2023026168A