program
The program addresses the challenge of operating in host and guest OS environments by using different APIs to acquire IP addresses and adjust communication forms, enhancing convenience and efficiency.
Patent Information
- Application Number
- JP2024004661
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-16
- Publication Date
- 2025-07-29
AI Technical Summary
Existing programs face challenges in operating conveniently in environments where both a host OS and a guest OS are present, leading to inadequate determination and communication form selection between information processing devices.
A program that determines the operating environment as either a first OS operating as a host OS or a second OS operating as both a host and guest OS, using different APIs to acquire respective IP addresses and adjust communication forms accordingly.
Enhances convenience by enabling appropriate IP address acquisition and communication form determination, improving operational efficiency in diverse OS environments.
Smart Images

Figure 2025110686000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a program.
Background Art
[0002] Patent Document 1 describes a form in which two virtual computers operating on respective operating systems of an image processing apparatus OS (host OS) and a sink client OS (guest OS) are formed on a memory.
Prior Art Document
Patent Document
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] By the way, as the operating environment that is on the OS operating as the host OS and also on the guest OS becomes widespread, it is desired to improve the convenience of programs that can operate in such an operating environment.
[0005] An object of the present invention is to improve the convenience of programs that can operate in an operating environment that is on the OS operating as the host OS and also on the guest OS.
Means for Solving the Problems
[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 apparatus, wherein an operation environment of the program is determined by a first determination step of determining whether it is a first operation environment that operates on a first OS operating as a host OS but not on a guest OS, or a second operation environment that operates on a second OS operating as a host OS and is also on a guest OS. When it is determined by the first determination step that the first operation environment is present, a first acquisition step of acquiring a first IP address of the information processing apparatus having the first operation environment by a first API (Application Programming Interface). When it is determined by the first determination step that the second operation environment is present, a second acquisition step of acquiring a second IP address of the information processing apparatus having the second operation environment by a second API different from the first API. A second determination step of determining whether the information processing apparatus belongs to a first network formed by a communication apparatus external to the information processing apparatus using either the first IP address acquired by the first acquisition step or the second IP address acquired by the second acquisition step. When it is determined by the second determination step that the information processing apparatus belongs to the first network, an execution step of executing a predetermined process for making both the information processing apparatus and the communication apparatus belong to a second network different from the first network is provided. A program for causing a computer to execute is provided.
Effect of the Invention
[0007] According to the present invention, it is possible to improve the convenience of a program operable in an operation environment that operates on an OS operating as a host OS and is also on a guest OS.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Mode for Carrying Out the Invention
[0009] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiments, not all of these plurality of features are essential to the invention, and the plurality of features may be arbitrarily combined. Further, in the accompanying drawings, the same or similar configurations are denoted by the same reference numerals, and redundant descriptions are omitted.
[0010] [First Embodiment] The information processing apparatus and communication apparatus included in the communication system of the present embodiment will be described. As the information processing apparatus, a smartphone is exemplified in the present embodiment, but the present invention is not limited thereto, and various apparatuses such as a mobile terminal, a notebook PC, a tablet terminal, a PDA (Personal Digital Assistant), a digital camera, etc. are applicable. Further, as the communication apparatus, any apparatus capable of performing wireless communication with the information processing apparatus is applicable. For example, if it is a printer, it can be applied to an inkjet printer, a full-color laser beam printer, a monochrome printer, etc. Further, it is applicable not only to printers but also to scanners, copiers, facsimile apparatuses, mobile terminals, smartphones, notebook PCs, tablet terminals, PDAs, digital cameras, music playback devices, televisions, smart speakers, etc. In addition, it is also applicable to a multi-function device having a plurality of functions such as a copying function, a FAX function, a printing function, a scanner function, etc. In the present embodiment, the communication apparatus is assumed to be a multi-function printer having a printing function, a scanner function, etc.
[0011] <Regarding the hardware configuration of each device> First, the configuration of the information processing apparatus included in the communication system of the present embodiment and the communication apparatus capable of communicating with the information processing apparatus will be described with reference to the block diagram of FIG. 1. Further, in the present embodiment, the following configuration is described as an example, but the functions are not particularly limited to those shown in this figure.
[0012] The information processing apparatus 101 includes an input interface 102, a CPU 103, a ROM 104, a RAM 105, an external storage device 106, an output interface 107, an operation display unit 108, a communication unit 109, a short-range wireless communication unit 110, a photographing device 111, etc. The input interface 102 is an interface for receiving data input and operation instructions from the user, and is composed of a physical keyboard, a display button, a touch panel, etc. Note that the output interface 107 described later and the input interface 102 may have the same configuration, and the output of the screen and the reception of operations from the user may be performed with the same configuration.
[0013] The CPU 103 is a system control unit that controls the entire information processing apparatus 101. The ROM 104 stores fixed data such as control programs executed by the CPU 103, data tables, and an embedded operating system (hereinafter referred to as OS) program. In the present embodiment, each control program stored in the ROM 104 performs software execution control such as scheduling, task switching, and interrupt processing under the management of the embedded OS stored in the ROM 104. In the present embodiment, it is assumed that the OS held by the ROM 104 and operating on the information processing apparatus 101 is the Android (registered trademark) OS provided by Google or the Chrome (registered trademark) OS provided by Google. When the OS operating on the information processing apparatus 101 is the Chrome OS, the ROM 104 also holds a virtual Android OS for operating an app for the Android OS described later on the information processing apparatus 101.
[0014] The RAM 105 is composed of an SRAM (Static Random Access Memory) etc. that requires a backup power supply. Since the data in the RAM 105 is held by a primary battery for data backup (not shown), important data such as program control variables can be stored without being volatile. Also, a memory area for storing the setting information of the information processing apparatus 101 and the management data of the information processing apparatus 101 etc. is also provided in the RAM 105. Further, the RAM 105 is also used as the main memory and work memory of the CPU 103.
[0015] The external storage device 106 is provided with an application program (hereinafter referred to as a communication application) having a function of communicating with the communication device 151. Specifically, the communication application is, for example, an application having a printing function for causing the communication device 151 to execute printing and a scanning function for causing the communication device 151 to execute scanning. However, it is not limited to this form, and it may be an application having either a printing function or a scanning function (a printing application or a scanning application), or an application having other functions. For example, it may be a setup application having a function of executing network setup processing for connecting the communication device 151 to an external access point. In the present embodiment, it is assumed that the communication application has all of a printing function, a scanning function, and a function of executing network setup processing. The external access point is, for example, the access point 131 described later. Further, the external storage device 106 is provided with various programs such as a printing information generation program for generating print information interpretable 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 application or may be configured separately from the application. Further, the external storage device 106 stores various information used by these programs. Further, the external storage device 106 also stores image data obtained from other information processing devices or the Internet via the communication unit 109. In the present embodiment, it is assumed that the communication application is an application for the Android OS.
[0016] The output interface 107 is an interface for controlling the operation display unit 108 to perform display of data and notification of the state 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 performs display of data and notification of the state of the information processing device 101. Note that a soft keyboard provided with keys such as a numeric input key, a mode setting key, a decision key, a cancel key, and a power key may be installed on the operation display unit 108 to receive input from the user via the operation display unit 108.
[0017] The communication unit 109 is configured to connect to devices such as the communication device 151 and perform data communication. For example, the communication unit 109 can be connected to an access point (not shown) within the communication device 151. By connecting the communication unit 109 and the access point within the communication device 151, the information processing device 101 and the communication device 151 can communicate with each other. Hereinafter, the access point may also be expressed as AP. Note that the communication unit 109 may communicate directly with the communication device 151 via wireless communication, or may communicate via an access point 131 existing outside the information processing device 101 and outside the communication device 151. As the wireless communication method, in this embodiment, it is assumed that the communication standards of the IEEE802.11 series are used. Note that the communication standards of the IEEE802.11 series are namely Wi-Fi (registered trademark).
[0018] In addition, examples of the access point 131 include devices 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 using an external access point is called a direct connection method. Also, a method in which the information processing device 101 and the communication device 151 are connected via an external access point 131 is called an infrastructure (hereinafter, infra) connection method.
[0019] The short-range wireless communication unit 110 is configured to wirelessly connect to devices such as the communication device 151 at a short range and perform data communication, and communicates by a communication method different from that of the communication unit 109. Examples of the short-range wireless communication method used by the short-range wireless communication unit 110 include Bluetooth (registered trademark) and Near Field Communication (NFC). Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 110 can be connected to the short-range wireless communication unit 157 within the communication device 151.
[0020] The imaging device 111 is a device that converts an image captured by an imaging element into digital data. The digital data is once stored in the RAM 105. Then, it is converted into a predetermined image format by a program executed by the CPU 103 and stored in the external storage device 106 as image data.
[0021] The communication device 151 includes a ROM 152, a RAM 153, a CPU 154, a print engine 155, a communication unit 156, a short-range wireless communication unit 157, an input interface 158, an output interface 159, an operation display unit 160, a scan control unit 161, etc. The communication device 151 can operate in the set connection mode when the connection mode (communication mode) is set.
[0022] The communication unit 156 is a configuration for the communication device 151 to communicate with other devices. In this embodiment, the communication unit 156 is assumed to communicate according to the communication standards of the IEEE802.11 series. The communication unit 156 has an access point for connecting to devices such as the information processing device 101 as an access point inside the communication device 151. Note that the access point can be connected to the communication unit 109 of the information processing device 101. The communication unit 156 may communicate directly with the information processing device 101 by wireless communication or may communicate via the access point 131. Also, the communication unit 156 may be equipped with hardware that functions as an access point, or may operate as an access point by software for making it function as an access point. In this embodiment, it is assumed that the communication unit 156 and the short-range wireless communication unit 157 are realized by one wireless chip. That is, in this embodiment, a combo chip corresponding to both the communication function of the communication standards of the IEEE802.11 series and the communication function by the short-range wireless communication method is used. However, it is not limited to this form, and the communication unit 156 and the short-range wireless communication unit 157 may be realized by separate wireless chips respectively.
[0023] The RAM 153 is composed of a DRAM or the like that requires a backup power supply. Since the data in the RAM 153 is retained by the supply of a power source for data backup (not shown), important data such as program control variables can be stored without being volatile. Also, the RAM 153 is used as the main memory and work memory of the CPU 154, and operates as a reception buffer for temporarily storing print information received from the information processing apparatus 101 or the like, or stores various types of information.
[0024] The ROM 152 stores fixed data such as control programs executed by the CPU 154, data tables, and OS programs. 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 the embedded OS stored in the ROM 152. Also, a memory area for storing data that needs to be retained even when the power supply for the setting information of the communication apparatus 151, the management data of the communication apparatus 151, etc. is not supplied is also provided in the ROM 152.
[0025] The CPU 154 is a system control unit that controls the entire communication apparatus 151. Based on the print engine 155, the information stored in the RAM 153, and the print job received from the information processing apparatus 101 or the like, an image is formed on a recording medium such as paper using a recording agent such as ink, and the print result is output. At this time, since the print job transmitted from the information processing apparatus 101 or the like has a large amount of transmission data and high-speed communication is required, it is received via the communication unit 156 that can communicate at a higher speed than the short-range wireless communication unit 157.
[0026] The short-range wireless communication unit 157 is configured to perform wireless connection with a device such as the information processing device 101 at a short range and execute data communication, and communicates by a communication method different from that of the communication unit 156. Examples of the short-range wireless communication method used by the short-range wireless communication unit 157 include Bluetooth (registered trademark) and NFC. Bluetooth may be Bluetooth Classic or Bluetooth Low Energy. The short-range wireless communication unit 157 can be connected 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 later and the input interface 158 may have the same configuration, and the output on the screen and the reception of operations from the user may be performed with the same configuration. The output interface 159 is an interface for the operation display unit 160 to perform control for displaying data and notifying the state of the communication device 151.
[0028] The operation display unit 160 is composed of a display unit such as an LED (light-emitting diode) or an LCD (liquid crystal display), and displays data and notifies the state of the communication device 151. Note that a soft keyboard equipped with keys such as a numeric input key, a mode setting key, a determination key, a cancellation key, and a power key may be installed on the operation display unit 160 to receive input from the user via the operation display unit 160.
[0029] The scan control unit 161 includes an image sensor unit (reading unit) that scans a document placed on a document table or an Automatic Document Feeder (ADF) (not shown). The image sensor unit includes an image sensor in which elements for irradiating light onto the document, reading the reflected light thereof, and performing photoelectric conversion are arranged. The scan control unit 161 acquires image data by A / D (analog / digital) converting the analog electrical signal obtained by reading the document by the image sensor unit. The scan control unit 161 includes a circuit that performs DMA (direct memory access) transfer in order to store the acquired image data in the RAM 153.
[0030] <Regarding the direct connection method> Direct connection refers to a form in which devices are directly wirelessly connected (i.e., Peer to Peer) without going through an external device such as the access point 131. As one of the connection modes, the communication device 151 can operate in a mode (direct connection mode) for communicating by direct connection. In Wi-Fi communication, there are a plurality of modes for communicating by direct connection, such as the software AP mode and the Wi-Fi Direct (registered trademark) mode. Wi-Fi Direct is hereinafter referred to as WFD.
[0031] The mode in which direct connection is executed by WFD is called the WFD mode. WFD is a standard formulated by the Wi-Fi Alliance and is included in the communication standards of the IEEE802.11 series. In the WFD mode, after a device to communicate with is discovered based on device discovery information, the roles of the P2P group owner (GO) and the P2P client are determined, and then the remaining wireless connection process is performed. The group owner corresponds to the parent station (parent device) of Wi-Fi, and the client corresponds to the child station (child device) of Wi-Fi. This role determination corresponds to, for example, GO Negotiation in P2P. In the WFD mode in the state before the role determination, the communication device 151 is in a state that is neither the parent station nor the child station. Specifically, first, between the devices that perform communication, one device issues device discovery information to discover the device to connect in the WFD mode. When the other device that becomes the communication partner is discovered, information regarding services and functions that can be provided by each other's devices is confirmed between the two. Note that this confirmation of device supply information is optional and not essential. This device supply information confirmation phase corresponds to, for example, Provision Discovery in P2P. Next, by mutually confirming this device supply information, it is determined which will be the P2P client and which will be the P2P group owner as their roles. Next, after the client and the group owner are determined, parameters for communication by WFD are exchanged between the two. Based on the exchanged parameters, the remaining wireless connection process and the IP connection process are performed between the P2P client and the group owner. Note that in the WFD mode, the communication device 151 may always operate as the GO without executing the above-described GO Negotiation. That is, the communication device 151 may operate as the WFD mode which is the Autonomous GO mode. Also, the state in which the communication device 151 is operating in the WFD mode means, for example, a state in which the connection by WFD is not established but the communication device 151 is operating as the GO, or a state in which the connection by WFD is established and the communication device 151 is operating as the GO.
[0032] In the software AP mode, among the devices that perform communication (for example, the information processing apparatus 101 and the communication apparatus 151), one device (for example, the information processing apparatus 101) serves as a client that plays the role of requesting various services. And the other device realizes the function of an access point in Wi-Fi through software settings. The software AP corresponds to the parent station of Wi-Fi, and the client corresponds to the child station of Wi-Fi. In the software AP mode, the client searches for the device that becomes the software AP based on the device search information. When the software AP is searched, after going through the remaining wireless connection processing (such as establishing a wireless connection) between the client and the software AP, then the IP connection processing (such as assigning an IP address) is performed. Note that for the commands and parameters transmitted and received when realizing a wireless connection between the client and the software AP, those defined in the Wi-Fi standard may be used, and the description here is omitted.
[0033] In this embodiment, when the communication device 151 establishes and maintains a direct connection, it operates as a master station within the network to which the communication device 151 belongs. The master station is a device that constructs a wireless network and provides parameters used for connecting to the wireless network to slave stations. The parameters used for connecting to the wireless network are, for example, parameters related to the channels used by the master station. By receiving the parameters, the slave stations connect to the wireless network constructed by the master station using the channels used by the master station. In the direct connection mode, since the communication device 151 operates as a master station, the communication device 151 can determine which frequency band and which channels to use for communication in the direct connection mode. In this embodiment, it is assumed that the communication device 151 can use channels corresponding to the 2.4 GHz frequency band and channels corresponding to the 5 GHz frequency band for communication in the direct connection mode. And which frequency band to use (that is, which channels in which frequency band to use) can be arbitrarily set by the user according to the settings on the screen displayed by the communication device 151. However, in this embodiment, even if 5 GHz is selected on the screen displayed by the communication device 151, the communication device 151 does not use channels corresponding to the DFS (Dynamic Frequency Selection) band among the 5 GHz frequency bands for communication in the direct connection mode. In other words, the communication device 151 uses only channels corresponding to frequency bands other than the DFS band among the 5 GHz frequency bands for communication in the direct connection mode. When a radar wave in the frequency band corresponding to the channel being used is detected while using a channel corresponding to the DFS band, the currently used channel must be changed. Such a frequency band in which a channel change can occur due to the detection of a radar wave is called the DFS band. For example, when using a wireless chip corresponding to the DFS function, etc., channels corresponding to the DFS (Dynamic Frequency Selection) band among the 5 GHz frequency bands may be available for communication in the direct connection mode.
[0034] <Infrastructure (Infra) Connection Method> Infra connection is a connection form in which devices for communication (for example, information processing device 101 and communication device 151) are connected to an access point (for example, access point 131) that coordinates the network, and devices communicate with each other via the access point. As one of the connection modes, the communication device 151 can also operate in a mode (Infra connection mode) for communicating via Infra connection.
[0035] In Infra connection, each device searches for an access point using device search information. When the access point is searched, after the remaining wireless connection process (establishment of wireless connection, etc.) between the device and the access point, the IP connection process (assignment of IP address, etc.) is then performed. Note that for the commands and parameters transmitted and received when realizing a wireless connection between the device and the access point, those defined by the Wi-Fi standard may be used, and the description here is omitted.
[0036] When the communication device 151 operates in the infrastructure connection mode in this embodiment, the access point 131 operates as the master device and the communication device 151 operates as the slave device. That is, in this embodiment, the infrastructure connection refers to the connection between the communication device 151 operating as the slave device and the device operating as the master device. When the communication device 151 has established an infrastructure connection and the information processing device 101 has also established an infrastructure connection with the access point 131, communication between the communication device 151 and the information processing device 101 via the access point 131 becomes possible. Since the channel used for communication in the infrastructure connection is determined by the access point 131, the communication device 151 executes communication in the infrastructure connection using the channel determined by the access point 131. In this embodiment, it is assumed that the communication device 151 can use a channel corresponding to the 2.4 GHz frequency band and a channel corresponding to the 5 GHz frequency band for communication in the infrastructure connection. Note that the communication device 151 can also use a channel corresponding to the DFS band in the 5 GHz frequency band for communication in the infrastructure connection. Note that, in order for the information processing device 101 to communicate with the communication device 151 via the access point 131, it is necessary for the information processing device 101 to recognize that the communication device 151 belongs to the network formed by the access point 131. Also, when the information processing device 101 and the communication device 151 are connected to the access point 131 by an infrastructure connection, it becomes possible to discover the communication device 151 by broadcast executed by the information processing device 101.
[0037] <Regarding the network setup mode> The communication device 151 can operate in the network setup mode. The trigger for the communication device 151 to start operating in the network setup mode may be, for example, that the user presses a button for the network setup mode, or that the communication device 151 starts up (turns on the power) for the first time after shipment. The button for the network setup mode may be a hard (physical) button provided in the communication device 151, or a software button displayed on the display unit 158 of the communication device 151.
[0038] When the communication device 151 starts operating in the network setup mode, it enables Wi-Fi communication. Specifically, as an activation process for Wi-Fi communication, the communication device 151 enables an AP (access point for connection settings) inside the communication device 151 dedicated to the network setup mode. As a result, the communication device 151 becomes capable of establishing a direct connection with the information processing device 101 via Wi-Fi. Connection information (such as SSID (Service Set Identifier) and password) for connecting to the connection settings AP is pre-held in the communication application installed in the information processing device 101, and it is assumed that the information processing device 101 has recognized in advance the connection information for connecting to the connection settings AP. Therefore, unlike the connection information of the AP enabled in the direct connection mode, the connection information for connecting to the connection settings 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 ordinary Wi-Fi. That is, the communication device 151 may operate as a Group Owner and receive a setting command from the information processing device 101 through communication via WFD. Also, in the network setup mode, the communication device 151 may connect to the information processing device 101 via Bluetooth. Here, Bluetooth includes Bluetooth Classic and Bluetooth Low Energy (BLE). For example, the communication device 151 may operate as a slave device in BLE in the network setup mode and receive a setting command from the information processing device 101 through communication via BLE. Further, in the network setup mode, the communication device 151 may be capable of executing both network setup via Wi-Fi and network setup via BLE. That is, when starting to operate in the network setup mode, the communication device 151 may enable both Wi-Fi communication and BLE communication.Specifically, when the communication device 151 starts operating in the network setup mode, it may execute both the activation of the access point for connection settings and the activation of the advertisement state in which advertisement information is transmitted by BLE and the BLE connection becomes possible.
[0039] When the communication device 151 operates as the network setup mode, it controls the communication unit 156 and operates as an access point for network setup (access point for connection settings, access point for setup), which is only valid during the operation in the network setup mode. The access point for setup is different from the access point activated in the above-described soft AP mode. Also, the SSID of the access point for setup shall include a predetermined character string recognizable by the communication application of the information processing device 101.
[0040] In addition, the communication device 151 operating as the network setup mode shall use a predetermined communication protocol (communication protocol for setup) in the communication with the information processing device 101 connected to the access point for setup. Specifically, the communication protocol for setup is, for example, SNMP (Simple Network Management Protocol).
[0041] After starting the operation in the network setup mode, if a predetermined time has elapsed, the communication device 151 stops the operation in the network setup mode and invalidates the setup access point. Also, when receiving connection information for connecting to the access point 131 and an instruction to change the operation mode of the wireless communication from the information processing device 101 during the network setup mode, the setup access point is also invalidated. Further, it is assumed that the setup access point is an access point that does not require a password for connection. Note that the setup access point may be an access point that requires a password. In that case, the password used for connection to the setup access point is assumed to be a fixed (user-unmodifiable) password that the communication application has previously grasped.
[0042] <Regarding the software configuration of the information processing device 101> Next, the software configuration of the information processing device 101 in the present embodiment will be described. FIG. 2(a) is an example of the software configuration of the information processing device 101 when the host OS operating on the information processing device 101 is the Android OS (the first OS). In this form, an Android OS application operates on the Android OS. In this form, it is assumed that the software configuration of the information processing device 101 does not include Chrome OS. An environment in which the OS operating at the lowest layer of the information processing device 101 is the Android OS (not Chrome OS), like this form, is hereinafter referred to as the first environment. Specifically, the first environment is, for example, an environment in which the information processing device 101 has a host OS installed but no guest OS installed, and the application operates on the host OS. Also, for example, specifically, the first environment is, for example, an environment in which the information processing device 101 has both a host OS and a guest OS installed, but the application operating in the present embodiment operates on the host OS and operates without going through the guest OS (does not operate on the guest OS). Note that the host OS is the host operating system, and the guest OS is the guest operating system.
[0043] FIG. 2(b) shows an example of the software configuration of the information processing device 101 when the host OS running on the information processing device 101 is 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. 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.
[0044] Hereinafter, an application for the Android OS will be described. Note that the above-described communication application will be described as an example of an application for the Android OS. Also, an example will be described in which the 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 provides a function of communicating with a communication device 151 having a printing function and executing printing of data such as documents and images. An application developed in accordance with the Android OS so as to be executed on the Android OS may be referred to as an Android application.
[0045] When the communication application executes a predetermined function such as a cloud function of an external server, the information processing device 101 and the communication device 151 need to be in a predetermined communication form. In the present embodiment, as an example of the predetermined function, a function of causing the communication device 151 to execute processing via an external server (not shown) described later will be described. The predetermined communication form is, for example, a form in which the information processing device 101 and the communication device 151 can communicate with an external server (not shown) via a network formed by an external access point 131.
[0046] When the communication application receives an instruction to execute a predetermined function based on a user instruction or the like, it determines the communication form between the information processing device 101 and the communication device 151. When it is determined that the communication form is not capable of executing the predetermined function, processing for changing the communication form is performed, such as notifying the user. Here, the IP address of the information processing device is used to determine the communication form between the information processing device 101 and the communication device 151. For example, the communication application can determine whether the information processing device 101 belongs to the network formed by the communication device 151 by comparing the IP address of the information processing device 101 and the IP address of the communication device 151. Here, the IP address of the information processing device 101 is managed by the host OS. Also, the IP address of the information processing device 101 is assigned, for example, by a device (communication device 151 or access point 131) that operates as an access point to which the information processing device 101 is connected. The communication application can obtain the IP address of the information processing device 101 by using the API (Application Programming Interface) of the host OS.
[0047] However, depending on the information processing device 101, as described above, there may be a case where it has the first environment or a case where it has the second environment. That is, the configuration of the OS may differ depending on the information processing device 101. Here, when the communication application operates in the second environment and attempts to obtain the IP address of the information processing device 101 in the same manner as in the case of the first environment, the communication application obtains the IP address assigned by the host OS to the virtual OS. That is, the communication application obtains an IP address different from the IP address managed by the host OS. As a result, the communication application cannot appropriately determine the communication form between the information processing device 101 and the communication device 151. Furthermore, the communication application cannot appropriately perform the processing for changing the communication form.
[0048] Therefore, in the present embodiment, the method for obtaining the IP address of the information processing apparatus 101 is made different according to the OS configuration of the information processing apparatus 101. With such a configuration, the IP address of the information processing apparatus 101 can be obtained in both the first environment and the second environment, and the communication form between the information processing apparatus 101 and the communication apparatus 151 can be appropriately determined. As a result, the process for changing the communication form can be appropriately performed.
[0049] In the present embodiment, when the communication application executes a predetermined function, the communication application determines whether it is operating on a predetermined OS. The predetermined OS is, for example, the second OS described above. When the communication application determines that it is operating on the second OS, it obtains an IP address from the second OS. On the other hand, when the communication application determines that it is not operating on the second OS, it obtains an IP address from the first OS described above. That is, the communication application varies the method of obtaining the IP address according to the OS configuration of the information processing apparatus 101. Then, the communication application determines the communication form between the information processing apparatus 101 and the communication apparatus 151 using the obtained IP address. When the communication application determines that the communication form is not capable of executing the predetermined function, it performs a process for changing the communication form between the information processing apparatus 101 and the communication apparatus 151.
[0050] With such a form, the communication application can appropriately execute a process of varying the method of obtaining the IP address of the information processing apparatus according to the OS configuration of the information processing apparatus and changing the communication form for executing a predetermined function. <Communication Application (Communication App)> Hereinafter, the communication application will be described in detail. The communication application is an application having, for example, a printing function for causing a communication apparatus 151 functioning as a printer or a printing apparatus to print data such as document files and image files in the information processing apparatus 101. The communication apparatus 151 also has a function of importing image data, document data, etc. scanned by the communication apparatus 151 into the information processing apparatus 101. The communication application in the present embodiment has, for example, a print job transmission function, a scan job transmission function, a copy job transmission function, etc. as described later.
[0051] FIG. 3 is a diagram showing an example of a home screen of the communication application in the present embodiment. The home screen 300 of the communication application may be displayed when, for example, an icon indicating the communication application displayed on the operation display unit 108 of the information processing apparatus 101 is operated by the user. On the home screen 300 displayed by the communication application, information 301 indicating the communication device 151 registered in the communication application and interfaces 302 to 308 capable of receiving instructions to execute each function provided by the communication application are displayed.
[0052] The information 301 indicating the communication device 151 may be, for example, an icon of the communication device 151, model information such as a model name, or the like. Further, the information 301 indicating the communication device 151 may be, for example, information indicating the communication device 151 registered in the communication application. When the communication application is started for the first time by a user operation, for example, the communication application may execute a process for registering the communication device 151 described later in the communication application. In the following description, the process for registering the communication device 151 in the communication application may be referred to as a registration process.
[0053] The document print button 302 is an interface capable of receiving an instruction to execute a print job transmission function (document print function) of a document file, for example. The print job transmission function is a function of transmitting a print job for causing the communication device 151 to print image data selected by the user on the information processing apparatus 101 to the communication device 151, for example. For example, when the user presses the document print button 302, the user can select a document file to be printed on the information processing apparatus 101 and give print settings and an instruction to execute printing.
[0054] A document file is a file in a data format that supports the print job transmission function. For example, the data format corresponding to a document file (the data format that the communication app 300 can print by the document printing function) may be, for example, a data format corresponding to Portable Document Format (hereinafter, PDF), a data format corresponding to Microsoft Word, a data format corresponding to Microsoft Excel, a data format corresponding to Microsoft PowerPoint, etc. Note that it is not limited to the above-mentioned data formats, and other data formats may also be used.
[0055] The photo print button 303 is an interface that can receive an instruction to execute the print job transmission function (photo print function) of, for example, an image file. An image file is a file in a data format that supports the print job transmission function.
[0056] The data format corresponding to an image file may be, for example, 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), a data format corresponding to High Efficiency Image File Format (hereinafter, HEIF), etc., when the communication app operates in the first environment.
[0057] Also, the data format corresponding to an image file (the data format that the communication app can print by the photo print function) may be, 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., when the communication app operates on the second OS. Note that it is not limited to the above-mentioned data formats, and other data formats may also be used.
[0058] The scan button 304 is an interface that can receive an instruction to execute the scan job transmission function described above. The scan job transmission function is a function for transmitting a scan job for causing the printer 121 to execute a scan and transmitting the image data obtained by the scan to the information processing apparatus 101, for example.
[0059] The copy button 305 is an interface that can receive an instruction to execute the copy job transmission function described above. The copy job transmission function is a function for transmitting a print job for causing the communication device 151 to print the image data captured by the information processing apparatus 101 to the printer 121, for example.
[0060] The cloud button 306 is an interface that can receive an instruction to start executing the cloud function. The cloud function is a function (predetermined function) for causing the communication device 151 to execute a predetermined process via an external server (not shown), for example. The predetermined process is printing, for example. That is, the cloud function can also be said to be a function for providing a predetermined service to the user via an external server (not shown). The predetermined service is, for example, a cloud print service or a consumable management service. Further, the predetermined service is a service provided from the provider of the communication device 151 and is a service provided by an external server (not shown) on the Internet.
[0061] For example, when a user uses the cloud function for the first time, the communication device 151 is first registered with an external server (not shown) on the Internet. Thereafter, the user can cause the communication device 151 to execute printing by using a communication application to transmit a print job from the information processing apparatus 101 to the registered communication device 151 via the external server. That is, the cloud function is, for example, a print service using the cloud.
[0062] The content creation 307 is, for example, an interface capable of receiving an instruction to start the execution of the content creation function. The content creation function is, for example, a function for editing image data and creating content. The content may be, for example, a poster, an album, a photo book, a proof photo, a business card, a calendar, or the like.
[0063] The question button 308 is, for example, an interface capable of receiving an instruction to display information that is useful for the user when using the communication application. The information that is useful for the user when using the communication application may be, for example, questions frequently asked by users of the communication application and answers to those questions.
[0064] Also, in this embodiment, the cloud function is described as an example of a predetermined function, but it is not limited to this. For example, the communication application may have, as a predetermined function, a function of providing a user with a service other than cloud printing via an external server (not shown). Specifically, other functions are, for example, a point function, an automatic ink delivery function, etc. The point function is, for example, a function of providing a user with a point management service and a function of awarding points to the user according to the usage status of the communication device 151. For example, when the user uses the point function, the communication device 151 is registered in a predetermined service provided by an external server on the Internet. After that, when the user performs printing or replaces consumables such as ink and paper using the registered communication device 151, the user can receive points. The automatic ink delivery function is, for example, a function of providing a user with an automatic ink delivery service and a function of automatically delivering ink for use of the communication device 151 to the user. After the communication device 151 is registered in various services, the communication device 151 transmits the usage status of the communication device 151 to the external server at a predetermined timing. Note that, for example, an interface (not shown) capable of receiving an instruction to start execution of the point function may be provided separately from the cloud button 306 on the home screen 300 or other screens displayed by the communication application. Also, when the interface is pressed, a predetermined process is executed in the same manner as when the cloud button 306 is pressed. And the predetermined process executed here is, for example, a process of registering the point function and the automatic ink delivery function in the communication device 151. This process is the same as the process of registering the cloud function described later in the communication device 151.
[0065] In this embodiment, it is assumed that the communication application performs display control of interfaces 302 to 308 that can receive instructions to execute each function based on the registration process described later. Specifically, when no communication device 151 is registered in the communication application, it is assumed that the display is controlled so that interfaces 302 to 308 cannot be selected. Then, when any printer is registered in the communication application, it is assumed that the display is controlled so that interfaces 302 to 308 can be selected. For example, in the registration process described later, the communication application acquires information indicating the functions that the communication device 151 can support. For example, based on this information, the communication application may display only the interfaces of the functions corresponding to the communication device 151 so that they can be selected. Alternatively, the communication application may control the display so that the interfaces of the functions not supported by the communication device 151 cannot be selected. Specifically, the control to display the interface as non-selectable is, for example, control not to display the interface or control to display the selection of the interface as unacceptable (for example, grayscale display).
[0066] Also, the communication app may display on the home screen 300 an interface capable of receiving an instruction to start a function of causing the communication device 151 to execute a predetermined process via an external server (not shown) based on the communication form between the information processing device 101 and the communication device 151. For example, the cloud button 306 may be displayed in the case of a communication form in which the information processing device 101 and the communication device 151 are directly connected without going through the access point 131. Alternatively, the cloud button 306 may be displayed in the case of a communication form in which the information processing device 101 and the communication device 151 are each connected to an external access point. Specifically, for example, when the communication device 151 registered in the communication app supports the cloud function, the communication app searches for the communication device 151 on the network formed by the device to which the information processing device 101 is connected. For example, the communication app broadcasts on the network using the MAC address of the communication device 151 obtained in the registration process described later and requests a response from the communication device 151. When the communication app obtains a response from the communication device 151, it displays the cloud button 306 so that it can receive a selection instruction from the user. On the other hand, when the communication app cannot obtain a response from the communication device 151, it makes the cloud button 306 unable to receive a selection instruction from the user selection.
[0067] In the following description, a communication form 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 form 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.
[0068] <Registration Process> With reference to FIG. 11, the process of registering communication device 151 in the communication application in this embodiment (registration process) will be described. FIG. 11 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 and executing a control program stored in a memory such as the ROM 104 in the RAM 105. The process of 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.
[0069] In S1001, the communication application searches for communication device 151 on the network formed by access point 131 to which information processing device 101 is connected. Specifically, in S1001, for example, the communication device 151 is searched by broadcasting a signal requesting a response from the communication device 151 on the network. 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, for example, it is a packet. The packet may include, for example, the IP address of the communication device 151 corresponding to the communication application pre-stored in the communication application.
[0070] In S1002, the communication application determines whether information processing device 101 can discover communication device 151 on the network formed by the connected access point 131. If the communication application determines that communication device 151 has been discovered, it proceeds to S1003. On the other hand, if the communication application determines that communication device 151 cannot be discovered, it proceeds to S1004.
[0071] Specifically, when the communication app receives a response from the communication device 151 as a result of searching for the communication device 151 in S1001, it determines that the communication device 151 has been discovered. Also, the case where it is determined in S1002 that the communication app has discovered the communication device 151 is, for example, when the communication device 151 and the access point 131 are already connected by a user operation or the like. That is, each of the information processing device 101 and the communication device 151 is in a state of being connected to the access point 131, which is the above-described infrastructure connection state. On the other hand, when the communication app does not receive a response from the communication device 151, it determines that the communication device 151 cannot be discovered.
[0072] In S1003, the communication app performs a process of registering the communication device 151 with the communication app. Specifically, for example, the communication app requests information regarding the communication device 151 from the discovered communication device 151 and acquires information regarding the communication device 151. Also, the communication app stores the acquired information regarding the communication device 151. The information regarding the communication device 151 is, for example, the capability information of the communication device 151, the MAC address of the communication device 151, and the like. The capability information of the communication device 151 specifically includes a list of information on functions supported by the communication device 151, information on consumables such as paper and ink that can be used in the communication device 151, and the like.
[0073] In this way, by acquiring information regarding the communication device 151 in S1003, the communication app can perform display control of the interfaces 302 to 308 capable of receiving instructions for executing the above-described respective functions. Also, when the communication device 151 supports the cloud function, the communication app can confirm the communication form between the information processing device 101 and the communication device 151 using the MAC address of the communication device 151 acquired in S1003 and perform display control of the cloud button 306.
[0074] Also, when the communication app determines that the communication device 151 can be discovered in S1002 and executes the process of S1003, it stores information indicating that the communication device 151 is registered by means of the infrastructure connection. Also, when the communication app determines that the communication device 151 can be discovered in S1002 and executes the process of S1003, the information about the communication device 151 obtained from the communication device 151 includes the MAC address for the infrastructure connection of the communication device 151. Also, when registering the communication device 151 by means of the infrastructure connection, the communication app may store the SSID of the access point 131 to which the information processing device 101 is connected.
[0075] In S1004, the communication app notifies the user to prompt the communication device 151 to operate in the network setup mode. For example, the communication app may display on the operation display unit 108 a message or the like prompting the communication device 151 to operate in the network setup mode.
[0076] Note that when the communication device 151 is set to the network setup mode, it operates as the above-described network setup access point (connection setting AP, setup access point). Also, the communication device 151 can transmit the identification information, password, etc. 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.
[0077] In S1005, the communication app searches for the communication device 151 in the network setup mode using the communication unit 109 or the short-range wireless communication unit 110. Also, the communication app displays the search result on the operation display unit 108. Also, for example, the communication app may display on the operation display unit 108 an interface capable of receiving an instruction to select the communication device 151 from the search result displayed on the operation display unit 108.
[0078] In S1006, the communication app establishes a connection with the communication device 151 that received the selection instruction among the search results displayed in S1005. Here, since the communication device 151 is operating in the 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.
[0079] In S1007, the communication app sends a request for a list of access points around the communication device 151 to the communication device 151 for which the connection was established in S1006. Also, the communication app receives the list of access points from the communication device 151.
[0080] In S1008, the communication app 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 app displays an interface (not shown) on the operation display unit 108 or the like that can receive an instruction to select an access point. Also, for example, the communication app displays an interface (not shown) that can receive an instruction to select whether or not the access point desired by the user is included in the list.
[0081] In S1009, the communication app determines whether or not the access point desired by the user exists in the list displayed in S1008. If the communication app determines that the desired access point exists, it proceeds to S1010. On the other hand, if the communication app determines that there is no desired access point, it proceeds to S1016. For example, the communication app makes this determination based on the user operation of the interface that can receive an instruction to select whether or not the access point desired by the user is included in the list displayed in S1008. In the following description, the case where the access point desired by the user exists (Yes in S1009) and the case where there is no access point desired by the user (No in S1009) will be described separately.
[0082] (When the access point desired by the user exists (Yes in S1009)) In S1010, the communication app receives the input of the password of the access point that has received the selection instruction. Hereinafter, for example, a case where access point 131 in the list of access points displayed in S1008 is selected by the user will be described as an example. In S1010, for example, the communication app may display, on the operation display unit 108, an interface that can receive the input of the password of access point 131. If the setting of access point 131 is a setting that allows connection to access point 131 without a password, this process may be skipped and the process may proceed to S1011.
[0083] In S1011, the communication app transmits connection information such as the password and SSID of access point 131 that has received the selection instruction to the communication device 151. Further, the communication app transmits a connection request to access point 131 that has received the selection instruction to the communication device 151. That is, the communication app transmits information for making the communication device 151 belong to the network formed by access point 131. If the setting of access point 131 is a setting that allows connection to access point 131 without a password, it may be in a form where only the connection request to access point 131 is transmitted to the communication device 151.
[0084] In S1012, the communication app 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 the network setup mode is disconnected by the communication app, the information processing device 101 and access point 131 are connected by the reconnection function of the OS of the information processing device 101. The reconnection function is a function that is automatically executed without an instruction from the communication app. The access point 131 reconnected by the reconnection function of the OS is an AP corresponding to the connection information held by the OS and is an AP to which the information processing device 101 has been connected in the past.
[0085] In S1013, the communication app 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, by specifying the identification information (such as the device name or serial number) of the communication device 151 and broadcasting it on the network formed by the access point 131, a response from the communication device 151 is requested.
[0086] In S1014, the communication app determines whether the communication device 151 was discovered in the process of S1013. If the communication app determines that the communication device 151 was discovered, the process proceeds to S1003. On the other hand, if the communication app determines that the communication device 151 was not discovered, the process proceeds to S1015. Specifically, if the communication app receives a response from the communication device 151 as a result of searching for the communication device 151 in S1013, it determines that the communication device 151 was discovered. On the other hand, if the communication app does not receive a response from the communication device 151, it determines that the communication device 151 was not discovered.
[0087] Here, since the process of S1003 when the processes of S1002 to S1014 are executed is the same as the process of S1003 that is executed when it is determined that it was discovered in S1002 (when it is Yes in S1002), the description is omitted.
[0088] In S1015, the communication app notifies that the network to which the information processing device 101 is connected is different from the network to which the communication device 151 is connected. For example, the communication app may display a message to the effect that the network to which the information processing device 101 is connected is different from the network to which the communication device 151 is connected on the operation display unit 108 or the like.
[0089] (When there is no access point desired by the user (No in S1009)) In S1016, the communication app sends a request for the connection information of communication device 151 to communication device 151. Also, the communication app receives the connection information of communication device 151 from communication device 151. Here, the connection information of communication device 151 is, for example, a password, an SSID, or the like.
[0090] In S1017, the communication app disconnects the connection between information processing device 101 and communication device 151 operating in network setup mode. Also, the communication app notifies that it prompts the connection between information processing device 101 and communication device 151. For example, the communication app may display a message indicating that information processing device 101 and communication device 151 are to be connected on operation display unit 108. By performing such notification, it is possible to prompt the user to establish the connection between information processing device 101 and communication device 151 by the above-described direct connection.
[0091] In S1013, the communication app searches for communication device 151 on the network formed by the access point to which information processing device 101 is connected.
[0092] In S1014, the communication app determines whether communication device 151 was discovered in the process of S1013. If the communication app determines that communication device 151 was discovered, the process proceeds to the process of S1003. On the other hand, if the communication app determines that communication device 151 was not discovered, the process proceeds to the process of S1015.
[0093] Here, regarding the process of S1003 executed by the communication app via S1016 to S1017, the differences from the case of Yes in S1002 or the case of Yes in S1009 will be described. That is, here, the case where the process of S1003 is performed by direct connection will be described in terms of the differences from the case where the process of S1003 is performed by infrastructure connection.
[0094] When the communication mode between the information processing apparatus 101 and the communication apparatus 151 is a direct connection, in S1003, the communication application stores information indicating that the communication apparatus 151 has been registered by the direct connection. Further, the information about the communication apparatus 151 acquired by the communication application from the communication apparatus 151 includes the MAC address for direct connection. Note that the MAC address for infrastructure connection of the communication apparatus 151 described above is different from the MAC address for direct connection of the communication apparatus 151.
[0095] In S1015, the communication application notifies that the network to which the information processing apparatus 101 is connected is different from the network to which the communication apparatus 151 is connected. 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 apparatus 101 is connected is different from the network to which the communication apparatus 151 is connected.
[0096] <Processing of the communication application when executing a predetermined function> FIG. 4 is a flowchart showing an example of the operations executed by the communication application in the present embodiment. In this flowchart, the processing executed by the communication application is realized, for example, by the CPU 103 expanding and executing a control program stored in a memory such as the ROM 104 in the RAM 105.
[0097] Further, the processing in FIG. 4 is started, for example, based on receiving an instruction to start for executing a predetermined function. The predetermined function is a function for causing the communication apparatus 151 to execute a predetermined process via an external server (not shown). In the present embodiment, the above-described cloud function is described as an example of the predetermined function. That is, in the home screen 300 of FIG. 3, a case where the processing in FIG. 4 is executed based on the user pressing the cloud button 306 is described as an example. Note that the cloud button 306 has the communication apparatus 151 corresponding to the cloud function registered in the communication application, and can be pressed when the communication mode between the information processing apparatus 101 and the communication apparatus 151 is a direct connection or an infrastructure connection.
[0098] For example, the process in FIG. 4 may be executed based on the user pressing the cloud button 306 after the registration process is performed in a form where the information processing apparatus 101 and the communication apparatus 151 are directly connected. Also, for example, the process in FIG. 4 may be executed based on the user pressing the cloud button 306 after the registration process is performed in a form where the infrastructure is connected. In the following description, the process in FIG. 4 will be described separately for these two cases.
[0099] (Case of being executed after the registration process is performed in a directly connected state) In S401, the communication app obtains environment information regarding the environment in which the communication app is operating by executing the API of the Android OS. When the environment in which the communication app is operating is the first environment, the above-mentioned API to be executed is the API of the host OS, and information corresponding to the first environment is obtained as the environment information. On the other hand, when the environment in which the communication app is operating is the second environment, the above-mentioned API to be executed is the API of the virtual Android OS, and information corresponding to the second environment is obtained as the environment information. Then, based on the obtained environment information, the communication app determines whether it is operating in the first environment. If the communication app determines that it is operating in the first environment, it proceeds to S402, and if it determines that it is not operating in the first environment, it proceeds to S403. When it is determined that it is operating in the first environment, as described above, it is a case where the communication app is operating on the first OS that operates as the host OS but not on the guest OS. Also, when it is determined that it is not operating in the first environment, as described above, it is a case where the communication app is on the second OS that operates as the host OS and is operating on the guest OS.
[0100] The process of S402 is executed when the communication app is operating in the first environment. In S402, the communication app acquires the IP address of the information processing device 101 in the first method. The first method is a method of executing the first API, and the IP address acquired by the first method is hereinafter referred to as the first IP address. The first API is an API for acquiring the IP address assigned to the Wi-Fi network interface managed by the Android OS (the first OS). In the first environment, the Android OS (the first OS) is the host OS. Therefore, by executing the first API in the first environment, the IP address assigned to the Wi-Fi network interface managed by the host OS in the first environment is acquired from the host OS. Also, the Wi-Fi network interface managed by the host OS is a device to which the information processing device 101 is Wi-Fi connected, and an IP address is assigned by an external device operating as an access point. The external device operating as an access point corresponds to the Wi-Fi parent station (parent device) as described above.
[0101] Specifically, the first API is, for example, an API using the classes of WifiManager and WifiInfo. WifiManager is, for example, a class that manages the connection environment of the information processing device 101. WifiInfo is, for example, a class that acquires information about the Wi-Fi network to which the information processing device 101 is connected. More specifically, the first API acquires WifiInfo by, for example, the command WifiManager#getConnectionInfo(), and acquires the first IP address by the command WifiInfo#getIpAddress().
[0102] The process of S403 is executed when the communication app is operating in the second environment. In S403, the communication app acquires the IP address of the information processing device 101 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. The IP address acquired by the second method is hereinafter referred to as the second IP address. As described above, the first API is an API for acquiring the IP address assigned to the Wi-Fi network interface managed by the Android OS (the first OS). Therefore, when the first API is executed in the second environment, the IP address assigned to the virtual Wi-Fi network interface managed by the virtual Android OS operating as the guest OS is acquired. And with the IP address assigned to the virtual Wi-Fi network interface, the determination in S404 described later cannot be accurately executed. This is because the IP address assigned to the virtual Wi-Fi network interface is assigned by the Chrome OS (the second OS) which is the host OS. In other words, the IP address assigned to the virtual Wi-Fi network interface is not assigned by an external device that is a device to which the information processing device 101 is Wi-Fi-connected and operates as an access point. Therefore, in the present embodiment, in the second environment, the communication app acquires the IP address by using the second API instead of the first API.
[0103] The second API is an API for obtaining information specified by a communication app from the host OS as information to be obtained. That is, in S403, the communication app executes the second API by specifying, as the information to be obtained, the IP address of the Wi-Fi network interface managed by Chrome OS (the second OS), which is the host OS in the second environment. That is, the second IP address is the IP address of the Wi-Fi network interface managed by Chrome OS (the 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 obtain the second IP address. When the guest OS receives an instruction to obtain the second IP address from the communication app, the guest OS instructs the host OS to obtain the second IP address. Thereby, the guest OS obtains the second IP address from the host OS. Thereafter, the guest OS transmits the second IP address to the communication app. In this way, the communication app can obtain, via the guest OS from the host OS, the IP address assigned to the actual Wi-Fi network interface instead of the IP address assigned to the virtual Wi-Fi network interface. In other words, the communication app can obtain the IP address assigned by an external device that is a device to which the information processing apparatus 101 is Wi-Fi-connected and operates as an access point.
[0104] Also, the second API may be, for example, an API for specifying and setting the processing executed by the OS. Specifically, the second API may be a class for starting an external process from a communication app. The external process is an external command or program. For starting an external process from a communication app, a class may use, for example, a command such as ProcessBuilder()#command(). For example, the communication app may use a command such as 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. Also, "arc.net.ipv4.host_address" is an argument at the time of command execution and is used when the communication app specifies information to be acquired.
[0105] Note that in the first environment, since Chrome OS (the second OS) does not exist, the IP address of the Wi-Fi network interface managed by Chrome OS (the second OS) naturally does not exist. Therefore, in the first environment, for example, even if the communication app specifies to acquire the IP address of the Wi-Fi network interface managed by Chrome OS (the second OS) and executes the second API, appropriate information will not be acquired. Thus, in the first environment, the communication app does not use the second API and acquires the first IP address from the first OS, which is the host OS, using the first API.
[0106] In S404, the communication application determines whether the information processing device 101 belongs to the network formed by the communication device 151 outside the information processing device 101. In the following description, the Wi-Fi network formed by the communication device 151 is, for example, a Wi-Fi network formed when the communication device 151 operates as an access point. In other words, the Wi-Fi network formed by the communication device 151 is a Wi-Fi network formed by the communication device 151 operating in the direct connection mode. The Wi-Fi network formed by the communication device 151 may hereinafter be referred to as the first network. In S404, if the communication application determines that the information processing device 101 belongs to the first network, the process proceeds to S405; if it determines that the information processing device 101 does not belong to the first network, the process proceeds to S409.
[0107] Note that the case where the information processing device 101 belongs to the first network is the case where, as described above, the information processing device 101 and the communication device 151 are directly Wi-Fi connected without going through an external access point. In other words, the case where the information processing device 101 belongs to the first network is the case where the communication device 151 operating in the direct connection mode and the information processing device 101 are Wi-Fi connected via the first network. That is to say, the process of S404, in other words, is also a process of determining whether the information processing device 101 is connected to the Wi-Fi network formed by the communication device 101 without going through the external access point 131. That is to say, it can also be said that the process of S404 is determining whether the information processing device 101 is directly connected to the communication device 151.
[0108] In addition, the case where the information processing apparatus 101 does not belong to the first network means that the information processing apparatus 101 belongs to the Wi-Fi network formed by the external access point 131. That is, the process of S404 is, in other words, also a process of determining whether the information processing apparatus 101 belongs to the Wi-Fi network 131 formed by the external access point. That is, it can also be said that the process of S404 determines whether the communication form between the information processing apparatus 101 and the communication apparatus 151 is by infrastructure connection. Note that when the information processing apparatus 101 does not belong to the first network, it may include the case where the information processing apparatus 101 is not connected to any Wi-Fi network.
[0109] Also, in the present embodiment, the process of S404 is also a process of determining whether the communication apparatus 151 is connected to the access point 131 in order to start the execution of the cloud function. That is, it can also be said that the process of S404 is a process of determining whether the communication form between the information processing apparatus 101 and the communication apparatus 151 is a communication form in which the execution of the cloud function is possible.
[0110] In S404, for example, the communication application determines whether the information processing apparatus 101 belongs to the first network by using either the first IP address obtained by the process of S402 or the second IP address obtained by the process of S403. Specifically, for example, the communication application compares either the first IP address obtained by the process of S402 or the second IP address obtained by the process of S403 with the IP address of the communication apparatus 151 that has been pre-held since the communication application was installed in the information processing apparatus 101, and makes a determination based on the comparison result. When the process of S402 is executed, the first IP address obtained by the process of S402 is used for the determination in S404. When the process of S403 is executed, the first IP address obtained by the process of S403 is used for the determination in S404. In the following description, the IP address of the communication apparatus 151 that has been pre-held since the communication application was installed in the information processing apparatus 101 is referred to as the third IP address. As described above, the IP address managed by the host OS of the information processing apparatus 101 is assigned from the connected apparatus. In the present embodiment, when the information processing apparatus 101 is Wi-Fi connected to the communication apparatus 151 via the first network formed by the communication apparatus 151 corresponding to the communication application, the communication apparatus 151 shall assign the third IP address to the information processing apparatus 101. Therefore, when the information processing apparatus 101 is Wi-Fi connected to the communication apparatus 151 via the first network formed by the communication apparatus 151 corresponding to the communication application, the IP address obtained in S402 or S403 is assigned from the communication apparatus 151. Accordingly, the communication application can determine whether the information processing apparatus 101 belongs to the first network by comparing either the first IP address or the second IP address with the third IP address.
[0111] Also, in S404, the communication app specifically compares, for example, the network part of either the first IP address or the second IP address with the network part of the IP address of the communication device 151 to determine whether each network part is the same. If it is determined that the network parts of each IP address are the same, it can be determined that the information processing device 101 belongs to the first network. On the other hand, if it is determined that the network parts of each IP address are different, it can be determined that the information processing device 101 does not belong to the first network. Note that in S404, the communication app may make a determination by comparing the entire IP addresses instead of comparing only the network parts of the IP addresses. When the determination result of S404 is YES, the communication app proceeds to S405, and when the determination result of S404 is NO, the communication app proceeds to S409.
[0112] Note that when the determination result of S404 is NO, before proceeding to S409, the communication app may determine whether the information processing device 101 can perform Internet communication via the connection with the access point 131. Specifically, for example, the communication app attempts Internet communication with an external server that it has previously recognized and determines whether the information processing device 101 can perform Internet communication via the connection with the access point 131 based on whether the attempt is successful. Then, when the determination result is YES, it proceeds to S409, and when the determination result is NO, it may proceed to S405. Also, for example, when the determination result of S404 is NO, before proceeding to S409, the communication app may determine whether the information processing device 101 has established a Wi-Fi connection with another device. Then, when the determination result is YES, it proceeds to S409, and when the determination result is NO, it may proceed to S405. Also, the determination of whether the information processing device 101 has established a Wi-Fi connection with another device may be made before S404. Then, when the determination result is YES, it proceeds to S404, and when the determination result is NO, it may proceed to S405.
[0113] Also, among the network part and the host part of the IP address of the communication device 151, the network part may be specific to the provider (vendor) of the communication device 151. Note that the network part is information for identifying the network to which the device belongs. Also, the host part is information for identifying a device belonging to the network.
[0114] Here, it is assumed that the process of FIG. 4 is executed after the registration process is performed in the directly connected state. For example, as described above, in the registration process, after the information processing device 101 belongs to the first network and the process of S1003 is performed by the communication application, the case where the cloud button 306 is pressed by the user. Therefore, in S404, the communication application determines that it belongs to the first network and proceeds to S405.
[0115] In S405, the communication application notifies the user to execute network setup. Here, refer to FIG. 5. FIG. 5 is a diagram for explaining an example of the notification by the communication application in S405. In S405, the communication application pops up and displays a notification 500 on the home screen 300 as shown in FIG. 5.
[0116] For example, a message 501 and buttons 502 to 503 are displayed in the notification 500. The message 501 is a message indicating that network setup of the communication device 151 is required to use the function selected by the user and prompting the execution of network setup. The button 502 is an interface capable of receiving an instruction to cancel the notification 500, for example. The button 503 is an interface capable of receiving an instruction to execute network setup.
[0117] Note that, as described later, network setup is also a process for putting each of the information processing device 101 and the communication device 151 in a state of belonging to the Wi-Fi network formed by the access point 131. That is, it can be said that in S405, the communication application is sending a notification for putting each of the information processing device 101 and the communication device 151 in a state of belonging to the second network.
[0118] Also, the predetermined function selected by the above-described user is, in this example, a cloud function. In order for the communication application to execute the cloud function, it is necessary for both the information processing device 101 and the communication device 151 to belong to the network formed by the access point 131. Therefore, when the communication application determines in S404 that the information processing device 101 belongs to the first network, it displays a notification 500 prompting the user to change the connection destination to the second network. Thereby, for example, when the user uses the cloud function, the user can be guided to change the connection destination to the second network by the notification 500.
[0119] In S406, the communication application determines whether to execute network setup. If the communication application determines to execute network setup, it proceeds to S407, and if it determines not to execute network setup, it proceeds to S408. Specifically, in S407, for example, when the button 503 of the notification 500 displayed on the home screen 300 in S405 is pressed by the user, the communication application determines to execute network setup. On the other hand, when the button 502 is pressed by the user, the communication application determines not to execute network setup.
[0120] In S407, the communication application executes network setup. After executing the network setup process, the communication application deletes the notification 500 from the home screen 300 and ends the process of FIG. 4. The details of the network setup process will be described later.
[0121] In this embodiment, after the communication app executes the process of S407, it ends the process of FIG. 4, but it is not limited to this. For example, when the communication app executes the process of S407 and both the information processing device 101 and the communication device 151 belong to the second network, the communication app may execute a process similar to S409 described later.
[0122] In S408, the communication app deletes the notification 500 from the home screen 300 and ends the process of FIG. 4.
[0123] (Network setup process) Here, the network setup will be described with reference to FIG. 6. FIG. 6 is a flowchart showing an example of the network setup process executed by the communication app in this embodiment. In this flowchart, the process executed by the communication app is realized, for example, by the CPU 103 expanding and executing a control program stored in a memory such as the ROM 104 in the RAM 105. The process of FIG. 6 corresponds to the process of S404 executed by the communication app, for example.
[0124] In S601, the communication app notifies the user to operate the communication device 151 in the network setup mode. Specifically, for example, the communication app may display a message on the home screen 300 indicating that the communication device 151 is to be operated in the network setup mode.
[0125] Note that when the communication device 151 is set to the network setup mode, it operates as an access point for network setup (connection setting AP, setup access point) as described above. Also, the communication device 151 can transmit the identification information and password 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.
[0126] In S602, the communication application disconnects the direct connection between the information processing device 101 and the communication device 151. In other words, the communication application changes the communication form of the information processing device 101 to a form that does not belong to the first network.
[0127] In S603, the communication application searches for the communication device 151 in the network setup mode using the communication unit 109 or the short-range wireless communication unit 110. Also, the communication application displays the search result on the operation display unit 108. Further, for example, the communication application receives an instruction to select the communication device 151 from the search result displayed on the operation display unit 108. For example, the communication application may display an interface on the operation display unit 108 that can receive an instruction to select the communication device 151 from the search result.
[0128] In S604, the communication application establishes a connection with the communication device 151 in the network setup mode.
[0129] In S605, the communication application requests a list of access points around the communication device 151 from the communication device 151. The communication application receives a list of access points discovered by searching for the communication device 151.
[0130] In S606, the communication application displays the list of access points received in S605 and receives an instruction for selection by the user. For example, the communication application displays an interface (not shown) that can receive an instruction to select an access point on the operation display unit 108 or the like.
[0131] In S607, the communication application receives an input of the password of the access point selected in S606. Specifically, the communication application displays an interface that can receive an input of the password of the access point selected in S607.
[0132] In S608, the communication app transmits the SSID of the access point accepted in S606 and the password accepted in S607 to the communication device 151. Also, the communication app transmits a connection request to the access point 131 for which the selection instruction was received to the communication device 151. That is, the communication app transmits information for making the communication device 151 belong to the Wi-Fi network formed by the access point 131.
[0133] In S609, the communication app disconnects the connection between the information processing device 101 and the communication device 151 operating in the network setup mode. After the connection between the information processing device 101 and the communication device 151 in the network setup mode is disconnected by the communication app, the information processing device 101 and the access point 131 are connected by the reconnection function of the OS of the information processing device 101. The reconnection function is a function that is automatically executed regardless of the instruction of the communication app. The access point 131 reconnected by the reconnection function of the OS is an AP corresponding to the connection information held by the OS and is an AP to which the information processing device 101 has been connected in the past. That is, after the connection between the information processing device 101 and the communication device 151 in the network setup mode is disconnected by the communication app in S609, the information processing device 101 belongs to the second network by the reconnection function.
[0134] In S610, the communication app searches for the communication device 151 on the second network to which the information processing device 101 belongs. The search is performed, for example, by the communication as described above for the infrastructure connection. For example, the communication app specifies the identification information of the communication device 151 and requests a response from the communication device 151 using a predetermined protocol.
[0135] Specifically, for example, the communication application designates an Object IDentifier (OID) indicating the device name, serial number, etc. of the communication device 151. Then, by broadcasting a Get Request command using the Simple Network Management Protocol (hereinafter referred to as SNMP) on the second network to which the information processing device 101 belongs, a response from the communication device 151 is requested.
[0136] In S611, the communication application determines whether the communication device 151 has been discovered. If the communication application determines that the communication device 151 has been discovered, it proceeds to S612. On the other hand, if the communication application determines that the communication device 151 has not been discovered, it proceeds to S613. Specifically, if the communication application receives a response from the communication device 151 by the process executed in S610, it determines that the device has been discovered, and if it does not receive a response from the communication device 151, it determines that the device has not been discovered.
[0137] Here, when it is determined by the communication application that the communication device 151 has been discovered, in other words, it means that both the information processing device 101 and the communication device 151 belong to the second network. That is, the network setup in FIG. 6 can also be said to be a process for making both the information processing device 101 and the communication device 151 belong to the second network.
[0138] In S612, the communication application performs the process of registering the discovered communication device 151. Specifically, for example, the communication application requests information regarding the communication device 151 from the discovered communication device 151 and acquires the information regarding the communication device 151. Further, the communication application stores the acquired information regarding the communication device 151. The information regarding the communication device 151 is, for example, the capability information of the communication device 151 as described above, the MAC address for infrastructure connection of the communication device 151, etc. Also, in S612, the communication application stores information indicating that the communication device 151 has been registered by infrastructure connection.
[0139] In S613, the communication application notifies that the information processing device 101 and the communication device 151 belong to different networks. For example, the communication application may display a notification on the home screen 300 indicating that the information processing device 101 and the communication device 151 belong to different Wi-Fi networks.
[0140] (When executed after the registration process is performed with the infrastructure connected) Next, the case where the process of FIG. 4 is executed based on the user pressing the cloud button 306 after the registration process is performed with the infrastructure connected will be described.
[0141] The processes from S401 to S403 are the same as the case where the information processing device 101 and the communication device 151 are directly connected, so these descriptions are omitted.
[0142] In S404, the communication application determines whether the information processing device 101 belongs to the first network using either the first IP address acquired by the process of S402 or the second IP address acquired by the process of S403. Here, the case where the cloud button 306 is pressed by the user after the registration process is performed with the infrastructure connected is assumed. Specifically, for example, in the above-described registration process, after the process of S1003 is performed by the communication application while the information processing device 101 belongs to the second network, the cloud button 306 is pressed by the user. In this case, the process of FIG. 4 is executed while the information processing device 101 and the communication device 151 are infrastructure-connected. Therefore, in S404, the communication application determines that it does not belong to the first network and proceeds to S409, and this form will be described.
[0143] In S409, the communication application executes a predetermined process. After executing the predetermined process, the communication application ends the process of FIG. 4. Specifically in S409, the communication application displays a screen for using a predetermined function via a network. As described above, the case where the determination result in S404 is NO may include the case where the information processing apparatus 101 is not connected to any Wi-Fi network. Therefore, in the present embodiment, the process can proceed to S409 even when the information processing apparatus 101 is not connected to any Wi-Fi network. And the predetermined process includes Internet communication via a Wi-Fi network. Therefore, when the information processing apparatus 101 is not connected to any Wi-Fi network, Internet communication results in an error, and the process of this flowchart ends without the predetermined process being completed. Here, the screen displayed by the communication application in the process of S409 will be described with reference to FIG. 7. FIG. 7 is a diagram showing an example of a screen 700 for using a predetermined function. In this example, the screen 700 for using a predetermined function is, for example, a web page. On the screen 700, for example, each interface 701 to 703 related to the predetermined function is displayed. In this example, as described above for the screen 700, as an example of a predetermined function, a screen for using a cloud function will be described.
[0144] Interface 701 is a link that can receive an instruction to start the cloud function. After Interface 701 is pressed, first, the communication app sends information to communication device 151 to instruct it to send the serial number of communication device 151 to an external server (not shown) corresponding to the cloud function. Communication device 151 that has received the information sends its own serial number to the external server. Then, communication device 151 sends information indicating whether the transmission of the serial number was successful to information processing device 101. If the information indicates failure, information processing device 101 displays an error message through the communication app. If the information indicates success, the communication app displays a web page for registering communication device 151 with the service corresponding to the cloud function. And information processing device 101 receives from the user an input of account information for logging in to the account the user has on the web page and sends it to the external server. If the correct account information is sent to the external server and the account login is successful, information processing device 101 sends the serial number obtained from communication device 151 when the communication app registered communication device 151 to the external server. Thereby, the external server associates and manages the user's account with communication device 151 corresponding to the serial number, enabling the external server to provide cloud function services to the user and communication device 151. Thereby, the process of registering communication device 151 with the cloud function service is completed, and thereafter, cloud printing can be executed from the communication app. Note that cloud printing is a function that causes communication device 151 to print image data on the Internet. Image data on the Internet is, for example, image data on a cloud service or a social network service. If communication device 151 has already been registered with the cloud function, the predetermined process may be a process of sending a print job to communication device 151 through cloud printing instead of the process of registering communication device 151 with the cloud function. Interface 702 is a link that can receive an instruction to create an account for using the cloud function. That is, screen 700 can also be said to be a screen for starting to use the cloud function.The interface 703 is a link capable of receiving an instruction to display an explanation of the cloud function.
[0145] As described above, according to this embodiment, when the communication app receives an instruction to execute a predetermined function such as a cloud function, the communication app determines whether the operating environment of the communication app is a first operating environment that operates on the first OS that operates as the host OS but not on the guest OS, or a second operating environment that operates on the second OS that operates as the host OS and is also on the guest OS. When the communication app determines that it is the first operating environment, it acquires the first IP address from the first OS, and when it determines that it is the second operating environment, it acquires the second IP address from the second OS. In this way, the communication app can determine the operating environment of the communication app, vary the method of acquiring the IP address according to the operating environment, and acquire an appropriate IP address.
[0146] Also, according to this embodiment, the communication app determines whether the information processing device 101 belongs to the first network formed by the communication device 151 using either the first IP address or the second IP address. When the communication app determines that the information processing device 101 belongs to the first network formed by the communication device 151, it executes a process to make both the information processing device 101 and the communication device 151 belong to the second network. Thereby, when the information processing device 101 belongs to the first network and the user receives an instruction to execute a predetermined function, the network to which the information processing device 101 and the communication device 151 belong can be changed. Also, by varying the method of acquiring the IP address according to the operating environment as described above for the communication app, even when the communication app operates in the second operating environment, the network to which the information processing device 101 and the communication device 151 belong can be appropriately changed.
[0147] In addition, in this embodiment, the case where the process of FIG. 4 is executed when the cloud button 306 is pressed has been described. However, the present invention is not limited to this, and the process may be executed when other buttons are pressed. For example, the process of FIG. 4 may be executed when an interface (not shown) that can receive an instruction to start the execution of the point function is pressed.
[0148] Note that the information processing apparatus 101 can communicate with an external apparatus (communication apparatus 151 or an external server (not shown)) via a communication application. The case where the information processing apparatus 101 communicates with an external apparatus via a communication application means, for example, a case where the information processing apparatus 101 transmits various jobs such as a print job to the communication apparatus 151 via the communication application. Further, for example, in network setup, there may be a case where connection information of an access point is transmitted to the communication apparatus 151, or a case where the information processing apparatus 101 communicates with an external server (not shown) for registration of the communication apparatus 151 when executing a cloud function. In such a case where the information processing apparatus 101 communicates with an external apparatus via a communication application, the communication is realized, for example, by packet transmission. And, the packet transmitted when the information processing apparatus 101 communicates with an external apparatus via a communication application includes an IP address acquired by the communication application. The IP address is acquired by using a first API by the communication application, for example, whether the operating environment of the communication application is the first environment or the second environment.
[0149] <Second Embodiment> The following describes the second embodiment with respect to the differences from the first embodiment. In the first embodiment, the communication application was described in a form where, when receiving an instruction to start the execution of the cloud function, it determines the operating environment of the communication application and varies the method of obtaining the IP address of the information processing apparatus 101 according to the determination result. The communication application executes communication with the communication apparatus 151 registered in the communication application on the network to which the information processing apparatus 101 belongs, for example, when executing a communication function such as a print job transmission function with the communication apparatus 151. After the communication fails, the communication application determines the operating environment of the communication application. Further, the communication application varies the method of obtaining the IP address of the information processing apparatus 101 according to the operating environment, determines the communication form between the information processing apparatus 101 and the communication apparatus 151 using the obtained IP address, and appropriately executes processing for changing the communication form will be described.
[0150] FIG. 8 is a flowchart showing an example of the operation executed by the communication application in the present embodiment. In this flowchart, the processing executed by the communication application is realized, for example, by the CPU 102 expanding and executing a control program stored in a memory such as the ROM 106 in the RAM 107.
[0151] Also, the process of FIG. 8 is started, for example, after a communication application receives an instruction to execute a function (communication function) for communication with the communication device 151 and the communication with the communication device 151 by the communication function fails. In the present embodiment, specifically, the communication function is, for example, a print job transmission function. That is, the process of FIG. 8 is executed after the document print button 302, the photo print button 303, etc. are pressed by the user and the print job transmission function cannot be executed. The case where the print job transmission function cannot be executed specifically means that the communication application cannot discover the communication device 151 registered in the communication application on the network to which the information processing device 101 belongs. For example, when executing the print job transmission function, the communication application uses the MAC address stored in the registration process to send a print job to the communication device 151 registered in the communication application. Also, in the registration process, as described above, the MAC address for infrastructure connection of the communication device 151 is different from the MAC address for direct connection of the communication device 151. That is, depending on the communication form between the information processing device 101 and the communication device 151, the MAC address of the communication device 151 registered in the communication application during the registration process is different. For example, after registering the communication device 151 in the communication application, the communication form between the information processing device 101 and the communication device 151 may be changed to a form different from the form at the time of the registration process. In such a case, even if the communication application uses the MAC address stored in the registration process to send a print job to the communication device 151 registered in the communication application, the transmission of the print job fails. When the communication application fails to send a print job, for example, it displays a notification (not shown) indicating that the information processing device 101 and the communication device 151 are not communicable. This notification is displayed, for example, as a screen for executing a network diagnosis function. FIG. 8 is started, for example, when a button capable of receiving an execution instruction for the network diagnosis function displayed on the screen is pressed. Also, in the present embodiment, although the print job transmission function is described as an example of the communication function, it is not limited to this, and a copy job transmission function, a scan job transmission function, etc. may also be used. That is, any function that involves communication with the communication device 151 may be used.
[0152] Since the processes of S801 to S803 are the same as those of S401 to S403 in FIG. 4, the descriptions thereof are omitted.
[0153] In S804, the communication application determines whether the information processing apparatus 101 belongs to the first network. In S804, if the communication application determines that the information processing apparatus 101 belongs to the first network, the process proceeds to S805; if it determines that the information processing apparatus 101 does not belong to the first network, the process proceeds to S806. Since this determination is made in the same way as the process of S402, the description thereof is omitted. Hereinafter, an example will be described for the case where the information processing apparatus 101 belongs to the first network and the case where it does not belong to the first network in S804 of the present embodiment.
[0154] First, an example will be described for the case where, in the process of S804 of the present embodiment, the communication application determines that the information processing apparatus 101 belongs to the first network (when it is Yes in S804). For example, after the registration process is performed with the information processing apparatus 101 and the communication apparatus 151 in an infrastructure connection state, the communication form between the information processing apparatus 101 and the communication apparatus 151 may be changed to a direct connection. For example, the communication form between the information processing apparatus 101 and the communication apparatus 151 can be changed to a direct connection by a user operation from the wireless setting screen (Wi-Fi setting screen) of the information processing apparatus 101 without going through the registration process. In such a case, in the process of S804, the communication application determines that the information processing apparatus 101 belongs to the first network.
[0155] Next, an example will be described for the case where, in the process of S804 in this embodiment, the communication application determines that the information processing apparatus 101 does not belong to the first network (in the case of No in S804). For example, after registering the communication apparatus 151 with the communication application in an infrastructure connection via the access point 131 between the information processing apparatus 101 and the communication apparatus 151, the connection destination of the information processing apparatus 101 may be changed to another access point different from the access point 131 by a user operation. Specifically, for example, when registering the communication apparatus 151 with the communication application, although the information processing apparatus 101 was connected to the access point 131, the access point of the connection destination of the information processing apparatus 101 may be changed after registration. Also, for example, after the registration process is performed in a state where the information processing apparatus 101 and the communication apparatus 151 are directly connected, each of the information processing apparatus 101 and the communication apparatus 151 is connected to the access point 131 in an infrastructure connection. In these cases, for example, in the process of S804, the communication application determines that the information processing apparatus 101 does not belong to the first network.
[0156] In S805, the communication application notifies that it prompts the change of the connection destination of the information processing apparatus 101. Here, refer to FIG. 9. FIG. 9 is a diagram showing an example of a notification displayed on the operation display unit 108 by the communication application in S805. In S805, for example, the communication application displays a notification 900 on the operation display unit 108.
[0157] The notification 900 includes, for example, a message 901 prompting to make each of the information processing apparatus 101 and the communication apparatus 151 belong to the second network. That is, the process of S805 is, in other words, a process for making each of the information processing apparatus 101 and the communication apparatus 151 belong to the second network. That is, the process of S805 is also a notification that guides the user to make an infrastructure connection between the information processing apparatus 101 and the communication apparatus 151. The message 901 may include, for example, information (such as an SSID) indicating a device operating as an access point to which the information processing apparatus 101 is connected.
[0158] With such a notification, for example, even when the connection between the information processing device 101 and the communication device 151 is changed to a direct connection after the communication device 151 is registered in the communication application while the information processing device 101 and the communication device 151 are in an infrastructure connection state, it is possible to prompt to return to the communication form at the time of registration.
[0159] In addition, the notification 900 may include a message prompting to restart the communication device 151, a message prompting to turn off the power of the devices around the information processing device 101, a message prompting to restart the power of the information processing device 101 being used by the user, and the like. Further, the notification 900 may include, for example, interfaces 902 to 903 capable of receiving an instruction to select whether to execute the process corresponding to each message displayed in the notification 900.
[0160] In S806, the communication application determines whether the communication device 151 was registered via the second network in the registration process. That is, the communication application determines whether the communication device 151 was registered while the information processing device 101 and the communication device 151 are in an infrastructure connection state. If the communication application determines that the communication device 151 was registered via the second network, it proceeds to S807. On the other hand, if the communication application determines that the communication device 151 was not registered via the second network, it proceeds to S810. When the communication application determines that the communication device 151 was not registered via the second network, for example, it is the case where the communication device 151 was registered via the first network.
[0161] In S806, specifically, for example, the communication app refers to the information indicating the communication form between the information processing device 151 and the communication device 151 when registering the communication device 151, which was stored during the registration process. For example, when information indicating that the communication device 151 was registered through infrastructure connection is stored, the communication app determines that the communication device 151 was registered via the second network. On the other hand, when information indicating that the communication device 151 was registered through direct connection is stored, the communication app determines that the communication device 151 was not registered via the second network.
[0162] In S807, the communication app notifies that it prompts the execution of network setup. Here, refer to Fig. 10(a). Fig. 10(a) is a diagram showing an example of the notification 1000 displayed on the operation display unit 108 by the communication app in S808. The notification 1000 includes, for example, a message 1001 prompting the execution of network setup. The notification 1000 also includes an interface 1002 capable of receiving an instruction to execute network setup and an interface 1003 capable of receiving an instruction not to execute network setup. Further, the notification 1000 may display, for example, an interface 1004 capable of receiving the end of the process in Fig. 8, etc.
[0163] The notification 1000 that prompts the execution of network setup in S807 is, in other words, also a notification for putting each of the information processing device 101 and the communication device 151 in a state belonging to the network formed by the access point to which the information processing device 101 is connected. For example, as described above, after registering the communication device 151 in the communication application with an infrastructure connection via the access point 131 between the information processing device 101 and the communication device 151, the connection destination of the information processing device 101 may be changed to another access point different from the access point 131 by a user operation. Also, the user may want to maintain the state where the connection destination of the information processing device 101 is changed to another access point. Even in such a case, by displaying the notification 1000 in S807, it is possible to propose a process for making the information processing device 101 and the communication device 151 in a communication form capable of using a print job without changing the connection destination of the information processing device 101.
[0164] Note that in this example, as an example, a form in which the communication application proceeds to S807 when it is determined in the registration process in S806 that the communication device 151 is registered via the second network has been described, but it is not limited to this.
[0165] For example, when the communication application determines in the registration process at S806 that the communication device 151 is registered via the second network, it may display a notification (not shown) indicating that the network to which the current information processing device 101 belongs is different from the network to which it belonged when the registration process was performed. This notification may display, for example, the SSID of the access point to which the information processing device 101 was connected when the communication application performed the registration process. This notification may display, for example, the SSID of the access point to which the information processing device 101 is currently connected. Further, this notification may display, for example, an interface capable of receiving an instruction to reconnect to the access point to which the information processing device 101 was connected when the communication application performed the registration process. Further, this notification may display, for example, an interface capable of receiving an instruction to continue using the access point to which the information processing device 101 is connected. Further, the communication application may proceed to the process of S807 when it receives an instruction to continue using the access point to which the information processing device 101 is connected.
[0166] At S808, the communication application determines whether to execute network setup. If the communication application determines to execute network setup, it proceeds to S809. On the other hand, if the communication application determines not to execute network setup, it cancels the notification 1000 and ends the process of FIG. 8. For example, when the communication application receives an instruction to execute network setup, it determines to execute network setup. On the other hand, when the communication application receives an instruction not to execute network setup, it determines not to execute network setup.
[0167] At S809, the communication application executes the network setup process, cancels the notification 1000, and ends the process of FIG. 8. Note that the process of S809 is the same as the process of S407 (the process of FIG. 6), so the description is omitted.
[0168] Note that in this example, after the network setup process ends, the form of ending the process of FIG. 8 has been described, but it is not limited to this. For example, after the communication application executes the network setup process in S809, if the information processing device 101 and the communication device 151 can communicate with each other through the infrastructure connection, it may be a form of executing the print job transmission function again.
[0169] In S810, the communication application notifies that it prompts to change the connection destination of the information processing device 101. In other words, the change of the connection destination is, in other words, the change of the network to which the information processing device 101 belongs. Here, refer to FIG. 10(b). FIG. 10(b) is a diagram showing an example of the notification 1010 displayed on the operation display unit 108 by the communication application in S810. The notification 1010 includes, for example, a message 1012 prompting to change the network to which the information processing device 101 belongs. The notification 1010 also includes information 1013 indicating the destination network. The information 1013 indicating the destination network is, for example, the SSID of the communication device 151 stored in the registration process. That is, it can be said that in S810, the communication application issues a notification prompting to change the connection destination of the information processing device 101 to the communication device 151 for which the registration process has been performed. In this way, by notifying the message 1012 and the information 1013, for example, even when the information processing device 101 and the communication device 151 are in a direct connection state and the communication device 151 is registered in the communication application, and then the information processing device 101 and the communication device 151 change to a communication form different from the direct connection, it is possible to prompt to return to the communication form at the time of registration.
[0170] The notification 1010 may also include an interface 1014 capable of receiving an instruction to display a screen for changing the connection destination of the information processing device 101. For example, when the interface 1014 is pressed by the user, the communication application may execute a process for displaying a screen for changing the connection destination of the information processing device 101.
[0171] In addition, the communication 1010 may include, for example, an interface 1015 capable of receiving an instruction when the connection destination of the information processing apparatus 101 cannot be found, an interface 1016 capable of receiving an instruction to end the process of FIG. 8, and the like.
[0172] As described above, after attempting to communicate with the communication device 151 registered in the communication application and failing to find the communication device 151, the operating environment of the communication application is determined, and the IP address of the information processing apparatus 101 is acquired according to the operating environment. Based on the acquired IP address, the communication application determines the communication mode between the information processing apparatus 101 and the communication device 151, and performs a process for changing the communication mode. In such a manner, even when the communication mode is changed to a communication mode different from the communication mode at the time of registration of the communication device 151 in the communication application when the communication application executes the communication function, the communication application can be restored to a communication mode in which the communication function can be executed. Further, by causing the communication application to vary the method of acquiring the IP address according to the operating environment as described above, even when the communication application operates in the second operating environment, the communication mode between the information processing apparatus 101 and the communication device 151 can be appropriately changed.
[0173] The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiment to a system or apparatus via a network or a storage medium, and causing one or more processors in a computer of the system or apparatus to read and execute the program. Further, it can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
[0174] The disclosure of the present embodiment includes the following systems, image forming apparatuses, information processing apparatuses, methods, and programs. (Item 1) A program operable on an operating system (OS) of an information processing apparatus, A first determination step of determining whether the operating environment of the program is a first operating environment that operates on a first OS that operates as a host OS but not on a guest OS, or a second operating environment that operates on a second OS that operates as a host OS and also on a guest OS, A first acquisition step of acquiring a first IP address of the information processing apparatus having the first operating environment by a first API (Application Programming Interface) when it is determined in the first determination step that the environment is the first operating environment, A second acquisition step of acquiring a second IP address of the information processing apparatus having the second operating environment by a second API different from the first API when it is determined in the first determination step that the environment is the second operating environment, A second determination step of determining, using either the first IP address acquired in the first acquisition step or the second IP address acquired in the second acquisition step, whether the information processing apparatus belongs to a first network formed by a communication apparatus external to the information processing apparatus, An execution step of executing a predetermined process for bringing both the information processing apparatus and the communication apparatus into a state of belonging to a second network different from the first network when it is determined in the second determination step that the information processing apparatus belongs to the first network, A program characterized by causing a computer to execute the above. (Item 2) The computer is further caused to function as a comparison step of comparing either the first IP address acquired in the first acquisition step or the second IP address acquired in the second acquisition step with a third IP address of the communication apparatus, The second determination step is Determining whether the information processing apparatus belongs to the first network based on the comparison result of the comparison step, The program according to Item 1, characterized by the above. (Item 3) A notification step of prompting the user to make both the information processing apparatus and the communication apparatus belong to the second network, and further causing the computer to execute, The predetermined process is the notification by the notification step. The program according to item 1 or 2, characterized in that. (Item 4) A transmission step of transmitting information for making the communication apparatus belong to the second network to the communication apparatus, and further causing the computer to function, The predetermined process is The process including transmitting the information to the communication apparatus by the transmission step. The program according to any one of items 1 to 3, characterized in that. (Item 5) A first search step of searching for the communication apparatus on the second network, and further causing the computer to function, The predetermined process is After transmitting the information to the communication apparatus by the transmission step, the process including searching for the communication apparatus on the second network by the first search step. The program according to item 4, characterized in that. (Item 6) A reception step of being able to receive an instruction to cause the communication apparatus to execute a predetermined function via an external server, and further causing the computer to execute, The first determination step is Determining the operating environment of the program based on receiving the instruction by the reception step. The program according to any one of items 1 to 5, characterized in that. (Item 7) When it is determined by the second determination step that the information processing apparatus does not belong to the first network, a display step of displaying a web page for using the predetermined function, and further causing the computer to execute, The program according to item 6, characterized in that. (Item 8) The predetermined function is a function of outputting image data to the communication device via the external server, The program according to claim 6 or 7, characterized in that. (Item 9) a registration step of registering the communication device in the program in any one of a state in which the information processing device belongs to the first network and a state in which the information processing device belongs to the second network, a second search step of searching for the communication device registered in the program on the network to which the information processing device belongs by the registration step, and further causing the computer to execute, The first determination step is determining an operating environment of the program based on that the communication device registered in the program is not found in the second search step, The program according to any one of claims 1 to 5, characterized in that. (Item 10) after the communication device is registered in the program in a state where the information processing device belongs to the second network by the registration step, and when it is determined by the second determination step that the information processing device belongs to the first network of the communication device, the execution step executes the predetermined process, The program according to claim 9, characterized in that. (Item 11) after the communication device is registered in the program in a state where the information processing device belongs to the first network by the registration step, and when it is determined by the second determination step that the information processing device does not belong to the first network, further causing the computer to execute a second notification step of notifying that the information processing device is to be in a state of belonging to the first network, The program according to claim 9 or 10, characterized in that. (Item 12) The state in which the information processing device belongs to the first network is A state in which the information processing device and the communication device are directly connected without going through an external access point. The program according to any one of claims 1 to 11, characterized in that. (Item 13) A state in which both the information processing device and the communication device belong to the second network. A state in which the information processing device and the communication device are each connected to an external access point. The program according to any one of claims 1 to 12, characterized in that. (Item 14) The host OS in the first operating environment is the Android OS, the host OS in the second operating environment is the Chrome OS, and the guest OS in the second operating environment is a virtual Android OS. The program according to any one of claims 1 to 13, characterized in that. (Item 15) The communication device is a printing device. The program according to any one of claims 1 to 14, characterized in that.
[0175] The invention is not limited to the above embodiments, and various changes and modifications are possible without departing from the spirit and scope of the invention. Therefore, claims are attached to disclose the scope of the invention.
Explanation of Reference Numerals
[0176] 101 Information processing device: 103 CPU: 104 ROM: 105 RAM: 131 Access point: 151 Communication device
Claims
1. A program operable on an operating system (OS) of an information processing apparatus, a first determination step of determining whether the operating environment of the program is either a first operating environment that operates on a first OS operating as a host OS but not on a guest OS, or a second operating environment that operates on a second OS operating as a host OS and also on a guest OS; a first acquisition step of acquiring a first IP address of the information processing apparatus having the first operating environment by a first API (Application Programming Interface) when it is determined by the first determination step that the environment is the first operating environment; a second acquisition step of acquiring a second IP address of the information processing apparatus having the second operating environment by a second API different from the first API when it is determined by the first determination step that the environment is the second operating environment; a second determination step of determining whether the information processing apparatus belongs to a first network formed by a communication apparatus external to the information processing apparatus, using either the first IP address acquired by the first acquisition step or the second IP address acquired by the second acquisition step; an execution step of executing predetermined processing to make both the information processing apparatus and the communication apparatus belong to a second network different from the first network when it is determined by the second determination step that the information processing apparatus belongs to the first network; A program characterized by causing a computer to execute the above.
2. Further causing the computer to function as a comparison step of comparing either the first IP address acquired by the first acquisition step or the second IP address acquired by the second acquisition step with a third IP address of the communication apparatus, wherein the second determination step determines whether the information processing apparatus belongs to the first network based on the comparison result of the comparison step. The program according to claim 1, characterized by the above.
3. Further causing the computer to execute a notification step of prompting the user to make both the information processing apparatus and the communication apparatus belong to the second network, wherein the predetermined processing is the notification by the notification step. The program according to claim 1, characterized in that...
4. Causing the computer to further function as a transmission step of transmitting to the communication device information for making the communication device belong to the second network The predetermined process is Including a process of transmitting the information to the communication device by the transmission step The program according to claim 1, characterized in that...
5. Causing the computer to further function as a first search step of searching for the communication device on the second network The predetermined process is Including a process of searching for the communication device on the second network by the first search step after transmitting the information to the communication device by the transmission step The program according to claim 4, characterized in that...
6. Causing the computer to further execute a reception step of being able to receive an instruction to cause the communication device to execute a predetermined function via an external server The first determination step is Determining the operating environment of the program based on receiving the instruction by the reception step The program according to claim 1, characterized in that...
7. Causing the computer to further execute a display step of displaying a Web page for using the predetermined function when the information processing device is determined by the second determination step not to belong to the first network The program according to claim 6, characterized in that...
8. The predetermined function is A function of outputting image data to the communication device via the external server The program according to claim 6, characterized in that...
9. A registration step of registering the communication device in the program in any one of a state where the information processing device belongs to the first network and a state where it belongs to the second network Causing the computer to further execute a second search step of searching for the communication device registered in the program on the network to which the information processing device belongs by the registration step The first determination step is Determining the operating environment of the program based on the communication device registered in the program not being found in the second search step The program according to claim 1, characterized in that...
10. After the communication device is registered in the program in a state where the information processing apparatus belongs to the second network by the registration step, when it is determined by the second determination step that the information processing apparatus belongs to the first network of the communication device, the execution step executes the predetermined process. The program according to claim 9, characterized in that.
11. After the communication device is registered in the program in a state where the information processing apparatus belongs to the first network by the registration step, when it is determined by the second determination step that the information processing apparatus does not belong to the first network, the computer is further caused to execute a second notification step of notifying that the information processing apparatus is to be made to belong to the first network. The program according to claim 9, characterized in that.
12. The state in which the information processing apparatus belongs to the first network is A state in which the information processing apparatus and the communication device are directly connected without passing through an external access point. The program according to claim 1, characterized in that.
13. The state in which both the information processing apparatus and the communication device belong to the second network is A state in which the information processing apparatus and the communication device are each connected to an external access point. The program according to claim 1, characterized in that.
14. The host OS in the first operating environment is Android OS, the host OS in the second operating environment is Chrome OS, and the guest OS in the second operating environment is a virtual Android OS. The program according to claim 1, characterized in that.
15. The communication device is a printing device. The program according to claim 1, characterized in that.
Citation Information
Patent Citations
Image processor, image processor control program and image processing system
JP2009049679A