Program, information processing apparatus, and method of controlling information processing apparatus
The program addresses the challenge of prolonged error recognition in direct device connections by differentiating between host and guest OS environments, enhancing usability through controlled communication execution.
Patent Information
- Application Number
- JP2024072930
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-26
- Publication Date
- 2025-11-07
AI Technical Summary
There is a demand for improving the convenience of programs that can run in operating environments on both a host OS and a guest OS, particularly in scenarios where direct connections between devices result in prolonged recognition of communication errors.
A program that includes a network determination mechanism to differentiate between operating environments, controlling communication execution based on whether the device is operating as a host OS alone or as both a host and guest OS, thereby preventing errors in direct connections.
This approach enhances the usability of programs by reducing the time required to recognize and respond to communication errors in environments where direct device connections are established, improving overall convenience.
Smart Images

Figure 2025167913000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a program, an information processing device, and a control method for an information processing device. [Background technology]
[0002] Patent Document 1 describes a configuration in which two virtual computers, each running an image processing device OS (host OS) and a thin client OS (guest OS), are formed in a memory. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2009-049679 Summary of the Invention [Problem to be solved by the invention]
[0004] Incidentally, as operating environments that run on an OS that operates as a host OS and on a guest OS become more widespread, there is a demand for improving the convenience of programs that can run in such operating environments.
[0005] The present invention aims to improve the convenience of a program that can run in an operating environment on an OS that operates as a host OS and on a guest OS. [Means for solving the problem]
[0006] In order to achieve the above object, according to the present invention, there is provided a program operable on an operating system (OS) of an information processing device, which causes a computer of the information processing device to function as a communication execution means for executing communication with a server external to the information processing device via the OS, a network determination means for determining whether the information processing device is external to the information processing device and belongs to a network formed by a communication device different from the server, a switching means for switching processing so that if the operating environment of the program is a first operating environment on a first OS operating as a host OS but not on a guest OS, the network determination means does not perform a determination, and if the operating environment is a second operating environment on a second OS operating as a host OS and on a guest OS, the network determination means performs a determination, and a control means for controlling the communication execution means to perform the communication if the operating environment is the first operating environment, and controlling the communication execution means not to perform the communication if the operating environment is the second operating environment and it is determined that the information processing device belongs to the network. [Effects of the Invention]
[0007] According to the present invention, it is possible to improve the convenience of a program that can run in an operating environment on an OS that operates as a host OS and on a guest OS. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 illustrates an example of the configuration of a communication system. [Figure 2] FIG. 2 is a diagram illustrating a software configuration of the information processing device. [Figure 3] FIG. 1 illustrates an example of the configuration of a communication system. [Figure 4] 10 is a flowchart showing a process executed by a communication application. [Figure 5] FIG. 10 is a diagram showing a screen displayed by a communication application. [Figure 6] FIG. 10 is a diagram showing a screen displayed by a communication application. [Figure 7] FIG. 10 is a diagram showing a screen displayed by a communication application. [Figure 8] 10 is a flowchart showing a process executed by a communication application. [Figure 9] 10 is a flowchart showing a process executed by a communication application. [Figure 10] FIG. 10 is a diagram showing a screen displayed by a communication application. [Figure 11] FIG. 10 is a diagram showing a screen displayed by a communication application. DETAILED DESCRIPTION OF THE INVENTION
[0009] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the invention claimed. Although multiple features are described in the embodiments, not all of these multiple features are necessarily essential to the invention, and multiple features may be combined arbitrarily. Furthermore, in the accompanying drawings, the same reference numerals are used to designate the same or similar components, and redundant explanations will be omitted.
[0010] [First embodiment] An information processing device and a communication device included in the communication system of this embodiment will be described. In this embodiment, a smartphone is used as an example of the information processing device, but the present invention is not limited to this. Various devices, such as a mobile terminal, a notebook PC, a tablet terminal, a PDA (Personal Digital Assistant), and a digital camera, can also be used. Furthermore, various devices capable of wireless communication with the information processing device can also be used as the communication device. For example, printers can be used, such as inkjet printers, full-color laser beam printers, and monochrome printers. Furthermore, the present invention can also be used not only for printers, but also for scanners, copiers, facsimile machines, mobile terminals, smartphones, notebook PCs, tablet terminals, PDAs, digital cameras, music playback devices, televisions, smart speakers, and the like. Furthermore, the present invention can also be used for multifunction peripherals equipped with multiple functions, such as a copying function, a fax function, a printing function, and a scanning function. In this embodiment, the communication device is a multifunction printer equipped with a printing function, a scanning 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 capturing 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 may be configured to output to the screen and receive operations from the user using 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 control programs and data tables executed by the CPU 103, 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. In this embodiment, the OS stored in the ROM 104 and running on the information processing device 101 is assumed to be 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 stores a virtual Android OS for running Android OS apps (described later) on the information processing device 101. The OS running on the information processing device 101 is not limited to the above-described form and may be an OS other than the Android (registered trademark) OS or the Chrome (registered trademark) OS.
[0014] The RAM 105 is configured with an SRAM (Static Random Access Memory) or the like that requires a backup power source. Note that the RAM 105 holds data using a primary battery (not shown) for data backup, so that important data such as program control variables can be stored without volatilization. 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 a communication app) having a function of communicating with the communication device 151. Specifically, the communication app is, for example, an app having a printing function for causing the communication device 151 to execute printing or a scanning function for causing the communication device 151 to execute scanning. However, the communication app is not limited to this, and may be an app having either a printing function or a scanning function (a printing app or a scanning app), or an app having other functions. For example, the communication app may be a setup app having a function of executing a network setup process for connecting the communication device 151 to an external access point. In this embodiment, the communication app is assumed to have all of the printing function, the scanning function, and the network setup process. The communication app also has a print job sending function, a scan job sending function, a copy job sending function, and the like, which will be described later. The external access point is, for example, the access point 131, which will be described later. The external storage device 106 also includes various programs, such as a print information generation program for generating print information that can be interpreted by the communication device 151, and an information transmission / reception control program for transmitting and receiving information to and from the communication device 151 connected via the communication unit 109. These programs may be included in the above-mentioned applications, or may be configured separately from the applications. 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 communication application is assumed to be 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), an LCD (liquid crystal display), etc., and displays data and notifies the status of the information processing device 101. Note that a soft keyboard equipped with 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 the 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 perform data communication. For example, the communication unit 109 can connect to an access point (not shown) in the communication device 151. When the communication unit 109 connects 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 also be referred to as an AP. Note that the communication unit 109 may communicate directly with the communication device 151 via wireless communication, or may communicate via an access point 131 that is external to the information processing device 101 and external to the communication device 151. In this embodiment, the IEEE802.11 series of communication standards is used as the wireless communication method. Note that the IEEE802.11 series of communication standards is Wi-Fi (registered trademark).
[0018] 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 without going through an external access point is called a direct connection method. A method in which the information processing device 101 and the communication device 151 are connected through an external access point 131 is called an infrastructure (hereinafter, referred to as "infra") 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 over a short distance, and performs communication using a communication method different from that of the communication unit 109. Examples of short-range wireless communication methods 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. Thereafter, the digital data is converted into a predetermined image format by a program executed by the CPU 103, and is saved 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. By setting a connection mode (communication mode), the communication device 151 can operate in the set connection mode.
[0022] The communication unit 156 is a component that enables the communication device 151 to communicate with other devices. In this embodiment, the communication unit 156 communicates according to the IEEE 802.11 series of communication standards. The communication unit 156 has an access point as an internal access point of the communication device 151 for connecting to devices such as the information processing device 101. The access point can be connected to the communication unit 109 of the information processing device 101. The communication unit 156 may communicate with the information processing device 101 directly via 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 using software that causes the communication unit 156 to function as an access point. In this embodiment, the communication unit 156 and the near-field wireless communication unit 157 are implemented by a single wireless chip. That is, in this embodiment, a combo chip that supports both the communication function of the IEEE 802.11 series of communication standards and the communication function using a near-field wireless communication method is used. However, the present invention is not limited to this configuration, 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 supply. Note that the RAM 153 retains data by being supplied with a data backup power supply (not shown), so it can store important data such as program control variables without volatilizing it. The RAM 153 is also used as the main memory and work memory of the CPU 154, and operates as a receive buffer for temporarily storing print information received from the information processing device 101 or the like, and stores various types of information.
[0024] The ROM 152 stores fixed data such as control programs, data tables, and OS programs executed by the CPU 154. In this embodiment, each control program stored in the ROM 152 performs software execution control such as scheduling, task switching, and interrupt processing under the management of an embedded OS stored in the ROM 152. The ROM 152 also has a memory area for storing data that needs to be retained even when power is not supplied, such as setting information for the communication device 151 and management data for the communication device 151.
[0025] CPU 154 is a system control unit that controls the entire communication device 151. Based on information stored in print engine 155 and RAM 153 and print jobs 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 sent from the information processing device 101, etc., requires a large amount of transmission data and high-speed communication, so it is received via communication unit 156, which is capable of communication at higher speeds than short-range wireless communication unit 157.
[0026] The short-range wireless communication unit 157 is configured to perform data communication by wirelessly connecting to a device such as the information processing device 101 at a short distance, and performs communication using a communication method different from that of the communication unit 156. Examples of short-range wireless communication methods 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 the same configuration may be used for screen output and reception of operations from the user. 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 status of the communication device 151. Note that a soft keyboard equipped with 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 documents placed on a document table (not shown) or an automatic document feeder (ADF). The image sensor unit includes a light source that irradiates the document 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 document 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 RAM 153.
[0030] <Direct connection method> A direct connection refers to a wireless connection between devices directly (i.e., peer-to-peer) 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 software AP mode and Wi-Fi Direct (registered trademark) mode. Wi-Fi Direct will be abbreviated as WFD below.
[0031] The mode in which a direct connection is established using WFD is called WFD mode. WFD is a standard established by the Wi-Fi Alliance and is included in the IEEE 802.11 series of communication standards. In WFD mode, after a communication partner device is discovered using device discovery information, the roles of P2P group owner (GO) and P2P client are determined, and the remaining wireless connection processing is carried out. 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 WFD mode, before the role determination is made, the communication device 151 is neither a parent station nor a child station. Specifically, one device first issues device discovery information to search for a device to connect to in WFD mode with another device to communicate with. Once the other device is discovered, the two devices confirm information about the services and functions that each device can provide. Note that this device provisioning information confirmation is optional and not required. This device provisioning information confirmation phase corresponds to, for example, P2P Provision Discovery. Next, by mutually confirming this device provisioning information, it is determined which one will be the P2P client and which one will be the P2P group owner. Next, once the client and group owner are determined, they exchange parameters for WFD communication. Based on the exchanged parameters, the remaining wireless connection processing and IP connection processing are performed between the P2P client and group owner. Note that in WFD mode, the communication device 151 may always operate as the GO without performing the above-mentioned GO Negotiation. In other words, the communication device 151 may operate in WFD mode, which is an autonomous GO mode. Furthermore, the state in which the communication device 151 operates in WFD mode refers to, for example, a state in which a WFD connection is not established but the communication device 151 operates as the GO, or a state in which a WFD connection is established and the communication device 151 operates as the 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) serves as a client that requests various services. The other device realizes the function of a Wi-Fi access point through software settings. The software AP corresponds to a Wi-Fi parent station, and the client corresponds to a Wi-Fi child station. In the software AP mode, the client searches for a device that will become the software AP using device search information. Once the software AP is found, the remaining wireless connection processing (establishment of a wireless connection, etc.) between the client and the software AP is performed, and then IP connection processing (assignment of an IP address, etc.) is performed. Note that commands and parameters that are transmitted and received when establishing 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 builds a wireless network and provides parameters used for connecting to the wireless network to the slave stations. The parameters used for connecting to the wireless network are, for example, parameters related to the channel used by the master station. By receiving the parameters, the slave stations connect to the wireless network built 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, and therefore 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 the 2.4 GHz frequency band and a channel corresponding to the 5 GHz frequency band for communication in the direct connection mode. The frequency band to use (i.e., which frequency band channel to use) can be arbitrarily set by the 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 channels in the 5 GHz frequency band corresponding to the DFS (Dynamic Frequency Selection) band for communication in the direct connection mode. In other words, the communication device 151 uses only channels in the 5 GHz frequency band corresponding to frequency bands other than the DFS band for communication in the direct connection mode. Note that if a channel corresponding to the DFS band is used and radar waves in the frequency band corresponding to that channel are detected, the currently used channel must be changed. Such a frequency band in which a channel change due to the detection of radar waves is possible is called a DFS band. Note that, for example, when a wireless chip supporting the DFS function is used, a channel in the 5 GHz frequency band corresponding to the DFS (Dynamic Frequency Selection) band may be available for communication in the direct connection mode.
[0034] <About infrastructure connection methods> The infrastructure connection is a connection mode in which devices (for example, the information processing device 101 and the communication device 151) that communicate with each other 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.
[0035] In an infrastructure connection, each device searches for an access point using device discovery information. Once an access point is found, the remaining wireless connection processing (establishing a wireless connection, etc.) is carried out between the device and the access point, and then IP connection processing (assigning an IP address, etc.) is carried out. Note that the 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 therefore will not be described here.
[0036] In this embodiment, when the communication device 151 operates in 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, 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 is possible via the access point 131. The channel used for communication in the infrastructure connection is determined by the access point 131, so the communication device 151 performs communication in the infrastructure connection using the channel determined by the access point 131. In this embodiment, the communication device 151 is 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 can also 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, the communication device 151 can be discovered by a broadcast executed by the information processing device 101.
[0037] <About Network Setup Mode> Communication device 151 can operate in network setup mode. A trigger for communication device 151 to start operation in network setup mode may be, for example, a user pressing a network setup mode button, or communication device 151 starting up (powering on) for the first time after arrival. The network setup mode button may be a hardware (physical) button provided in communication device 151, or may be a software button displayed on display unit 158 by communication device 151.
[0038] When the communication device 151 starts operating in the network setup mode, it enables Wi-Fi communication. Specifically, as a process for enabling Wi-Fi communication, the communication device 151 enables an internal AP (connection setting AP) of the communication device 151 that is dedicated to the network setup mode. This puts the communication device 151 in a state where it can establish a direct connection via Wi-Fi with the information processing device 101. Connection information (such as an SSID (Service Set Identifier) and a password) for connecting to the connection setting AP is stored in advance in a communication application installed in the information processing device 101, and the information processing device 101 is assumed to recognize the connection information for connecting to the connection setting AP in advance. Therefore, unlike the connection information of the AP that is enabled in the direct connection mode, 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 via 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 WFD communication. 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 BLE communication. Also, in the network setup mode, the communication device 151 may be capable of performing both network setup via Wi-Fi and network setup via BLE. That is, when the communication device 151 starts operating 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 the activation of the connection setting AP and the activation of the advertising state, in which advertising information is sent via BLE and BLE connection is possible.
[0039] When operating in the network setup mode, the communication device 151 controls the communication unit 156 to operate as a network setup access point (connection setting AP, setup access point) that is valid only while operating in the network setup mode. The setup access point is 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 communication application of the information processing device 101.
[0040] Furthermore, 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).
[0041] After starting operation in the network setup mode, the communication device 151 stops operation in the network setup mode and disables the setup access point when a predetermined time has elapsed. The setup access point is also disabled when the communication device 151 receives connection information for connecting to the access point 131 and an instruction to change the wireless communication operation mode from the information processing device 101 during the network setup mode. The setup access point is assumed to be an access point that does not require a password for connection. The setup access point may also require 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 communication application.
[0042] In the following description, a communication mode in which the information processing device 101 and the communication device 151 are directly connected without going through the access point 131 may be referred to as a direct connection. Also, a communication mode in which the information processing device 101 and the communication device 151 are each connected to an external access point may be referred to as an infrastructure connection.
[0043] <Software Configuration of Information Processing Device 101> Next, the software configuration of the information processing device 101 in this embodiment will be described. FIG. 2(a) shows an example of the software configuration of the information processing device 101 when the host OS running on the information processing device 101 is the Android OS (first OS). In this embodiment, an application for the Android OS runs on the Android OS. In this embodiment, the software configuration of the information processing device 101 does not include the Chrome OS. An environment in which the OS running on the lowest layer of the information processing device 101 is the Android OS (not the Chrome OS), as in this embodiment, is referred to as a first environment (first operating 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 a guest OS, and an application runs on the host OS. Furthermore, for example, the first environment is, for example, an environment in which the information processing device 101 is equipped with both a host OS and a guest OS, but an application running in this embodiment runs on the host OS without going through the guest OS (not running on the guest OS). Note that the host OS is the host operating system, and the guest OS is the guest operating system.
[0044] FIG. 2B shows an example of the software configuration of the information processing device 101 when the host OS running on the information processing device 101 is the Chrome OS (second OS). In this configuration, a virtual Android OS, which is a virtual OS, runs on the Chrome OS. Applications for the Android OS run on the virtual Android OS. In this configuration, the OS running on the lowest layer of the information processing device 101 is the Chrome OS, and the environment in which the virtual Android OS runs on the Chrome OS is hereinafter referred to as the second environment (second operating environment). In this embodiment, the virtual OS is a program for running applications that are not compatible with the host OS on the host OS, and is a guest OS. The virtual OS may be an entire existing OS, such as the Android OS, an entire existing OS with some modules omitted, or a program created separately from the existing OS. The virtual OS is realized by virtualization technology, such as a Virtual Machine system or a container system. The information processing device 101 having the first environment and the information processing device 101 having the second environment are considered to be separate information processing devices 101. That is, the process executed based on the fact that the communication app is operating in the first environment, which is a process described below, is a process executed in a first information processing apparatus 101 having the first environment. And the process executed based on the fact that the communication app is operating in the second environment is a process executed in a second information processing apparatus 101 having the second environment. However, for example, by installing or uninstalling a host OS or a guest OS on one information processing apparatus 101, a state in which the first environment is established on one information processing apparatus 101 and a state in which the second environment is established may be switched. That is, both the process executed based on the fact that the communication app is operating in the first environment and the process executed based on the fact that the communication app is operating in the second environment may be executed on one information processing apparatus 101 based on the environment established on that one information processing apparatus 101.In this embodiment, the host OS is Chrome OS or Android OS, and the guest OS is a virtual Android OS, but the present invention is not limited to this. The host OS may be an OS other than Chrome OS or Android OS, and the guest OS may be an OS other than a virtual Android OS.
[0045] The following describes applications for the Android OS. Note that the above-mentioned communication application will be used as an example of an application for the Android OS. Also, an example will be described in which a communication application is installed and executed in each of the first environment and the second environment. Note that the communication application will be described as an example of a printing application that communicates with a communication device 151 having a printing function and provides a function for printing data such as documents and images. Also, an application developed in compliance with the Android OS so as to be executed on the Android OS may be called an Android application.
[0046] <Example of communication system configuration> An example of the configuration of a communication system in this embodiment will be described with reference to Figures 3(A) and (B). As shown in Figures 3(A) and (B), the communication system includes, for example, an external server 171. The external server 171 may be, for example, a management server managed by a provider of the communication app and the communication device 151. The external server 171 can provide a file requested by a communication app installed in the information processing device 101 via, for example, a Wi-Fi network formed by the access point 131.
[0047] Hereinafter, a communication mode of a plurality of devices capable of communicating with each other in the communication system shown in FIGS. 3A and 3B will be described. FIG. 3A illustrates a situation in which the information processing device 101, the communication device 151, and the external server 171 each belong to a Wi-Fi network formed by the access point 131. That is, the information processing device 101 and the communication device 151 are capable of communicating with each other via an infrastructure connection via the access point 151. In this case, the information processing device 101 can communicate with the external server 171 via the access point 151. For example, when a communication app receives a predetermined instruction such as an instruction to start the communication app, the communication app displays a screen indicating that the instruction has been received. Then, the communication app communicates with the external server 171 via the OS of the information processing device 101. In this embodiment, the communication app communicates to download files, etc., used for display control to switch screens at startup from the external server 171. Then, the communication app performs display control to switch screen displays based on the files downloaded through communication with the external server 171.
[0048] In FIG. 3B, the information processing device 101 belongs to the Wi-Fi network formed by the communication device 151. In other words, the information processing device 101 and the communication device 151 are directly connected to each other without going through the network formed by the access point 131. In this case, the communication app attempts to communicate with the external server 171 via the OS of the information processing device 101, but is unable to perform this communication, resulting in an error. As a result, for example, the communication app fails to attempt to download the above-mentioned file. The communication app performs display control for the case where communication with the external server 171 cannot be performed.
[0049] Incidentally, the operating environment of a communication app may be, for example, the first environment and the second environment, as described above. For example, when a communication app runs in the first environment, it takes a relatively short time to recognize that an error has occurred, as described in FIG. 3(B). On the other hand, when a communication app runs in the second environment and the information processing device 101 and the communication device 151 are directly connected, it may take a long time to recognize that an error has occurred. In such a case, it takes a long time for the communication app to perform display control based on the inability to communicate with the external server 171. Therefore, there is a demand for improving the usability of programs such as communication apps that can run in the second environment.
[0050] In this embodiment, in the first environment, the communication application controls communication with the external server 171 via the OS of the information processing device 101. On the other hand, in the second environment and in a state where the information processing device 101 belongs to a network formed by the communication device 151, the communication application controls not to perform the communication.
[0051] This configuration can prevent an error from occurring when a communication application executes communication with external server 171 while operating in the second environment and belonging to a network formed by communication device 151, which can increase the time required for processing such as display control. This can improve the convenience of programs that can operate in the second environment.
[0052] <Example of communication app processing> Please refer to Figure 4. Figure 4 is a flowchart showing an example of processing executed by the communication application. In this flowchart, the processing executed by the communication application is realized, for example, by CPU 103 expanding a control program stored in a memory such as ROM 104 into RAM 105 and executing it. The processing in Figure 4 is executed, for example, when the communication application is started by a user operation. Below, a case will be described in which the communication application is installed and executed in each of the first environment and the second environment. Note that in the following description, the network formed by communication device 151 may be referred to as the network of communication device 151.
[0053] <Example of processing when a communication app runs in the first environment> First, a process when the communication application runs in the first environment will be described. When the communication application runs in the first environment, the process is executed via the OS of the information processing device 101, for example, the OS is the host OS (first OS).
[0054] In S401, the communication application displays a splash screen on the operation display unit 108 based on the reception of a start instruction. Here, reference is made to FIG. 5. FIG. 5 shows an example of a splash screen 500 displayed by the communication application in S300. For example, an icon 501 indicating a communication device 151 related to the communication application may be displayed on the splash screen 500. Note that, although the present embodiment shows an example in which the icon 501 is displayed on the splash screen 500, the present invention is not limited to this. For example, the splash screen 500 may display a logo of a provider of the communication application, the name of the communication application, the status of processing executed by the communication application, etc.
[0055] In S402, the communication application determines whether the communication application is running in the second environment. That is, in S402, the communication application performs environment determination. If the communication application determines that the communication application is running in the second environment, the process proceeds to S417. On the other hand, if the communication application determines that the communication application is not running in the second environment, the process proceeds to S402.
[0056] In S402, specifically, the communication app executes an API of the OS of the information processing device 101 to acquire environmental information related to the environment in which the communication app is running. For example, when the environment in which the communication app is running is a first environment, the API to be executed is an API of the host OS (first OS), and information corresponding to the first environment is acquired as the environmental information. Therefore, when running in the first environment, the communication app is determined to be not running in the second environment. On the other hand, for example, when the environment in which the communication app is running is a second environment, the API to be executed is an API of the guest OS (virtual Android OS), and information corresponding to the second environment is acquired as the environmental information. Therefore, when running in the second environment, the communication app is determined to be running in the second environment.
[0057] Here, it is assumed that the communication application runs in the first environment. Therefore, in S402 of this example, it is determined that the communication application does not run in the second environment, and the process proceeds to S403. A case will be described below.
[0058] In S403, the communication application executes communication with the external server 171 via the OS of the information processing device 101. That is, in S403, the communication application executes communication execution processing. In this embodiment, the communication is communication for downloading a file from the external server 171.
[0059] The file downloaded from the external server 171 includes, for example, information about a privacy policy. A privacy policy is a policy on how personal information is handled. This information includes, for example, the version of the privacy policy and a URL for displaying a web page containing the privacy policy.
[0060] The file also includes a list showing the models of communication devices 151 that are compatible with applications other than the communication application. This list will be described in detail later.
[0061] In S404, the communication application determines whether an error has occurred as a result of attempting to download the file. If the communication application determines that an error has occurred, the process proceeds to S410. On the other hand, if the communication application determines that no error has occurred, the process proceeds to S405. Specifically, the communication application makes this determination based on whether the OS of the information processing device 101 has notified the application of the occurrence of an error.
[0062] In S405, the communication application determines whether the file download has finished. If the communication application determines that the download has finished, the process proceeds to S406. On the other hand, if the communication application determines that the download has not finished, the process proceeds to S404. Specifically, the communication application makes this determination based on whether the OS of the information processing device 101 has notified the user that the download has finished.
[0063] In S406, the communication application parses (analyzes) the file and stores the parsed file in a memory such as the ROM 104.
[0064] In S407, the communication application determines whether a predetermined operation has been performed. If the communication application determines that a predetermined operation has been performed, the process proceeds to S410. On the other hand, if the communication application determines that a predetermined operation has not been performed, the process proceeds to S408. The predetermined operation includes, for example, either a user operation to agree to the above-mentioned privacy policy or a user operation to disagree.
[0065] In S407, for example, the communication application performs this determination based on the file stored in S406. As described above, the file that the communication application downloaded from external server 171 and stored in a memory such as ROM 104 includes the version of the privacy policy. The communication application checks whether the same version as the newly stored version is already stored. If the same version as the newly stored version is already stored, the communication application determines that the predetermined operation has been performed. On the other hand, if the same version as the newly stored version is not stored, the communication application determines that the predetermined operation has not been performed.
[0066] In S408, the communication application displays a permission screen (not shown) on the operation display unit 108 based on the downloaded file. The permission screen (not shown) is a screen for requesting the user to agree to the privacy policy. The permission screen (not shown) displays, for example, an outline of the privacy policy and a link button for displaying a web page describing the privacy policy. The link button is displayed linked to the URL of the web page that will be displayed when the link button is operated. In this embodiment, the URL linked to the link button is included in the downloaded file. That is, in this embodiment, the content of the URL linked to the link button displayed on the permission screen is controlled based on the downloaded file. Note that the display content of the permission screen itself may be controlled based on the downloaded file. For example, if a URL is displayed on the permission screen, the displayed URL may be controlled based on the downloaded file. When the link button is operated by the user, the communication application launches a web browser and controls the web browser to display the web page based on the URL linked to the link button. In addition, the consent screen (not shown) displays an interface (e.g., a check box) that can accept instructions on whether or not to agree to the privacy policy, and an interface (e.g., an OK button) that can accept instructions to end the display of the consent screen (not shown).
[0067] In S409, the communication application determines whether or not an instruction to end the display of the permission screen (not shown) has been received. If the communication application determines that the instruction has been received, the process proceeds to S410. On the other hand, if the communication application determines that the instruction has not been received, the process of S409 is repeated.
[0068] In S410, the communication application determines whether the communication device 151 is registered in the communication application. If the communication application determines that the communication device 151 is registered, the process proceeds to S412. On the other hand, if the communication application determines that the communication device 151 is not registered, the process proceeds to S411. For example, if the process of FIG. 4 is executed at the first startup after the communication application is installed in the information processing device 101, it is determined in S410 that the communication device 151 is not registered.
[0069] In S411, the communication application performs a registration process for the communication device 151. The registration process will be described later with reference to FIG. 8. Through the registration process, the communication application acquires information about the communication device 151. The information about the communication device 151 includes, for example, model information about the communication device 151, information indicating the printing method of the communication device 151, and the like.
[0070] In S412, the communication application determines whether or not the communication device 151 registered in the communication application is an inkjet printer. If the communication application determines that the communication device 151 is an inkjet printer, the process proceeds to S414. On the other hand, if the communication application determines that the communication device 151 is not an inkjet printer, the process proceeds to S413. Specifically, in S412, the communication application makes this determination based on information indicating the printing method of the communication device 151, which information was acquired through the registration process. That is, in S412, the communication application determines whether or not the communication device 151 registered in the communication application is a printer of a predetermined printing method.
[0071] In S413, the communication application displays a top screen for an electrophotographic (toner) printer on the operation display unit 108. Reference is now made to Fig. 6, which shows an example of a top screen 600 displayed in S413. The top screen 600 displayed by the communication application displays information 601 indicating the communication device 151 registered in the communication application, and interfaces 602 to 605 that can accept instructions to execute each function provided by the communication application.
[0072] The information 601 indicating the communication device 151 may be, for example, an icon of the communication device 151 registered in the communication application, or model information such as a model name.
[0073] The document print button 602 is, for example, an interface capable of receiving an instruction to execute a print job transmission function (document print function) for a document file. The print job transmission function is, for example, a function to transmit a print job to the communication device 151 to cause the communication device 151 to print image data selected by a user on the information processing device 101. For example, when the user presses the document print button 602, the user can select a document file to be printed on the information processing device 101 and perform print settings and an instruction to execute printing.
[0074] A document file is a file in a data format compatible with the print job transmission function. For example, the data format compatible with a document file (a data format that can be printed by a communication application using the document printing function) may be, for example, a data format compatible with Portable Document Format (hereinafter referred to as PDF), a data format compatible with Microsoft Word, a data format compatible with Microsoft Excel, a data format compatible with Microsoft PowerPoint, etc. Note that the data format is not limited to the above, and other data formats may also be used.
[0075] The scan button 603 is an interface capable of receiving, for example, an instruction to execute a scan job transmission function. The scan job transmission function is a function that transmits a scan job to the communication device 151 to cause the communication device 151 to execute a scan and transmit image data obtained by the scan to the information processing device 101.
[0076] The copy 1 button 604 is, for example, an interface capable of receiving an instruction to execute a copy job transmission function. The copy job transmission function is, for example, a function of transmitting a print job to the communication device 151 to cause the communication device 151 to print image data captured by the information processing device 101.
[0077] The email send button 605 is, for example, an interface that can accept an instruction to execute an email application sending function. The email application sending function is, for example, a function that instructs the OS to start an email application installed in the information processing device 101. The email application starting function is a function that executes a function similar to the scan job sending function to receive image data obtained by scanning from the communication device 151 and attach the image data to an email.
[0078] Returning to the description of Figure 4, in S414, the communication application determines whether the communication device 151 being registered is a model that is compatible with another application other than the communication application. If the communication application determines that the model is compatible with the other application, the process proceeds to S415. On the other hand, if the communication application determines that the model is not compatible with the other application, the process proceeds to S416.
[0079] Specifically, in S414, the communication application performs this determination (registration determination) based on a list indicating models of communication devices 151 compatible with the print application, which is included in the file downloaded from the external server 171, and on information about the communication device 151, which will be described later. For example, if the registered model of communication device 151 is included in the list, the communication application determines that the model is compatible with other applications. On the other hand, if the registered model of communication device 151 is not included in the list, the communication application determines that the model is not compatible with other applications.
[0080] In S415, the communication application displays a top screen that can accept an instruction to start another application on the operation and display unit 108. In S416, the communication application displays a top screen that cannot accept an instruction to start another application on the operation and display unit 108.
[0081] Here, reference will be made to Figures 7(A) and (B). Figure 7(A) shows an example of a top screen 700 displayed by the communication application in S415. Figure 7(B) shows an example of a top screen 710 displayed by the communication application in S416.
[0082] 7A displays information 701 indicating communication devices 151 registered in the communication application, and interfaces 702 to 707 capable of accepting instructions to execute each function provided by the communication application. Here, a description similar to that of the top screen 600 in FIG. 6 will be omitted.
[0083] Cloud button 705 is, for example, an interface capable of receiving an instruction to start executing a cloud function. The cloud function is, for example, a function that causes communication device 151 to execute a predetermined process via external server 171. The predetermined process is, for example, printing.
[0084] For example, when a user uses the cloud function for the first time, the user first registers the communication device 151 with an external server 171 on the Internet. After that, the user can use a communication app to send a print job from the information processing device 101 to the registered communication device 151 via the external server 171, thereby causing the communication device 151 to execute printing. In other words, the cloud function is, for example, a print service that uses the cloud.
[0085] The copy 2 button 706 is a function for transmitting, to the communication device 151, a copy job for causing the communication device 151 to execute copying (scanning), for example.
[0086] The application button 707 is, for example, an interface capable of receiving an instruction to execute an application launch function. The application launch function is, for example, a function to instruct the OS of the information processing device 101 to launch an application other than the communication device 151 installed in the information processing device 101.
[0087] The other app is, for example, a print app that causes the communication device 151 to print predetermined image data. Specifically, the other app provides, for example, a function to download a template as the predetermined image data from the external server 171 or the like. The other app also provides, for example, a function to send a print job that causes the communication device 151 to print the downloaded predetermined image data. Here, the predetermined image data is, for example, data for creating a paper craft.
[0088] In this embodiment, the predetermined image data is described as data for creating a paper craft, but the present invention is not limited to this. The image data may be data for creating New Year's cards, posters, labels, postcards, business cards, etc.
[0089] Next, a top screen 710 displayed by the communication application in S416 will be described with reference to Fig. 7(B). Here, descriptions similar to those of the top screen 600 in Fig. 6 and the top screen 700 in Fig. 7(A) will be omitted.
[0090] 7(B) does not display an interface (application start button 707) that can accept an instruction to execute the application start function described in connection with the top screen 701. In this way, the communication application performs display control to change the interface displayed on the top screen based on a list of models that are compatible with other applications included in a file downloaded from the external server 171.
[0091] <Registration process> Next, the registration process executed by the communication application in S411 will be described with reference to Fig. 8. Fig. 8 is a flowchart showing an example of the registration process executed by the communication application. In this flowchart, the process executed by the communication application is realized, for example, by the CPU 103 expanding a control program stored in a memory such as the ROM 104 into the RAM 105 and executing it. The process in Fig. 11 may be executed, for example, when the communication application is installed in the information processing device 101 by a user operation and is started for the first time.
[0092] In S801, the communication application searches for the communication device 151 on the network to which the information processing device 101 belongs. Specifically, in S801, the communication application searches for the communication device 151 by, for example, instructing the OS to broadcast a signal requesting a response from the communication device 151 on the network to which the information processing device 101 belongs. The signal requesting a response from the communication device 151 includes, for example, information indicating the communication device 151 corresponding to the communication application. Specifically, the signal is, for example, a packet. The packet may include, for example, an IP address of the communication device 151 corresponding to the communication application that is stored in advance in the communication application.
[0093] In S802, the communication application determines whether or not the communication device 151 has been found on the network to which the information processing device 101 belongs. If the communication application determines that the communication device 151 has been found, the process proceeds to S803. On the other hand, if the communication application determines that the communication device 151 cannot be found, the process proceeds to S804.
[0094] Specifically, when the communication application searches for the communication device 151 in S801 and receives a response from the communication device 151, the communication application determines that the communication device 151 has been discovered. For example, when the communication device 151 and the access point 131 have already been connected by a user operation or the like, the communication application determines that the communication device 151 has been discovered in S802. That is, the information processing device 101 and the communication device 151 are each connected to the access point 131, which is the above-mentioned infrastructure connection state. Furthermore, when the information processing device 101 and the communication device 151 have already been directly connected by a user operation or the like, the communication application determines that the communication device 151 has been discovered in S802. On the other hand, when the communication application does not receive a response from the communication device 151, the communication application determines that the communication device 151 cannot be discovered.
[0095] In S803, the communication application performs processing to register the communication device 151 in the communication application. Specifically, for example, the communication application requests information about the communication device 151 from the discovered communication device 151, and acquires the information about the communication device 151. The communication application also stores the acquired information about the communication device 151. The information about the communication device 151 includes, for example, capability information about the communication device 151, the MAC address of the communication device 151, and model information about the communication device 151. The capability information about the communication device 151 specifically includes a list of information about functions supported by the communication device 151, information about consumables (ink, paper) available for use in the communication device 151, and information indicating the printing method of the communication device 151. In this way, the communication application can control the display of the top screen described above by acquiring the information about the communication device 151 in S803.
[0096] Furthermore, in S803, the communication application stores information indicating the communication mode at the time of registration. For example, when the communication application acquires information about communication device 151 from communication device 151 via an infrastructure connection, the communication application stores information indicating that communication device 151 was registered via the infrastructure connection. On the other hand, for example, when the communication application acquires information about communication device 151 from communication device 151 via a direct connection, the communication application stores information indicating that communication device 151 was registered via the direct connection.
[0097] Furthermore, in S803, the information about the communication device 151 acquired from the communication device 151 by the communication application includes a MAC address for an infrastructure connection or a direct connection of the communication device 151. The MAC address for an infrastructure connection of the communication device 151 is different from the MAC address for a direct connection of the communication device 151. Furthermore, when registering the communication device 151 via an infrastructure connection, the communication application may store the SSID of the access point 131 to which the information processing device 101 is connected.
[0098] In S804, the communication application notifies the user that it is urging the user to operate the communication device 151 in the network setup mode. For example, the communication application may display a message or the like on the operation display unit 108 urging the user to operate the communication device 151 in the network setup mode.
[0099] When the communication device 151 is set to the network setup mode, it operates as a network setup access point (connection setting AP, setup access point) as described above. Furthermore, the communication device 151 becomes capable of transmitting identification information, a password, and the like of the communication device 151 to the information processing device 101. The identification information of the communication device 151 includes information such as the SSID, manufacturer name, serial number, and model name.
[0100] In S805, the communication application searches for communication device 151 in the network setup mode using communication unit 109 and short-range wireless communication unit 110. The communication application also displays the search results on operation display unit 108. For example, the communication application may also display on operation display unit 108 an interface capable of accepting an instruction to select communication device 151 from the search results displayed on operation display unit 108.
[0101] In S806, the communication application establishes a connection with the communication device 151 that has received a selection instruction from the search results displayed in S805. Here, since the communication device 151 is operating in network setup mode, the password of the communication device 151 may not be required when connecting the information processing device 101 to the network formed by the communication device 151.
[0102] In S807, the communication application transmits a request for a list of access points around the communication device 151 to the communication device 151 with which the connection was established in S806. The communication application also receives the list of access points from the communication device 151.
[0103] In S808, the communication application displays the list of access points received from the communication device 151 on the operation display unit 108 or the like. Also, for example, the communication application displays an interface (not shown) capable of accepting an instruction to select an access point on the operation display unit 108 or the like. Also, for example, the communication application displays an interface (not shown) capable of accepting an instruction to select whether or not the access point desired by the user is included in the list.
[0104] In S809, the communication application determines whether the user's desired access point is included in the list displayed in S808. If the communication application determines that the desired access point is included, the process proceeds to S810. On the other hand, if the communication application determines that the desired access point is not included, the process proceeds to S816. For example, the communication application makes this determination based on a user operation on an interface that can accept an instruction to select whether the user's desired access point displayed in S808 is included in the list. The following explanation will be divided into a case where the user's desired access point is included (Yes in S809) and a case where the user's desired access point is not included (No in S809).
[0105] <If the user's desired access point is present (Yes in S809)> In S810, the communication application accepts input of the password of the access point for which the selection instruction has been accepted. The following describes an example in which the user selects access point 131 from the list of access points displayed in S808. In S810, for example, the communication application may display, on the operation display unit 108, an interface that can accept input of the password of access point 131. Note that if the settings of access point 131 allow connection to access point 131 without a password, this process may be skipped and the process may proceed to S811.
[0106] In S811, the communication application transmits connection information such as the password and SSID of the access point 131 for which the communication application has accepted the selection instruction to the communication device 151. The communication application also transmits to the communication device 151 a connection request to the access point 131 for which the communication application has accepted the selection instruction. That is, the communication application transmits information for making the communication device 151 belong to the network formed by the access point 131. Note that if the setting of the access point 131 allows connection to the access point 131 without a password, only the connection request to the access point 131 may be transmitted to the communication device 151.
[0107] In S812, the communication application disconnects the connection between the information processing device 101 and the communication device 151. After the connection between the information processing device 101 and the communication device 151 in network setup mode is disconnected by the communication application, a reconnection function of the OS of the information processing device 101 reconnects the information processing device 101 to the access point 131. The reconnection function is a function that is executed automatically without an instruction from the communication application. The access point 131 reconnected by the reconnection function of the OS is an access point that corresponds to connection information held by the OS and is an access point to which the information processing device 101 has previously connected.
[0108] In S813, the communication application searches for the communication device 151 on the network formed by the access point 131 to which the information processing device 101 is connected. Specifically, for example, the application specifies identification information (such as a device name or a serial number) of the communication device 151 and broadcasts it on the network formed by the access point 131 to request a response from the communication device 151.
[0109] In S814, the communication application determines whether or not the communication device 151 was discovered in the processing of S813. If the communication application determines that the communication device 151 was discovered, the process proceeds to S803. On the other hand, if the communication application determines that the communication device 151 was not discovered, the process proceeds to S815. Specifically, if the communication application receives a response from the communication device 151 as a result of searching for the communication device 151 in S813, the communication application determines that the communication device 151 was discovered. On the other hand, if the communication application does not receive a response from the communication device 151, the communication application determines that the communication device 151 was not discovered.
[0110] Here, the processing of S803 when the processing of S802 to S814 is executed is the same as the processing of S803 executed when the information processing device 101 and the communication device 151 are in an infrastructure-connected state and it is determined that they have been discovered in S802 (if Yes in S802), so the explanation will be omitted.
[0111] In S815, the communication application notifies the user that the network to which the information processing device 101 belongs is different from the network to which the communication device 151 belongs. For example, the communication application may display on the operation display unit 108 or the like a message indicating that the network to which the information processing device 101 belongs is different from the network to which the communication device 151 belongs.
[0112] <If the user's desired access point is not available (No in S809)> In S816, the communication application transmits a request for connection information of the communication device 151 to the communication device 151. The communication application also receives the connection information of the communication device 151 from the communication device 151. Here, the connection information of the communication device 151 is, for example, a password, an SSID, or the like.
[0113] In S817, the communication application disconnects the connection between the information processing device 101 and the communication device 151 operating in the network setup mode. The communication application also notifies the user to prompt the user to connect the information processing device 101 and the communication device 151. For example, the communication application may display a message on the operation display unit 108 to prompt the user to connect the information processing device 101 and the communication device 151. By issuing such a notification, the user can be prompted to establish a connection between the information processing device 101 and the communication device 151 by the above-mentioned direct connection.
[0114] In S813, the communication application searches for the communication device 151 on the network to which the information processing device 101 belongs.
[0115] In S814, the communication application determines whether or not the communication device 151 was discovered in the processing of S813. If the communication application determines that the communication device 151 was discovered, the process proceeds to S803. On the other hand, if the communication application determines that the communication device 151 was not discovered, the process proceeds to S815.
[0116] The processing of S803 when the processing of S802 to S814 is executed is the same as the processing of S803 executed when the information processing device 101 and the communication device 151 are directly connected and it is determined that they have been discovered in S802 (Yes in S802), so explanation will be omitted.
[0117] In S815, the communication application notifies the user that the network to which the information processing device 101 belongs is different from the network to which the communication device 151 belongs. For example, the communication application may display on the operation display unit 108 or the like a message indicating that the network to which the information processing device 101 belongs is different from the network to which the communication device 151 belongs.
[0118] <Example of processing when a communication app runs in the second environment> Next, a process when the communication application runs in the second environment will be described. When the communication application runs in the second environment, the process is executed via the OS of the information processing device 101, and the OS is, for example, a guest OS (virtual Android OS).
[0119] In S401, the communication application performs the same processing as when the communication application operates in the first environment, and therefore a description of this processing will be omitted.
[0120] In S402, the communication application determines whether it is running in the second environment. Here, it is assumed that the communication application runs in the second environment. Therefore, in this example, in S402, it is determined that the communication application is running in the second environment, and the process proceeds to S417. The following describes a case in which the communication application determines that it is running in the second environment and proceeds to S417.
[0121] In addition, in S402, the communication application determines the operating environment of the communication application, and if the determination result is the first environment, it does not execute the processing of S420 described below, but if the operating environment is the second OS operating as the host OS, it switches the processing to execute S420 described below.
[0122] In S417, the communication application attempts to acquire the IP address of the information processing device 101. For example, the communication application attempts to acquire the IP address of the information processing device 101 by a first method. The first method is a method of using a first API, and the IP address acquired by the first method may hereinafter be referred to as a first IP address.
[0123] The first API is an API for acquiring information specified by the communication app as information to be acquired from the host OS. That is, in S417, the communication app executes the first API by specifying, as information to be acquired, the IP address of a Wi-Fi network interface managed by Chrome OS (second OS), which is the host OS in the second environment. That is, the first IP address is the IP address of the Wi-Fi network interface managed by Chrome OS (second OS), which is the host OS in the second environment. Specifically, by executing this first API, the communication app instructs the guest OS to acquire the first IP address. Upon receiving the instruction to acquire the first IP address from the communication app, the guest OS instructs the host OS to acquire the first IP address. As a result, the guest OS acquires the first IP address from the host OS. The guest OS then sends the first IP address to the communication app. In this way, the communication app can acquire the IP address assigned to the actual Wi-Fi network interface, not the IP address assigned to the virtual Wi-Fi network interface, from the host OS via the guest OS. In other words, the communication application is a device to which the information processing device 101 is connected via Wi-Fi, and can acquire an IP address assigned by an external device operating as an access point.
[0124] Furthermore, the first API may be, for example, an API that specifies and sets the process to be executed by the OS. Specifically, the first API may be a class for starting an external process from a communications application. An external process is an external command or program. The class for starting an external process from a communications application may use, for example, a command called ProcessBuilder()#command(). For example, the communications application may use the command called ProcessBuilder()#command() and specify " / system / bin / getprop" and "arc.net.ipv4.host_address" as arguments. " / system / bin / getprop" is a command for checking system properties. Furthermore, "arc.net.ipv4.host_address" is an argument used when the command is executed, and is used when the communications application specifies the information to be acquired.
[0125] In S418, the communication application determines whether or not the first IP address has been acquired. If the communication application determines that the first IP address has been acquired, the process proceeds to S420. On the other hand, if the communication application determines that the first IP address has not been acquired, the process proceeds to S419.
[0126] In S419, the communication application acquires a gateway address from the information processing device 101. The gateway address is, for example, an IP address of an external device that relays between the information processing device 101's own network and an external network. In other words, the gateway address is an IP address of an external device that forms a network to which the information processing device 101 belongs and operates as an access point.
[0127] In S419, for example, the communication application acquires the gateway address by a second method different from the first method. The second method is a method of using a second API different from the first API, and the IP address acquired by the second method may be hereinafter referred to as the second IP address.
[0128] The second API is an API for acquiring information specified by the communication app as information to be acquired from the host OS. That is, in S419, the communication app executes the second API by specifying the IP address of a Wi-Fi network interface (gateway) managed by Chrome OS (second OS), which is the host OS in the second environment, as information to be acquired. That is, the second IP address is the IP address of the Wi-Fi network interface (gateway) managed by Chrome OS (second OS), which is the host OS in the second environment. Specifically, by executing this second API, the communication app instructs the guest OS to acquire the second IP address. Upon receiving the instruction to acquire the second IP address from the communication app, the guest OS instructs the host OS to acquire the second IP address. As a result, the guest OS acquires the second IP address from the host OS. The guest OS then transmits the second IP address to the communication app. In this way, the communication application can obtain the IP address of the actual Wi-Fi network interface (gateway) from the host OS via the guest OS, instead of the IP address assigned to the virtual Wi-Fi network interface. In other words, the communication application can obtain the IP address of an external device that is connected to the information processing device 101 via Wi-Fi and that operates as an access point.
[0129] Furthermore, the second API may be, for example, an API that specifies and sets the process to be executed by the OS. Specifically, the second API may be a class for starting an external process from a communications application. An external process is an external command or program. The class for starting an external process from a communications application may use, for example, a command called ProcessBuilder()#command(). For example, the communications application may use the command called ProcessBuilder()#command() and specify " / system / bin / getprop" and "arc.net.ipv4.host_gateway" as arguments. " / system / bin / getprop" is a command for checking system properties. Furthermore, "arc.net.ipv4.host_gateway" is an argument used when the command is executed and is used when the communications application specifies the information to be acquired.
[0130] In S420, the communication application determines whether or not the information processing device 101 belongs to the network of the communication device 151. That is, in S420, the communication application performs network determination of the information processing device 101. If the communication application determines that the information processing device 101 belongs to the network of the communication device 151, the process proceeds to S410. On the other hand, if the communication application determines that the information processing device 101 does not belong to the network of the communication device 151, the process proceeds to S403.
[0131] That is, as described above, in the first environment (NO in S402), the communication application controls to communicate with the external server. On the other hand, as described above, in a state in which the information processing device 101 belongs to the network formed by the communication device 151, communication with the external server may fail. Furthermore, in a state in which the communication application operates in the second environment, it may take time to perform an error determination as to whether the communication has failed. In a state in which the communication application operates in the second environment and the information processing device 101 belongs to the network formed by the communication device 151, the communication application controls not to communicate with the external server. In this manner, it is possible to save time that would otherwise be required to communicate with the external server.
[0132] Here, the case where the information processing device 101 belongs to the network of the communication device 151 means that the information processing device 101 and the communication device 151 are directly connected via Wi-Fi without going through an external access point, as described above. That is, the processing of S420 is, in other words, processing of determining whether or not the information processing device 101 is connected to the Wi-Fi network formed by the communication device 151 without going through the external access point 131. That is, the processing of S420 can also be said to determine whether or not the information processing device 101 is directly connected to the communication device 151.
[0133] Furthermore, the case where the information processing device 101 does not belong to the network of the communication device 151 refers to the case where the information processing device 101 belongs to a Wi-Fi network formed by an external access point 131. In other words, the processing of S420 is also processing of determining whether or not the information processing device 101 belongs to the Wi-Fi network 131 formed by an external access point. In other words, the processing of S420 can also be said to determine whether or not the communication form between the information processing device 101 and the communication device 151 is an infrastructure connection. Note that the case where the information processing device 101 does not belong to the network of the communication device 151 may also include the case where the information processing device 101 is not connected to any Wi-Fi network.
[0134] Specifically, in S420, for example, the communication application determines whether the information processing device 101 belongs to the network of the communication device 151 by using either the first IP address acquired by the processing of S402 or the second IP address acquired by the processing of S403. Specifically, for example, the communication application compares either the first IP address or the second IP address with the IP address of the communication device 151 that has been held in advance since the communication application was installed in the information processing device 101, and makes the determination based on the comparison result. In the following description, the IP address of the communication device 151 that has been held in advance since the communication application was installed in the information processing device 101 is referred to as a third IP address. The IP addresses managed by the host OS of the information processing device 101 include the first IP address assigned by the currently connected device and the second IP address of the currently connected device, as described above. In the present embodiment, when the information processing device 101 and the communication device 151 are directly connected via Wi-Fi, the communication device 151 assigns a third IP address to the information processing device 101. Therefore, when the information processing device 101 belongs to the network of the communication device 151, the first IP address acquired in S417 is the address assigned by the communication device 151. Furthermore, the second IP address acquired in S418 is the third IP address of the communication device 151. Therefore, the communication app can determine whether the information processing device 101 belongs to the network of the communication device 151 by comparing either the first IP address or the second IP address with the third IP address stored in advance.
[0135] Furthermore, in S420, the communication application specifically compares, for example, the network portion of either the first IP address or the second IP address with the network portion of the IP address of the communication device 151, and determines whether the network portions are the same. If it is determined that the network portions of the IP addresses are the same, it can be determined that the information processing device 101 belongs to the network of the communication device 151. On the other hand, if it is determined that the network portions of the IP addresses are different, it can be determined that the information processing device 101 does not belong to the network of the communication device 151. Note that in S420, the communication application may make the determination by comparing the entire IP addresses, rather than comparing the network portions of the IP addresses.
[0136] Furthermore, of the network portion and host portion of the IP address of communication device 151, the network portion may be unique to the provider (vendor) of communication device 151. The network portion is information for identifying the network to which the device belongs. The host portion is information for identifying the device that belongs to the network.
[0137] In S420, if it is determined that the communication application does not belong to the network of the communication device 151 and the process proceeds to S403, the processes from S403 onwards are the same as when the communication application operates in the first environment.
[0138] Furthermore, in S420, if it is determined that the communication application belongs to the network of the communication device 151 and the process proceeds to S410, the description of the processes from S410 onwards will be omitted as it is the case when the communication application operates in the first environment.
[0139] A case will be described in which the communication app determines in S420 that the information processing device 101 belongs to the network of the communication device 151, and then executes the process of S414 after performing the processes of S410 to S412. In this case, the communication app has not downloaded a file from the external server 171 via the OS of the information processing device 101. However, for example, the communication app may have determined in S420 that the information processing device 101 does not belong to the network of the communication device 151 at a previous startup. In such a case, the communication app may have attempted to download a file from the external server 171 in S403 and stored the file in S406. That is, when the communication app determines in S420 that the information processing device 101 belongs to the network of the communication device 151 and then executes the process of S414, it refers to whether a file is stored in a memory such as the ROM 104. If a file is stored, the communication app determines whether the communication device 151 being registered is a model that supports an app other than the communication app, based on the file and information about the communication device 151 to be registered.
[0140] In the present embodiment, the communication app proceeds to S410 if it is determined that it belongs to the network of communication device 151. However, this is not limiting. For example, the communication app may skip S410 to S414 and proceed to S416 if it determines that it belongs to the network of communication device 151. In the above description, both the permission screen-related process (S407 to S409) and the top screen-related process (S410 to S416) are executed as processes executed when the app is launched. However, this is not limiting. For example, only one of the permission screen-related process and the top screen-related process may be executed when the app is launched. In other words, only one of the permission screen-related process and the top screen-related process may be executed as processes based on a file downloaded from external server 171. In the above description, the process of S418 and S419 is executed after S417. However, this is not limiting. The processes of S418 and S419 may be omitted. That is, the process may proceed immediately to S420 after the process of S417. Also, if the communication application does not switch the display content between the inkjet printer screen and the electrophotographic printer screen, the process of S412 may be omitted. That is, the process may proceed immediately to S414 after the process of S410 or S411.
[0141] As described above, according to the present embodiment, when the communication application operates in the first environment, the application controls the communication to execute communication with an external server via the OS of the information processing device 101. On the other hand, when the communication application operates in the second environment and the information processing device 101 belongs to the network formed by the communication device 151, the application controls the communication not to execute communication with the external server. With this configuration, when the communication application operates in the second environment, communication with the external server can be executed, and the time that would be caused by a communication error can be eliminated. In other words, the convenience of a program that can run in an operating environment that is an OS that operates as a host OS and a guest OS can be improved.
[0142] Second Embodiment The second embodiment will be described below with respect to differences from the first embodiment. In the first embodiment, when a communication application receives a start-up instruction, the application determines the operating environment and switches between determining whether or not to determine the network to which the information processing device 101 belongs. In addition, in the first embodiment, the communication with the external server 171 for information processing via the OS is described as an example of communication for downloading a file. In this embodiment, when a selection of a file to be uploaded is received, the communication application determines the operating environment and switches between determining whether or not to determine the network to which the information processing device 101 belongs. In addition, in this embodiment, a form including communication for uploading a file will be described.
[0143] <Example of communication app processing> Please refer to Fig. 9. Fig. 9 is a flowchart showing an example of processing executed by a communication application. In this flowchart, the processing executed by the communication application is realized, for example, by CPU 103 expanding a control program stored in a memory such as ROM 104 into RAM 105 and executing the program.
[0144] The process of FIG. 9 is executed, for example, when the communication application receives an instruction to select a file to be uploaded. The process of FIG. 9 may also be executed, for example, when an instruction to execute a print job transmission function is received. In this embodiment, the file to be uploaded may be, for example, a document file or an image file. In this embodiment, a photo print button (not shown) may be displayed on a top screen (not shown) displayed by the communication application. The photo print button (not shown) is, for example, an interface that can receive an instruction to execute a print job transmission function (photo print function) for an image file. An image file is a file in a data format that supports the print job transmission function.
[0145] For example, when a communication application runs in the first environment, data formats corresponding to image files include a data format corresponding to Joint Photographic Experts Group (hereinafter, JPEG), a data format corresponding to Graphics Interchange Format (hereinafter, GIF), a data format corresponding to Portable Network Graphics (hereinafter, PNG), a data format corresponding to Microsoft Windows Bitmap Image (hereinafter, BMP), and a data format corresponding to High Efficiency Image File Format (hereinafter, HEIF).
[0146] Furthermore, when the communication application runs on the second OS, the data format corresponding to the image file (the data format that can be printed by the communication application's photo printing function) is, for example, a data format corresponding to JPEG, a data format corresponding to GIF, a data format corresponding to PNG, a data format corresponding to BMP, etc. Note that the data format is not limited to the above-mentioned ones, and other data formats may also be used.
[0147] The following describes the processing of FIG. 9 when a communication application is installed and executed in both the first environment and the second environment.
[0148] <Example of processing when a communication app runs in the first environment> In S901, the communication application displays a progress screen on the operation display unit 108 based on the reception of an instruction to execute communication. Here, reference is made to Fig. 10. Fig. 10 shows an example of a progress screen 1000 displayed by the communication application in S901. The progress screen 1000 displays, for example, a message 1001 indicating that processing based on the reception of the instruction to execute communication is currently being executed, an icon 1002 indicating the execution status of the processing, and an interface 1003 that can receive an instruction to stop the processing.
[0149] In S902, the communication application determines whether the communication application is running in the second environment. If the communication application determines that the communication application is running in the second environment, the process proceeds to S903. On the other hand, if the communication application determines that the communication application is not running in the second environment, the process proceeds to S911. The process of S902 is similar to the process of S402, and therefore a description thereof will be omitted. Here, it is assumed that the communication application is running in the first environment. Therefore, in S902 of this example, the case where the communication application determines that the communication application is not running in the second environment and the process proceeds to S903 will be described below.
[0150] In S903, the communication application executes communication with the external server 171 via the OS of the information processing apparatus 101. In this embodiment, this communication is communication for uploading a file to the external server 171.
[0151] The file uploaded to the server by the communication application may be, for example, the document file described above or an image file.
[0152] In S904, the communication application determines whether an error occurred as a result of attempting to upload the file. If the communication application determines that an error occurred, the process proceeds to S910. On the other hand, if the communication application determines that no error occurred, the process proceeds to S905. Specifically, the communication application makes this determination based on whether the OS of the information processing device 101 notifies the application of the occurrence of an error.
[0153] In S905, the communication application determines whether the file upload has finished. If the communication application determines that the upload has finished, the process proceeds to S906. On the other hand, if the communication application determines that the download has not finished, the process proceeds to S904. Specifically, the communication application makes this determination based on whether the OS of the information processing device 101 has notified the end of the upload.
[0154] In S906, the communication application communicates with the external server 171 via the OS of the information processing device 101. That is, in S906, the communication application performs communication execution processing. In this embodiment, the communication is communication for downloading a converted file from the external server 171. The external server performs conversion processing on the uploaded file, for example. The conversion processing may be processing for converting the uploaded file into a data format that can be printed by the communication device 151, for example. Furthermore, the conversion processing may be processing for converting the uploaded file into a file based on the print settings, for example, when a file and information related to print settings have been uploaded.
[0155] In S907, the communication application determines whether an error has occurred as a result of attempting to download the converted file. If the communication application determines that an error has occurred, the process proceeds to S910. On the other hand, if the communication application determines that no error has occurred, the process proceeds to S908. The determination in S907 is made based on whether the OS of the information processing device 101 has notified the user of the occurrence of an error, as in S404.
[0156] In S908, the communication application determines whether the download of the converted file has finished. If the communication application determines that the download has finished, the process proceeds to S909. On the other hand, if the communication application determines that the download has not finished, the process proceeds to S907. The determination in S908 is made based on whether the OS of the information processing device 101 has notified the end of the download, as in S405.
[0157] In S909, the communication application displays a preview screen based on the completion of downloading the converted file. See FIG. 11(A). FIG. 11(A) shows an example of a preview screen 1100 displayed by the communication application in S909. The preview screen 1100 displays, for example, a print preview 1101 and an OK button 1102. The print preview 1101 may display, for example, an image based on a file selected by the user. The OK button 1102 may be, for example, an interface capable of receiving an instruction to send a print job to the communication device 151.
[0158] In S910, the communication application displays a notification screen. Here, reference is made to FIG. 11(B). FIG. 11(B) shows an example of the notification screen 1110 displayed by the communication application in S910. The notification screen 1110 displays, for example, a message 1111 indicating that communication with the external server 171 is not possible, an OK button 1112, and the like. Note that the message is not limited to the example shown in the figure. For example, the notification screen 1110 may display a message indicating that an error has occurred during communication. The OK button 1112 may be an interface capable of receiving an instruction to end the display of the notification screen 1110.
[0159] <Example of processing when a communication app runs in the second environment> Next, a process when the communication application runs in the second environment will be described.
[0160] In S901, the communication application performs the same processing as when the communication application operates in the first environment, and therefore a description of this processing will be omitted.
[0161] In S902, the communication application determines whether it is running in the second environment. Here, it is assumed that the communication application runs in the second environment. Therefore, in this example, in S902, it is determined that the communication application is running in the second environment, and the process proceeds to S911. The following describes a case in which the communication application determines that it is running in the second environment and proceeds to S911.
[0162] The processes of S911 to S913 are the same as the processes of S417 to S419, and therefore a description thereof will be omitted. Note that, like the processes of S418 and S419, the processes of S912 and S913 may also be omitted.
[0163] In S914, the communication application determines whether or not the information processing device 101 belongs to the network of the communication device 151. If the communication application determines that the information processing device 101 belongs to the network of the communication device 151, the process proceeds to S910. On the other hand, if the communication application determines that the information processing device 101 does not belong to the network of the communication device 151, the process proceeds to S903.
[0164] This determination is performed in the same manner as in S420, and therefore a description thereof will be omitted. Furthermore, the processes of S903 to S910 are the same as when the communication application runs in the first environment, and therefore a description thereof will be omitted.
[0165] As described above, according to this embodiment, when a communication application receives a file to be uploaded, the application determines the operating environment of the communication application. When the communication application is operating in the first environment, the application controls to attempt to upload the file. On the other hand, when the communication application is operating in the second environment and the information processing device 101 belongs to the network 151 formed by the communication device 151, the application controls not to attempt to upload the file. With this configuration, when the communication application is operating in the second environment, uploading to an external server is attempted, and the time that would be incurred due to a communication error can be saved.
[0166] The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the 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 realizes one or more functions.
[0167] The disclosure of the present embodiment includes the following program, information processing device, and control method for the information processing device. (Item 1) A program operable on an operating system (OS) of an information processing device, The computer of the information processing device, a communication execution means for executing communication with an external server of the information processing device via the OS; a network determination means for determining whether the information processing device belongs to a network formed by a communication device that is external to the information processing device and different from the server; a switching means for switching processing so that, when the operating environment of the program is a first operating environment on a first OS operating as a host OS but not on a guest OS, the network determination means does not execute the determination, and, when the operating environment is a second operating environment on a second OS operating as a host OS and on a guest OS, the network determination means executes the determination; When the device is in the first operating environment, the device controls the communication execution means to perform the communication, and when the device is in the second operating environment and it is determined that the device belongs to the network, the device controls the communication execution means not to perform the communication. A program characterized by: (Item 2) causing the computer to further function as an environment determination means for determining whether the operating environment of the program is the first operating environment or the second operating environment; The switching means is The process is switched depending on the determination result of the environment determination means. 2. The program according to item 1, (Item 3) When the computer is in the second operating environment, the computer further functions as a first acquisition unit that acquires a first IP address of the information processing device; the network determination means determines whether the information processing device belongs to the network by using the first IP address acquired by the first acquisition means; 3. The program according to item 1 or 2, (Item 4) When the information processing device is in the second operating environment, the computer is further caused to function as a second acquisition means for acquiring a second IP address of an external device that forms a network to which the information processing device belongs and that is different from the communication device that operates as an access point; the network determination means determines whether the information processing device belongs to the network by using the second IP address acquired by the second acquisition means. 3. The program according to item 1 or 2, (Item 5) causing the computer to further function as error determination means for determining whether an error has occurred in the communication when the communication is executed by the communication execution means; 5. The program according to any one of items 1 to 4. (Item 6) The communication communication for downloading a file from the server; 6. The program according to any one of items 1 to 5, (Item 7) causing the computer to further function as a display unit that displays a predetermined screen based on the file downloaded via the communication; 7. The program according to item 6, (Item 8) The file is Contains information about the policy for handling users' personal information, The predetermined screen is A screen for requesting the user to agree to the policy. 8. The program according to item 7, (Item 9) causing the computer to further function as a registration determination means for determining whether or not information about the communication device is registered in the program when the control means controls the communication execution means not to perform the communication; when the registration determination means determines that the information is registered in the program, the computer is further caused to function as a display control means that switches a screen display based on the information. 9. The program according to any one of items 1 to 8, (Item 10) causing the computer to further function as a registration unit that registers the information in the program when the registration determination unit determines that the information is not registered in the program; 10. The program according to item 9, (Item 11) When the program receives a start instruction, the switching means switches the process. 11. The program according to any one of items 1 to 10, (Item 12) The communication This is communication for uploading a file to the server. 5. The program according to any one of items 1 to 4. (Item 13) causing the computer to further function as a receiving means for receiving a selection of the file to be uploaded; When the selection of the file is accepted by the accepting means, the switching means switches the process. 13. The program according to item 12, (Item 14) and causing the computer to further function as a notification means for notifying the user that the communication cannot be performed when the control means controls the communication execution means so as not to perform the communication. 14. The program according to any one of items 1 to 13, (Item 15) The state in which the information processing device belongs to the network is The information processing device and the communication device are directly connected to each other without going through the external access point. 15. The program according to any one of items 1 to 14, (Item 16) 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. 16. The program according to any one of items 1 to 15, (Item 17) the communication device is a printing device, 2. The program according to item 1, (Item 18) a communication execution means for executing communication with an external server of the information processing device via an operating system (OS) of the information processing device; a network determination means for determining whether the information processing device belongs to a network formed by a communication device that is external to the information processing device and different from the server; a switching means for switching processing so that, when the operating environment of the program operable on the OS is a first operating environment on a first OS operating as a host OS but not on a guest OS, the network determination means does not execute the determination, and, when the operating environment is a second operating environment on a second OS operating as a host OS and on a guest OS, the network determination means executes the determination; a control means for controlling the communication execution means to perform the communication when the device is in the first operating environment, and for controlling the communication execution means not to perform the communication when the device is in the second operating environment and it is determined that the device belongs to the network. 1. An information processing device comprising: (Item 19) A control method for an information processing device, comprising: a communication execution step of executing communication with an external server of the information processing device via an operating system (OS) of the information processing device; a network determination step of determining whether the information processing device belongs to a network formed by a communication device that is external to the information processing device and different from the server; a switching step of switching the processing so that the network determination step is not executed when the operating environment of the program is a first operating environment on a first OS that operates as a host OS but not on a guest OS, and the network determination step is executed when the operating environment is a second operating environment on a second OS that operates as a host OS and on a guest OS; a control step of controlling the communication execution step so as to perform the communication when the operating environment is the first operating environment, and controlling the communication execution step so as not to perform the communication when the operating environment is the second operating environment and it is determined that the device belongs to the network, 2. A method for controlling an information processing apparatus comprising:
[0168] The invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the spirit and scope of the invention. Accordingly, the following claims are appended to apprise the public of the scope of the invention. [Explanation of symbols]
[0169] 101 information processing device: 103 CPU: 104 ROM: 105 RAM: 131 access point: 151 communication device: 171 external server
Claims
1. A program operable on an operating system (OS) of an information processing device, The computer of the information processing device, a communication execution means for executing communication with an external server of the information processing device via the OS; a network determination means for determining whether the information processing device belongs to a network formed by a communication device that is external to the information processing device and different from the server; a switching means for switching processing so that, when the operating environment of the program is a first operating environment on a first OS operating as a host OS but not on a guest OS, the network determination means does not execute the determination, and, when the operating environment is a second operating environment on a second OS operating as a host OS and on a guest OS, the network determination means executes the determination; When the device is in the first operating environment, the control means controls the communication execution means to perform the communication, and when the device is in the second operating environment and it is determined that the device belongs to the network, the control means controls the communication execution means not to perform the communication. A program characterized by:
2. causing the computer to further function as an environment determination means for determining whether the operating environment of the program is the first operating environment or the second operating environment; The switching means is The process is switched depending on the determination result of the environment determination means.
2. The program according to claim 1 .
3. When the computer is in the second operating environment, the computer further functions as a first acquisition unit that acquires a first IP address of the information processing device; the network determination means determines whether the information processing device belongs to the network by using the first IP address acquired by the first acquisition means; 2. The program according to claim 1 .
4. When the information processing device is in the second operating environment, the computer is further caused to function as a second acquisition means for acquiring a second IP address of an external device that forms a network to which the information processing device belongs and that is different from the communication device that operates as an access point; the network determination means determines whether the information processing device belongs to the network by using the second IP address acquired by the second acquisition means; 2. The program according to claim 1 .
5. causing the computer to further function as error determination means for determining whether an error has occurred in the communication when the communication is executed by the communication execution means; 2. The program according to claim 1 .
6. The communication communication for downloading a file from the server; 2. The program according to claim 1 .
7. causing the computer to further function as a display unit that displays a predetermined screen based on the file downloaded via the communication; 7. The program according to claim 6.
8. The file is Contains information about the policy for handling users' personal information, The predetermined screen is A screen for requesting the user to agree to the policy.
8. The program according to claim 7,
9. causing the computer to further function as a registration determination means for determining whether or not information about the communication device is registered in the program when the control means controls the communication execution means not to perform the communication; when the registration determination means determines that the information is registered in the program, the computer is further caused to function as a display control means that switches a screen display based on the information.
2. The program according to claim 1 .
10. causing the computer to further function as a registration unit that registers the information in the program when the registration determination unit determines that the information is not registered in the program; 10. The program according to claim 9.
11. When the program receives a start instruction, the switching means switches the process.
2. The program according to claim 1 .
12. The communication This is communication for uploading a file to the server.
2. The program according to claim 1 .
13. causing the computer to further function as a receiving means for receiving a selection of the file to be uploaded; When the selection of the file is accepted by the accepting means, the switching means switches the process.
13. The program according to claim 12.
14. and causing the computer to further function as a notification means for notifying the user that the communication cannot be performed when the control means controls the communication execution means so as not to perform the communication.
2. The program according to claim 1 .
15. The state in which the information processing device belongs to the network is The information processing device and the communication device are directly connected to each other without going through the external access point.
2. The program according to claim 1 .
16. 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.
2. The program according to claim 1 .
17. the communication device is a printing device, 2. The program according to claim 1 .
18. a communication execution means for executing communication with an external server of the information processing device via an operating system (OS) of the information processing device; a network determination means for determining whether the information processing device belongs to a network formed by a communication device that is external to the information processing device and different from the server; a switching means for switching processing so that, when the operating environment of the program operable on the OS is a first operating environment on a first OS operating as a host OS but not on a guest OS, the network determination means does not execute the determination, and, when the operating environment is a second operating environment on a second OS operating as a host OS and on a guest OS, the network determination means executes the determination; a control means for controlling the communication execution means to perform the communication when the device is in the first operating environment, and for controlling the communication execution means not to perform the communication when the device is in the second operating environment and it is determined that the device belongs to the network.
1. An information processing device comprising:
19. A control method for an information processing device, comprising: a communication execution step of executing communication with an external server of the information processing device via an operating system (OS) of the information processing device; a network determination step of determining whether the information processing device belongs to a network formed by a communication device that is external to the information processing device and different from the server; a switching step of switching the processing so that the network determination step is not executed when the operating environment of the program is a first operating environment on a first OS operating as a host OS but not on a guest OS, and the network determination step is executed when the operating environment is a second operating environment on a second OS operating as a host OS and on a guest OS; a control step of controlling the communication execution step so as to perform the communication when the operating environment is the first operating environment, and controlling the communication execution step so as not to perform the communication when the operating environment is the second operating environment and it is determined that the device belongs to the network, 2. A method for controlling an information processing apparatus comprising:
Citation Information
Patent Citations
Image processor, image processor control program and image processing system
JP2009049679A