System, control method, and storage medium
The system enhances connection setup usability by controlling lower OS version devices to perform access point searches, addressing limitations in location information service access, thereby improving convenience.
Patent Information
- Application Number
- JP2025199217
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-11-19
- Publication Date
- 2026-01-29
AI Technical Summary
The convenience of allowing application programs to use location information services is limited by the requirements of specific OS versions, preventing effective search processes for access points and hindering connection setup between devices.
A system and method that enables a first information processing device with a predetermined OS version to execute a search process for access points by controlling a second information processing device with a lower OS version to perform the search without displaying a display, ensuring the setup application can utilize location information services.
Improves the usability of connection setup processes by enabling devices with lower OS versions to search for and connect with access points, enhancing the convenience of location information service utilization.
Smart Images

Figure 2026015545000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a system, a control method, and a program. [Background technology]
[0002] Patent Document 1 describes a technique related to permission to use location information services. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent Publication No. 2022-30782 Summary of the Invention [Problem to be solved by the invention]
[0004] However, as the use of a system that allows application programs to use location information services becomes more widespread, there is a demand for improving the convenience of this system.
[0005] SUMMARY OF THE INVENTION It is therefore an object of the present invention to improve the convenience of a configuration in which application programs can be permitted to use location information services. [Means for solving the problem]
[0006] The present invention is characterized in that a first information processing device computer having a predetermined application program and a first version operating system (OS) that is a predetermined version or higher executes the following steps: a reception step of receiving a user instruction to start network setup; a display control step of displaying a predetermined display to enable a setting for allowing the predetermined application program to use location information services if the setting is not valid after receiving the user instruction; an execution step of executing a search process to search for an access point after the setting is enabled based on the user instruction via the predetermined display; and a transmission step of transmitting information about a second access point different from the first access point to a communication device corresponding to the first access point discovered by the search process; and a control step of controlling a second information processing device computer having a second version OS that is lower than the predetermined version and has different execution conditions for the search process from the first version OS to execute the search process without displaying the predetermined display even if the setting is not valid after receiving the user instruction. [Effects of the Invention]
[0007] According to the present invention, it is possible to improve the convenience of a configuration in which application programs can be permitted to use location information services. [Brief explanation of the drawings]
[0008] [Figure 1] 1 is a diagram illustrating an example of a communication system according to an embodiment of the present invention. [Figure 2] 1 is a diagram illustrating an example of the configuration of a terminal device and a communication device according to a first embodiment of the present invention. [Figure 3] 3 is an example of a setting screen displayed in the first embodiment of the present invention. [Figure 4] 5 is a flowchart showing processing executed by a terminal device using a setup application in the first embodiment of the present invention. [Figure 5] 4 is a flowchart showing processing relating to a location information service in the first embodiment of the present invention. [Figure 6] 4 is an example of a dialog displayed in the first embodiment of the present invention. [Figure 7] 3 is an example of a list screen displayed in the first embodiment of the present invention. [Figure 8] 3 is an example of an IF selection screen displayed in the first embodiment of the present invention. [Figure 9] 5 is a flowchart showing a connection setting process in the first embodiment of the present invention. [Figure 10] 5 is a flowchart showing a first connection setting process in the first embodiment of the present invention. [Figure 11] 5 is a flowchart showing a second connection setup process in the first embodiment of the present invention. [Figure 12] 3 is an example of a guidance screen displayed in the first embodiment of the present invention. [Figure 13] 10 is a flowchart showing processing relating to a location information service in the second embodiment of the present invention. [Figure 14] 10 is an example of a guidance screen displayed in the second embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0009] First Embodiment An information processing device and a communication device included in the communication system of this embodiment will be described. In this embodiment, a smartphone is used as an example of the information processing device, but the present invention is not limited to this and various devices, such as a terminal device, a notebook PC, a tablet device, a PDA (Personal Digital Assistant), and a digital camera, can be used. In this embodiment, a printer is used as an example of the communication device, but the present invention is not limited to this and various devices, such as a terminal device, a notebook PC, a tablet device, a PDA (Personal Digital Assistant), and a digital camera, can be used as long as they are capable of wireless communication with the information processing device. For example, printers such as inkjet printers, full-color laser beam printers, and monochrome printers can be used. Furthermore, the present invention is not limited to printers but can also be used for copiers, facsimile machines, terminal devices, smartphones, notebook PCs, tablet devices, PDAs, digital cameras, music playback devices, televisions, smart speakers, and the like. Furthermore, the present invention is also applicable to multifunction peripherals having multiple functions, such as copying, faxing, and printing.
[0010] First, a system configuration for realizing this embodiment will be described.
[0011] 1 is a diagram showing an example of the configuration of a communication system according to this embodiment. This system includes a communication device 151, a terminal device 101, an access point (AP) 131, and an external server 171.
[0012] The terminal device 101 is an information processing device of this embodiment. The communication device 151 is a communication device of this embodiment. The AP 131 is an external device that exists outside the terminal device 101 and outside the communication device 151. The external server 171 is a server that can provide services to devices connected to the AP 131 via the Internet.
[0013] A LAN (Local Area Network) formed by the AP 131 includes the AP 131, a communication device 151, and a terminal device 101. On the other hand, a WAN (Wide Area Network) includes the AP 131 and an external server 171.
[0014] In this embodiment, when an infrastructure connection (described later) is established, the terminal device 101 can communicate with the communication device 151 via the AP 131. Furthermore, when a direct connection (described later) is established, the terminal device 101 can communicate directly with the communication device 151 without going through the AP 131. Note that, hereinafter, a connection with an AP corresponds to a connection with a network formed by the AP. Note that the AP may be capable of simultaneously forming multiple networks, and in that case, a connection with an AP may refer to a connection with any one of the multiple networks formed by the AP.
[0015] In this embodiment, the connection 141 between the terminal device 101 and the AP 131 and the connection 142 between the communication device 151 and the AP 131 are assumed to be connections using a communication method based on the IEEE 802.11 series of standards. Specifically, the communication method based on the IEEE 802.11 series of standards is Wi-Fi (Wireless Fidelity) (registered trademark). Furthermore, the connection 143 between the terminal device 101 and the communication device 151 is assumed to be Wi-Fi or Bluetooth (registered trademark) Low Energy (BLE). Note that the communication method used for each connection is not limited to this form and may be, for example, Bluetooth Classic, Wi-Fi Aware, Near Field Communication (NFC), etc. The AP 131 and the external server 171 can communicate via the Internet. When the AP 131 is connected to the Internet, devices connected to the AP 131 (the terminal device 101 and the communication device 151) can also use the Internet. The connection 141 between the terminal device 101 and the AP 131 and the connection 142 between the communication device 151 and the AP 131 may be a connection by wired LAN.
[0016] Next, the configuration of an information processing device of this embodiment and a communication device capable of communicating with the information processing device of this embodiment will be described with reference to the block diagram of Fig. 2. In addition, the following configuration will be described as an example in this embodiment, but this embodiment is applicable to devices capable of communicating with the communication device, and the functions are not particularly limited to those shown in this diagram.
[0017] The terminal device 101 includes an input interface 102, a CPU 103, a ROM 104, a RAM 105, an external storage device 106, an output interface 107, a display unit 108, a wireless communication unit 109, a short-range wireless communication unit 110, an image capturing device 111, and a wired communication unit 112. The CPU 103, the ROM 104, the RAM 105, etc. form a computer of the terminal device 101. The terminal device 101 is assumed to be a device such as a smartphone, but is not limited to a smartphone.
[0018] The input interface 102 is an interface for receiving data input and operation instructions from the user, and is composed of a physical keyboard, buttons, a touch panel, etc. Note that the output interface 107 described below and the input interface 102 may have the same configuration, and the screen output and the reception of operations from the user may be performed by the same configuration.
[0019] The CPU 103 is a system control unit that controls the entire terminal device 101 .
[0020] The ROM 104 stores fixed data such as control programs and data tables executed by the CPU 103, and an operating system (hereinafter referred to as OS) program. In this embodiment, each control program stored in the ROM 104 performs software execution control such as scheduling, task switching, and interrupt processing under the management of an embedded OS stored in the ROM 104. In this embodiment, the OS of the terminal device 101 is MacOS (registered trademark). In this embodiment, the ROM 104 stores a setup application program (hereinafter referred to as a setup app). The setup app is installed in the terminal device 101 from an external device, for example, by a store application program. The setup app is provided by the vendor of the communication device 151. Note that the setup app may have functions other than the function of performing network setup of the communication device 151. Examples of other functions include a function of performing setup other than network setup of the communication device 151, a function of sending a print job to cause the communication device 151 to perform printing, and a function of sending a scan job to cause the communication device 151 to perform scanning.
[0021] The RAM 105 is configured with an SRAM (Static Random Access Memory) or the like that requires a backup power source. Since the RAM 105 holds data using a primary battery (not shown) for data backup, it can store important data such as program control variables without volatilizing it. The RAM 105 also has a memory area for storing setting information for the terminal device 101, management data for the terminal device 101, and the like. The RAM 105 is also used as the main memory and work memory for the CPU 103.
[0022] The external storage device 106 includes various programs such as a print information generation program that generates print information that can be interpreted by the communication device 151, and an information transmission / reception control program that transmits and receives information to and from the communication device 151 connected via the wireless communication unit 109. The external storage device 106 also stores various information used by these programs, as well as image data obtained from other information processing devices and the Internet.
[0023] The output interface 107 is an interface that controls the display unit 108 to display data and notify the status of the terminal device 101 .
[0024] The display unit 108 is configured with an LED (light emitting diode) or an LCD (liquid crystal display), and displays data and notifies the status of the terminal device 101. Note that a soft keyboard equipped with keys such as numeric input keys, a mode setting key, a decision key, a cancel key, and a power key may be provided on the display unit 108 to accept input from the user via the display unit 108.
[0025] The wireless communication unit 109 is configured to wirelessly connect to devices such as the communication device 151 and the AP 131 to perform data communication. For example, the wireless communication unit 109 may communicate directly with the communication device 151 via wireless communication, or may communicate via an AP 131 that is external to the terminal device 101 or the communication device 151. In this embodiment, the wireless communication method used by the wireless communication unit 109 is Wi-Fi, a communication method based on the IEEE 802.11 standard, but Bluetooth Classic, etc., may also be used. In this embodiment, the wireless LAN is a network using Wi-Fi. Examples of the AP 131 include devices such as a wireless LAN router. In this embodiment, a method in which the terminal device 101 and the communication device 151 are directly connected without an external AP is called a direct connection method. In addition, a method in which the terminal device 101 and the communication device 151 are connected via an external AP is called an infrastructure connection method.
[0026] The short-range wireless communication unit 110 is configured to perform data communication with devices such as the communication device 151 by a short-range wireless communication method, and performs communication by a communication method different from that of the wireless communication unit 109. The short-range wireless communication unit 110 is connectable to a short-range wireless communication unit 157 in the communication device 151. Note that examples of the communication method of the short-range wireless communication unit 110 include BLE, Bluetooth Classic, Wi-Fi Aware, and NFC.
[0027] The photographing device 111 is a device that converts an image photographed by a photographing element into digital data. The digital data is temporarily stored in the RAM 105. Thereafter, the digital data is converted into a predetermined image format by a program executed by the CPU 103, and is saved in the external storage device 106 as image data.
[0028] The wired communication unit 112 is configured to connect to devices such as the communication device 151 and the AP 131 via a wire and perform data communication. For example, the wired communication unit 112 communicates via a wired LAN. In this embodiment, the wired LAN communicates according to the Ethernet standard. However, the present invention is not limited to this configuration, and the wired communication unit 112 may also communicate via, for example, a USB (Universal Serial Bus) cable.
[0029] The communication device 151 includes a ROM 152, a RAM 153, a CPU 154, a print engine 155, a wireless communication unit 156, a short-range wireless communication unit 157, an input interface 158, an output interface 159, a function control unit 160, a display unit 161, and a wired communication unit 162. The ROM 152, RAM 153, CPU 154, etc. form a computer of the terminal device 101.
[0030] The wireless communication unit 156 is configured to wirelessly connect to devices such as the terminal device 101 and the AP 131 to perform data communication. In this embodiment, Wi-Fi is used as the wireless communication method of the wireless communication unit 156, but Bluetooth Classic or the like may also be used. The wireless communication unit 156 has an AP 156-a as an AP within the communication device 151 for connecting to devices such as the terminal device 101. The AP is connectable to the wireless communication unit 109 of the terminal device 101. The wireless communication unit 156 may communicate directly with the terminal device 101 via the AP 156-a, or may communicate with the terminal device 101 via the AP 131. The AP 156-a may be hardware that functions as an AP, or the wireless communication unit 156 may operate as the AP 156-a using software that functions as an AP. The AP within the communication device 151 may be configured of multiple APs with different SSIDs (Service Set Identifiers) and passwords. In this embodiment, the APs inside the communication device 151 include at least a connection setting AP, which will be described later.
[0031] The RAM 153 is composed of a DRAM or the like that requires a backup power supply. Note that the RAM 153 retains data by being supplied with a data backup power supply (not shown), so it can store important data such as program control variables without volatilizing it. The RAM 153 is also used as the main memory and work memory of the CPU 154, and stores a receive buffer for temporarily storing print information received from the terminal device 101, etc., as well as various other information.
[0032] The ROM 152 stores fixed data such as control programs, data tables, and OS programs executed by the CPU 154. In this embodiment, each control program stored in the ROM 152 performs software execution control such as scheduling, task switching, and interrupt processing under the management of an embedded OS stored in the ROM 152. The ROM 152 also has a memory area for storing data that needs to be retained even when power is not supplied, such as setting information for the communication device 151 and management data for the communication device 151.
[0033] The CPU 154 is a system control unit that controls the entire communication device 151 .
[0034] Based on the information stored in the print engine 155 and RAM 153 and the print job received from the terminal device 101, etc., an image is formed on a recording medium such as paper using a recording agent such as ink, and the print result is output. At this time, the print job sent from the terminal device 101, etc., has a large amount of data to be transmitted and requires high-speed communication, so it is received via the wireless communication unit 156, which can communicate at a higher speed than the short-range wireless communication unit 157.
[0035] The short-range wireless communication unit 157 is configured to communicate with devices such as the terminal device 101 by a short-range wireless communication method. Note that examples of the communication method of the short-range wireless communication unit 157 include BLE, Bluetooth Classic, and Wi-Fi Aware.
[0036] The input interface 158 is an interface for receiving data input and operation instructions from the user, and is composed of a physical keyboard, buttons, a touch panel, etc. Note that the output interface 159 described below and the input interface 158 may have the same configuration, and the same configuration may be used for screen output and reception of operations from the user. The output interface 159 is an interface that controls the display unit 161 to display data and notify the status of the communication device 151.
[0037] The function control unit 160 manages the function operations of the communication device 151, determining whether or not the functions of the communication device 151 are operated simultaneously.
[0038] Display unit 161 is configured with an LED (light emitting diode), an LCD (liquid crystal display), etc., and displays data and notifies the status of communication device 151. Note that a soft keyboard equipped with keys such as numeric input keys, a mode setting key, a decision key, a cancel key, and a power key may be provided on display unit 161 to accept input from the user via display unit 161.
[0039] The wired communication unit 162 is configured to perform data communication by connecting to devices such as the terminal device 101 and the AP 131 via a wire. For example, the wired communication unit 162 communicates via a wired LAN. However, the communication is not limited to this, and may be performed via a USB cable, for example.
[0040] <Direct connection method> A direct connection refers to a wireless connection between devices directly (i.e., peer-to-peer) without going through an external device such as the AP 131. A direct connection is also called a peer-to-peer connection (P2P connection). The communication device 151 can operate in a mode for communicating via a direct connection (direct connection mode) as one of the connection modes. In Wi-Fi communication, there are multiple modes for communicating via a direct connection, such as a software AP mode and a Wi-Fi Direct (WFD) mode.
[0041] The mode in which a direct connection is established using WFD is called WFD mode. WFD is a standard established by the Wi-Fi Alliance and is included in the IEEE 802.11 series of communication standards. In WFD mode, after a device to be a communication partner is discovered using a device discovery command, the roles of P2P group owner (GO) and P2P client are determined, and the remaining wireless connection processing is carried out. The group owner corresponds to a Wi-Fi parent station (parent device), and the client corresponds to a Wi-Fi child station (child device). This role determination corresponds, for example, to GO Negotiation in P2P. Note that in WFD mode, before the role determination is made, the communication device 151 is neither a parent station nor a child station. Specifically, one device first issues a device discovery command to search for a device to connect to in WFD mode with another device to communicate with. Once the other device to be a communication partner is discovered, the two devices confirm information about the services and functions that each device can provide. Note that this device provisioning information confirmation is optional and not required. This device provisioning information confirmation phase corresponds to, for example, P2P Provision Discovery. Next, by mutually confirming this device provisioning information, it is determined which one will be the P2P client and which one will be the P2P group owner. Next, once the client and group owner are determined, they exchange parameters for WFD communication. Based on the exchanged parameters, the remaining wireless connection processing and IP connection processing are performed between the P2P client and group owner. Note that in WFD mode, the communication device 151 may always operate as the GO without performing the above-mentioned GO Negotiation. In other words, the communication device 151 may operate in WFD mode, which is an autonomous GO mode. Furthermore, the state in which the communication device 151 operates in WFD mode refers to, for example, a state in which a WFD connection is not established but the communication device 151 operates as the GO, or a state in which a WFD connection is established and the communication device 151 operates as the GO.
[0042] In the software AP mode, between devices communicating (for example, the terminal device 101 and the communication device 151), one device (for example, the terminal device 101) acts as a client that requests various services. The other device realizes the functions of an AP in Wi-Fi through software settings. The software AP corresponds to a Wi-Fi parent station, and the client corresponds to a Wi-Fi child station. In the software AP mode, the client searches for a device that will become the software AP using a device search command. Once the software AP is found, the remaining wireless connection processing (establishing a wireless connection, etc.) between the client and the software AP is performed, and then IP connection processing (assigning an IP address, etc.) is performed. Note that commands and parameters transmitted and received when establishing a wireless connection between the client and the software AP may be those specified in the Wi-Fi standard, and therefore a description thereof will be omitted here.
[0043] In this embodiment, when the communication device 151 establishes and maintains a direct connection, it operates as a master station in the network to which the communication device 151 belongs. The master station is a device that builds a wireless network and provides parameters used for connecting to the wireless network to the slave stations. The parameters used for connecting to the wireless network are, for example, parameters related to the channel used by the master station. By receiving the parameters, the slave stations connect to the wireless network built by the master station using the channel used by the master station. In the direct connection mode, the communication device 151 operates as a master station, and therefore can determine which frequency band and which channel to use for communication in the direct connection mode. In this embodiment, the communication device 151 is capable of using a channel corresponding to the 2.4 GHz frequency band and a channel corresponding to the 5 GHz frequency band for communication in the direct connection mode. The frequency band to use (i.e., which frequency band channel to use) can be arbitrarily set by the user through a predetermined screen (not shown) displayed by the communication device 151. That is, if 2.4 GHz is selected on the predetermined screen, the communication device 151 uses a channel corresponding to the 2.4 GHz frequency band for communication in the direct connection mode. On the other hand, if 5 GHz is selected on the predetermined screen, the communication device 151 uses a channel corresponding to the 5 GHz frequency band for communication in the direct connection mode. However, in this embodiment, even if 5 GHz is selected on the predetermined screen, the communication device 151 does not use a channel corresponding to a DFS (Dynamic Frequency Selection) band within the 5 GHz frequency band for communication in the direct connection mode. In other words, the communication device 151 uses only channels corresponding to frequency bands within the 5 GHz frequency band other than the DFS band for communication in the direct connection mode. Note that if a channel corresponding to the DFS band is being used and radar waves in the frequency band corresponding to that channel are detected, the currently used channel must be changed.Such a frequency band in which a channel change may occur due to the detection of radar waves is called a DFS band. For example, if a wireless chip supporting the DFS function is used, a channel corresponding to the DFS (Dynamic Frequency Selection) band within the 5 GHz frequency band may be available for communication in the direct connection mode. The channel determined as the channel to be used in the direct connection mode is also used for communication via the direct connection. Furthermore, the channel is also used for transmitting beacon signals as a master station and transmitting responses to received commands. In other words, the channel is used not only for communication processing in the direct connection mode when a direct connection is established, but also for communication processing in the direct connection mode when a direct connection is not established.
[0044] In the above description, the communication device 151 is described as being capable of using the 2.4 GHz frequency band and the 5 GHz frequency band, but is not limited to this. Other frequency bands may be usable, and in processes in which the 2.4 GHz frequency band or the 5 GHz frequency band is used in this embodiment, other frequency bands may also be used. For example, since the IEEE802.11ad standard allows the use of the 60 GHz frequency band, 60 GHz may be used as the other frequency band.
[0045] <About infrastructure connection methods> The infrastructure connection is a connection mode in which devices (for example, the terminal device 101 and the communication device 151) are connected to an AP (for example, the AP 131) that manages a network of devices that communicate with each other, and the devices communicate with each other via the AP. The communication device 151 can also operate in a mode for communicating via an infrastructure connection (infrastructure connection mode) as one of the connection modes.
[0046] In an infrastructure connection, each device searches for an AP using a device discovery command. Once an AP is discovered, the remaining wireless connection processing (establishing a wireless connection, etc.) is carried out between the device and the AP, and then the IP connection processing (assigning an IP address, etc.) is carried out. Note that the commands and parameters sent and received when establishing a wireless connection between a device and an AP can be those specified in the Wi-Fi standard, and so a description of them will be omitted here.
[0047] In this embodiment, when the communication device 151 operates in an infrastructure connection, the AP 131 serves as a master station, and the communication device 151 serves as a slave station. That is, in this embodiment, the infrastructure connection refers to a connection between the communication device 151 operating as a slave station and a device operating as a master station. When the communication device 151 has established an infrastructure connection and the terminal device 101 has also established an infrastructure connection with the AP 131, communication between the communication device 151 and the terminal device 101 is possible via the AP 131. The channel used for communication in the infrastructure connection is determined by the AP 131, and the communication device 151 performs communication in the infrastructure connection using the channel determined by the AP 131. In this embodiment, the communication device 151 is assumed to be able to use a channel corresponding to the 2.4 GHz frequency band and a channel corresponding to the 5 GHz frequency band for communication in the infrastructure connection. Note that the communication device 151 can also use a channel corresponding to the DFS band in the 5 GHz frequency band for communication in the infrastructure connection. In order to communicate with the communication device 151 via the AP 131, the terminal device 101 needs to recognize that the communication device 151 belongs to the network formed by the AP 131 and to which the terminal device 101 belongs.
[0048] <About connection setting mode> In this embodiment, the terminal device 101 executes a connection setup process for the communication device 151. The connection setup process is a process for establishing a Wi-Fi connection between the communication device 151 and another device. The communication device 151 can operate in a connection setup mode, which is a mode for the connection setup process. A trigger for the communication device 151 to start operating in the connection setup mode may be, for example, a user pressing a connection setup mode button, or the communication device 151 being started up (powered on) for the first time after arrival. The connection setup mode button may be a hardware button provided in the communication device 151, or may be a software button displayed on the display unit 161 by the communication device 151.
[0049] When the communication device 151 starts operating in the connection setting mode, it enables both Wi-Fi communication and BLE communication. Specifically, as a process for enabling Wi-Fi communication, the communication device 151 enables an internal AP (connection setting AP) of the communication device 151 that is dedicated to the connection setting mode. This puts the communication device 151 in a state where it can establish a direct connection via Wi-Fi with the terminal device 101. It is assumed that connection information (SSID and password) for connecting to the connection setting AP is stored in advance in a setup application installed in the terminal device 101, and that the terminal device 101 recognizes the connection information for connecting to the connection setting AP in advance. Note that an encryption method may not be set in the connection setting AP, and a password may not be required for connecting to the AP. Therefore, unlike the connection information of the AP enabled in the direct connection mode, it is assumed that the connection information for connecting to the connection setting AP cannot be arbitrarily changed by the user. It is assumed that in the connection setting mode, the communication device 151 may connect to the terminal device 101 via Wi-Fi Direct (WFD) instead of normal Wi-Fi. That is, the communication device 151 may act as a group owner and receive a setting command from the terminal device 101 through WFD communication.
[0050] <Problems to be solved by this embodiment> In this embodiment, in order to perform a connection setup process for the communication device 151, the terminal device 101 needs to search for the communication device 151 operating in a connection setup mode and connect to the communication device 151 found in the search. Specifically, the search for the communication device 151 operating in the connection setup mode is performed by searching for access points present around the terminal device 101 using a communication method based on the IEEE 802.11 standard. More specifically, a setup application on the terminal device 101 executes an OS-standard API (Application Programming Interface) for instructing the OS to execute a process for searching for access points present around the terminal device 101 (hereinafter referred to as a first search process), thereby causing the OS to execute the first search process. The OS-standard API for instructing the OS to execute the first search process is hereinafter referred to as a first search API. In the first search process, the OS attempts to receive beacons emitted by access points present around the terminal device 101. If any beacon is received, the access point emitting the received beacon is discovered. The setup application that executed the first search API obtains, from the OS, information about the access points discovered by the first search process as information indicating the results of the first search process. This allows the setup application to recognize access points that exist around the terminal device 101 and that were discovered by the search executed by the terminal device 101. Note that if a communication device has an enabled access point, the first search process may discover the communication device that has enabled the access point. Therefore, the setup application can discover the communication device 151 that is operating in the connection setting mode and has enabled the access point, and can establish a connection between the communication device 151 operating in the connection setting mode and the terminal device 101.
[0051] However, even if the setup application executes the first search API, the OS may not execute the first search process. Specifically, if the OS of the terminal device 101 is a predetermined version or higher and the setting items related to the location information service managed by the OS of the terminal device 101 are not set to predetermined contents, even if the setup application executes the first search API, the OS will not execute the first search process. Note that the location information service is a service that allows an application to use information indicating the location of the terminal device 101, which is information provided by the OS. In the location information service, the location of the terminal device 101 is identified based on information obtained from, for example, a Global Positioning System (GPS), an access point, a telephone base station, etc. Specifically, an OS version that is predetermined version or higher is MacOS 14. In addition, an OS version lower than the predetermined version is, in other words, an OS version older than the predetermined version, such as MacOS 13. Specifically, the predetermined content is that a setting (hereinafter, a first setting) for permitting an application included in the terminal device 101 to use the location information service is enabled, and a setting (a second setting) for selecting a setup application as an application for which the first setting permits use of the location information service is enabled. If the first search process is not executed by the OS, the terminal device 101 cannot find the communication device 151 operating in the connection setting mode, and as a result, cannot execute the connection setting process for the communication device 151.
[0052] Therefore, in this embodiment, if the setup application executes the first search API but the OS is not executing the first search process, the setup application executes the first search API to execute control so that the OS is executing the first search process. This prevents situations in which the connection setting process cannot be executed, and improves the usability of the setup application.
[0053] <About the screen for setting location information services> The OS-standard settings app included in the terminal device 101 can display a settings screen 300 as shown in FIG. 3. The settings screen 300 is displayed within a window displayed by the OS-standard settings app. In the settings screen 300, an area 301 is an area for enabling or disabling a first setting. The area 301 includes a first toggle button, and operating the first toggle button enables or disables the first setting. Note that when the first setting is enabled, apps selected as apps whose use of location information services is permitted by the first setting can use the location information services. Even when the first setting is enabled, apps whose use of location information services is not selected as apps whose use of location information services is permitted by the first setting cannot use the location information services. On the other hand, when the first setting is disabled, all apps included in the terminal device 101 cannot use the location information services. When the first setting is disabled, an area 302 described below may be grayed out, and operations on the area 302 may be disabled. Furthermore, when the first setting is disabled, all settings that can be set in the area 302 may be disabled.
[0054] Area 302 is an area for selecting an app other than the OS standard setup app as an app that is permitted to use location information services by the first setting. In this embodiment, area 302 includes area 303 for enabling or disabling the second setting. Area 303 includes a second toggle button, and operating the second toggle button enables or disables the second setting. Note that when the second setting is enabled, the setup app is selected as an app that is permitted to use location information services by the first setting, and the setup app can use the location information services. On the other hand, when the second setting is disabled, the setup app is not selected as an app that is permitted to use location information services by the first setting, and the setup app cannot use the location information services. Area 302 is an area related to apps other than the setup app, and may include an area similar to area 303.
[0055] <Processing Executed by the Terminal Device 101 in This Embodiment> 4 is a flowchart showing processing executed by the terminal device 101 using the setup application. This flowchart is realized by the CPU 103 reading a program (setup application) stored in the ROM 104 into the RAM 105 and executing it. Note that this flowchart is started based on an operation to start the setup application. An operation to start the setup application is, for example, an operation to press an icon corresponding to the setup application and displayed on the home screen of the terminal device 101.
[0056] In S401, the CPU 103 downloads print data for test printing, which will be described later. The print data is obtained, for example, from a server on the Internet via a connection between the terminal device 101 and an access point.
[0057] In S402, processing related to location information services is executed. Details of this processing will be explained below with reference to FIG.
[0058] 5 is a flowchart showing processing related to the location information service. This flowchart is implemented by the CPU 103 reading a program stored in the ROM 104 into the RAM 105 and executing it. In this embodiment, the terminal device 101 executes processing using a setup application. The processing in this flowchart corresponds to the processing in S402.
[0059] In S501, the CPU 103 determines whether the OS of the terminal device 101 is a predetermined version or higher. In this embodiment, the predetermined version is MacOS 14, but is not limited to this. Any OS version may be used as long as the OS execution conditions for the first search process include the setting contents of the location information service. If the CPU 103 determines YES, the process proceeds to S502. If the CPU 103 determines NO, the process of this flowchart ends and the process proceeds to S403. That is, if the CPU 103 determines NO, the process proceeds to S403 without executing S502 to S505 described below, thereby controlling so that the process for setting the second setting to valid (the process of S505) is not executed even if the second setting is not set to valid. That is, if the CPU 103 determines NO, the process does not execute regardless of the setting contents of the second setting. It is assumed that the OS of the terminal device 101 can be updated from an OS below the predetermined version to an OS at least at the predetermined version. In this case, the setup app on one terminal device 101 may output either YES or NO as the result of this determination. That is, the setup app on one terminal device 101 will determine NO when executed before the OS is updated, and will determine YES when executed after the OS is updated. However, in a configuration in which the OS of the terminal device 101 cannot be updated, the setup app on one terminal device 101 will output only either YES or NO as the result of this determination. That is, the terminal device 101 on which the setup app is running when the result of this determination is YES is different from the terminal device 101 on which the setup app is running when the result of this determination is NO.
[0060] In S502, CPU 103 determines whether the first setting is enabled. As described above, the first setting is a setting whose setting content can be changed by an operation on area 301 in FIG. 3. Specifically, in this process, CPU 103 acquires information indicating whether the first setting is enabled from the OS by using the setup application to execute an OS standard API for acquiring the information from the OS. CPU 103 then performs this determination based on whether the acquired information indicates that the first setting is enabled. If CPU 103 determines YES, the process proceeds to S503; if CPU 103 determines NO, the process of this flowchart ends and the process proceeds to S403.
[0061] In S503, CPU 103 determines whether the second setting is enabled. As described above, the second setting is a setting whose setting content can be changed by an operation on area 303 in FIG. 3 . In this embodiment, the states related to the second setting include a state in which the second setting is enabled, a state in which the second setting is disabled, and a state in which the second setting is neither enabled nor disabled (hereinafter referred to as the initial state). The initial state corresponds to a state in which neither an operation to enable the second setting nor an operation to disable the second setting has been performed. If the second setting is enabled or disabled, area 303 is displayed within area 302 when screen 300 is opened. However, in the initial state, area 303 may not be displayed within area 302 when screen 300 is opened. That is, area 302 may only display areas related to applications whose settings as apps permitted to use location information services by the first setting have been enabled or disabled by a dialog box described below. Specifically, in this process, CPU 103 acquires information indicating the state of the second setting from the OS by using the setup application to execute an OS standard API for acquiring the information from the OS. CPU 103 then performs this determination based on whether the acquired information indicates that the second setting is enabled. If CPU 103 determines YES, it ends the processing of this flowchart and proceeds to S403; if CPU 103 determines NO, it proceeds to S504. Note that if the acquired information indicates that the second setting is disabled or in the initial state, it determines NO.
[0062] In S504, CPU 103 determines whether the second setting is set to invalid. If CPU 103 determines YES, it ends the processing of this flowchart and proceeds to S403, and if it determines NO, it proceeds to S505. Note that if the information acquired in S503 indicates the initial state, it is determined NO.
[0063] In S505, CPU 103 executes processing for enabling the second setting. Specifically, in this processing, CPU 103 executes an OS-standard API for displaying a dialog for enabling the second setting using the setup app. When the API is executed, the OS displays the dialog in a window displayed by the setup app. FIG. 6 shows an example of a dialog 600 displayed in this processing. Dialog 600 includes a button 601 for enabling the second setting and a button 602 for not enabling the second setting. Dialog 600 also includes a message indicating that the setup app is attempting to use a location information service. The content of this message is controlled by the OS and cannot be controlled by the setup app. However, dialog 600 can also display a message that can be controlled by the setup app. Specifically, when the OS-standard API for displaying dialog 600 is executed, the setup app can notify the OS of an arbitrary message as an argument, and the message can be displayed in dialog 600. Note that if the setup application does not notify the OS of a message as an argument, no message controlled by the setup application is displayed in the dialog 600. Note that, as a message controlled by the setup application, for example, a message indicating that the second setting needs to be enabled in order to execute connection setting processing for the communication device 151 may be displayed in the dialog 600. When the button 601 is operated by the user, the OS enables the second setting. That is, the OS sets the second setting to a state where it is enabled. Furthermore, the OS notifies the setup application that the button 601 has been operated by the user. On the other hand, when the button 602 has been operated by the user, the OS disables the second setting. That is, the OS sets the second setting to a state where it is disabled. Furthermore, the OS notifies the setup application that the button 602 has been operated by the user. When the button 601 or the button 602 is operated, the dialog is hidden.If the button 601 or 602 is operated, the CPU 103 ends the processing of this flowchart and proceeds to S403.
[0064] In this embodiment, the OS does not display the dialog 600 unless the second setting is in the initial state. In other words, if the second setting is disabled, the OS does not display the dialog 600 even if the setup app executes an OS-standard API for displaying the dialog 600. Therefore, in this embodiment, the OS executes the process for enabling the second setting only when the second setting is in the initial state. However, this is not limited to this, and the OS may be able to display the dialog 600 even when the second setting is disabled. Furthermore, by omitting the determination in S504, the process for enabling the second setting may be executed whether the second setting is in the initial state or when the second setting is disabled.
[0065] When the processing of the flowchart in FIG. 5 ends, the CPU 103 proceeds to S403.
[0066] In S403, the CPU 103 executes processing for searching for the communication device 151. Specifically, in this processing, the CPU 103 executes a first search API to instruct the OS to execute a first search process. Note that when the first search API is executed, if the OS of the terminal device 101 is a predetermined version or higher and both the first setting and the second setting are enabled, the OS executes the first search process. Also, if the OS of the terminal device 101 is a version lower than the predetermined version, the OS executes the first search process regardless of the settings of the first setting and the second setting. However, if the OS of the terminal device 101 is a predetermined version or higher and at least one of the first setting and the second setting is disabled, the OS does not execute the first search process even if the first search API is executed by the setup app. If the OS executes the first search process, the setup app acquires information indicating the result of the first search process from the OS, and if the OS does not execute the first search process, the setup app does not acquire information indicating the result of the first search process from the OS. In addition, in this process, the CPU 103 causes the OS to execute the second search process by executing an OS standard API (hereinafter referred to as the second search API) for instructing the OS to execute a process for searching for communication devices on the network to which the terminal device 101 belongs (hereinafter referred to as the second search process). Note that when the second search API is executed, the OS executes the second search process regardless of the OS version of the terminal device 101 or the settings of the first setting and the second setting. In other words, even if the OS of the terminal device 101 is a predetermined version or higher and at least one of the first setting and the second setting is disabled, the OS executes the second search process. When the OS executes the second search process, the setup application acquires information indicating the result of the second search process from the OS. Note that the second search process is, in other words, a process for searching for communication devices that belong to the network to which the terminal device 101 belongs. Note that the second search process is executed by broadcasting on the network to which the terminal device 101 belongs.In other words, a communication device belonging to the network to which the terminal device 101 belongs is a communication device connected to the access point to which the terminal device 101 is connected. The connection between the terminal device 101 and the access point can be established by a communication method based on the IEEE802.11 standard or by a wired LAN. If there are multiple communication devices belonging to the network to which the terminal device 101 belongs, the multiple communication devices belonging to the network to which the terminal device 101 belongs are discovered by the second search process.
[0067] In S404, the CPU 103 displays a list of communication devices discovered by the search process executed in S403. At this time, the CPU 103 may identify communication devices supported by the setup application from among the communication devices discovered by the search process executed in S403 and display only the identified communication devices. In this embodiment, the communication devices supported by the setup application are specifically printing devices provided by the vendor that provides the setup application. Furthermore, the communication devices supported by the setup application are specifically communication devices that operate in connection setting mode and have enabled access points with SSIDs dedicated to the connection setting mode. FIG. 7 shows an example of a list screen 700, which is a screen displayed in this process. Area 701 displays a list of communication devices discovered by the search process executed in S403. Because the user selects one of the communication devices from the list displayed in area 701, the list screen 700 can also be considered a selection screen. If the user operates area 702 after selecting one of the communication devices from the list displayed in area 701, the CPU 103 proceeds to S405.
[0068] In S405, the CPU 103 displays an IF selection screen for selecting an interface (IF) to be used in the connection setup process. FIG. 8 shows an example of an IF selection screen 800, which is a screen displayed in this process. An area 803 is an area for displaying IF candidates to be used in the connection setup process. In this embodiment, the IF candidates to be used in the connection setup process are an IF for wireless LAN communication (Wi-Fi communication), an IF for wired LAN communication, and an IF for USB communication. Note that the IF selected here is an IF to be used for the connection between the communication device selected in S404 and the terminal device 101, and therefore the IF selection screen can also be said to be a screen for selecting a method of connection between the communication device selected in S404 and the terminal device 101. After the user selects one of the options displayed in area 801, if the user operates area 802, the CPU 103 proceeds to S406.
[0069] In S406, the CPU 103 executes a connection setup process for the communication device selected in S404. Details of this process will be described below with reference to FIG.
[0070] 9 is a flowchart showing the connection setting process. This flowchart is realized by the CPU 103 reading a program stored in the ROM 104 into the RAM 105 and executing it. In this embodiment, the terminal device 101 executes the process using a setup application. The process of this flowchart corresponds to the process of S406.
[0071] In S901, the CPU 103 determines whether the IF selected in S405 is an IF for wired LAN communication or an IF for USB communication. If the CPU 103 determines YES, the process proceeds to S902, and if the CPU 103 determines NO, the process proceeds to S903. Note that if the IF selected in S405 is an IF for wireless LAN communication, the process returns NO.
[0072] In S902, the CPU 103 is connected to the terminal device 101 via the IF selected in S405, identifies the communication device 151 selected in S404, and establishes a session between the identified communication device 151 and the terminal device 101. This puts the terminal device 101 in a state where it can communicate with the identified communication device 151. Thereafter, the CPU 103 ends the processing of this flowchart and proceeds to S407.
[0073] In S903, the CPU 103 determines whether the communication device 151 selected in S404 is a communication device 151 discovered by the first search process. The communication device 151 discovered by the first search process is a communication device 151 operating in the connection setting mode. If the CPU 103 determines YES, the process proceeds to S904, and if the CPU 103 determines NO, the process proceeds to S902.
[0074] In S904, the CPU 103 determines whether the OS of the terminal device 101 is a predetermined version or higher. This process is the same as the process of S501. If the CPU 103 determines YES, the process proceeds to S905, and if the CPU 103 determines NO, the process proceeds to S907. That is, if the CPU 103 determines NO, the process proceeds to S907 without executing S905, S906, and S908 (described below), thereby controlling so that the second connection setting process is not executed even if both the first setting and the second setting are not set to valid. That is, if the CPU 103 determines NO, the CPU 103 controls so that the second connection setting process is not executed, regardless of the setting contents of the first setting and the second setting.
[0075] In S905, the CPU 103 determines whether the first setting is enabled. This process is the same as the process of S502. If the CPU 103 determines YES, the process proceeds to S906, and if the CPU 103 determines NO, the process proceeds to S908.
[0076] In S906, the CPU 103 determines whether the second setting is enabled. This process is the same as the process of S503. If the CPU 103 determines YES, the process proceeds to S907, and if the CPU 103 determines NO, the process proceeds to S908.
[0077] In S907, the CPU 103 executes a first connection setting process. Details of this process will be described later with reference to Fig. 10. After that, the CPU 103 ends the process of this flowchart and proceeds to S407.
[0078] In S908, the CPU 103 executes a second connection setting process. Details of this process will be described later with reference to Fig. 11. After that, the CPU 103 ends the process of this flowchart and proceeds to S407.
[0079] The first connection setting process will be described in detail below. Fig. 10 is a flowchart showing the first connection setting process. This flowchart is implemented by the CPU 103 reading a program stored in the ROM 104 into the RAM 105 and executing it. In this embodiment, the terminal device 101 executes the process using a setup application. The process of this flowchart corresponds to the process of S907.
[0080] In S1001, CPU 103 searches for communication device 151 selected in S404, which is a communication device 151 operating in connection setting mode. Specifically, in this process, CPU 103 executes a first search API to instruct the OS to execute a first search process. The first connection setting process is executed when the execution conditions for the first search process are met. Therefore, in this process, the OS does not execute the first search process even though the first search API has been executed. When the OS executes the first search process, the setup application acquires information indicating the results of the first search process from the OS. The information indicating the results of the first search process is information indicating the access points discovered by the first search process. Therefore, CPU 103 identifies, from among the access points discovered by the first search process, an access point that is a communication device 151 operating in connection setting mode and that is enabled by communication device 151 selected in S404. If the access point is identified, it is the communication device 151 operating in the connection setting mode, and the communication device 151 selected in S404 has been discovered in this process. If the access point is not identified, it is the communication device 151 operating in the connection setting mode, and the communication device 151 selected in S404 has not been discovered in this process.
[0081] In S1002, the CPU 103 determines whether the communication device 151 selected in S404 has been found by the search in S1001. If the CPU 103 determines YES, the process proceeds to S1003, and if the CPU 103 determines NO, the process returns to S1001.
[0082] In S1003, the CPU 103 stores in memory information (SSID and password) about the access point to which the terminal device 101 is currently connected. Thereafter, the CPU 103 disconnects the connection between the terminal device 101 and the access point. Note that if the terminal device 101 is not connected to an access point, this process is skipped.
[0083] In S1004, the CPU 103 establishes a connection between the terminal device 101 and the access point enabled by the communication device 151 found by the search in S1001 (i.e., the communication device 151 selected in S404). That is, the CPU 103 establishes a connection between the communication device 151 selected in S404 and the terminal device 101. Note that in this embodiment, it is assumed that no password is required to connect to the access point enabled by the communication device 151 operating in the connection setting mode. Hereinafter, it is assumed that communication between the terminal device 101 and the communication device 151 is performed via the connection established here.
[0084] In S1005, the CPU 103 acquires, from the communication device 151 selected in S404, a list of access points discovered by the first search process executed by the communication device 151.
[0085] In S1006, CPU 103 determines whether the list acquired in S1005 includes an access point corresponding to the information saved in S1003. If CPU 103 determines YES, it proceeds to S1007, and if it determines NO, it proceeds to S1006. Note that if there is no information saved in S1003, it is determined NO in this process.
[0086] In S1007, CPU 103 transmits setting information including the information saved in S1003 to communication device 151 selected in S404. The information saved in S1003 is information for connecting to the access point to which terminal device 101 was connected at the time of S1003. When the information saved in S1003 is transmitted to communication device 151, communication device 151 uses the information to connect to the access point corresponding to the information. CPU 103 then proceeds to S1009.
[0087] In S1008, the CPU 103 executes a second connection setup process, the details of which will be described later.
[0088] In S1009, the CPU 103 uses the information stored in S1003 to re-establish a connection between the terminal device 101 and the access point corresponding to the information.
[0089] In S1010, the CPU 103 searches for the communication device 151 selected in S404, which is the communication device 151 that was the destination of information in S1007 and is on the network to which the terminal device 101 belongs and which is formed by the access point to which the terminal device 101 is connected. That is, the CPU 103 executes the second search API to cause the OS to execute the second search process. The CPU 103 then receives the results of the second search process from the OS and identifies the communication device 151 selected in S404 from among the devices identified by the results and discovered by the second search process. If the communication device 151 is discovered in this manner, the process of this flowchart ends and the process proceeds to S407. Note that a search other than the second search process may be executed in this process. Specifically, for example, the CPU 103 may acquire in advance the IP address of the communication device 151 selected in S404 and execute a unicast search process using the IP address in S1010.
[0090] If there is no information saved in S1003, S1009 and S1010 are skipped and the process proceeds to S407.
[0091] The second connection setting process will be described in detail below. Fig. 11 is a flowchart showing the second connection setting process. This flowchart is implemented by the CPU 103 reading a program stored in the ROM 104 into the RAM 105 and executing it. In this embodiment, the terminal device 101 executes the process using a setup application. The process of this flowchart corresponds to the process of S908.
[0092] In S1101, the CPU 103 displays, by the web browser, a guide screen (not shown) that indicates a predetermined operation method for establishing a connection between the communication device 151 and an access point, without transmitting setting information from the terminal device 101 to the communication device 151. Specifically, the CPU 103 causes the web browser to display the guide screen by instructing the web browser to display a screen using a URL for displaying the guide screen, which is a URL previously stored in the setup application. The guide screen is displayed in a window displayed by the web browser, which is a window different from the window displayed by the setup application. The predetermined operation is an operation performed by the user on the communication device 151, and includes an operation for causing the communication device 151 to execute a first search process, an operation for selecting one of the access points discovered by the first search process, an operation for inputting the password of the selected access point, and the like. The predetermined operation is not limited to this form and may include, for example, an operation for causing the communication device 151 to execute a connection process based on WPS (Wi-Fi Protected Setup) or AOSS (AirStation One-Touch Secure System). In this process, the CPU 103 further displays, in a window displayed by the setup application, a guidance screen for prompting the user to perform a predetermined operation according to the guide displayed on the guidance screen. This guidance screen is a screen displayed by the setup application without the setup application executing an OS standard API. FIG. 12 shows an example of the guidance screen 1200 displayed here. Area 1201 is a link button for displaying the guide screen again by the Web browser if the above-mentioned guide screen is closed. After performing a predetermined operation according to the guide displayed on the guide screen, the user presses a button in area 1202. When the button in area 1202 is pressed, the CPU 103 proceeds to S1102.
[0093] As described above, in S1101, the display of the guide screen by the Web browser is automatically executed when the processing advances to S1101, but this is not limiting. That is, the display of the guide screen by the Web browser does not have to be automatically executed when the processing advances to S1101. The display of the guide screen by the Web browser may be executed only when area 1201 of guide screen 1200 is operated.
[0094] Although the guide screen is described above as being displayed in a web browser, this is not a limitation. The guide screen may be displayed within the guidance screen 1200 displayed by the setup application, rather than within the screen displayed by the web browser. Alternatively, the guide screen may be displayed within a screen displayed by the setup application, but on a screen separate from the guidance screen 1200.
[0095] In S1102, the CPU 103 searches for the communication device 151 selected in S404 on the network to which the terminal device 101 belongs and on the network formed by the access point to which the terminal device 101 is connected. That is, the CPU 103 executes the second search API to cause the OS to execute the second search process. The CPU 103 then receives the results of the second search process from the OS and identifies the communication device 151 selected in S404 from among the devices indicated by the results and discovered by the second search process. If the communication device 151 is discovered in this manner, the process of this flowchart ends and the process proceeds to S407. Note that a search other than the second search process may be performed in this process. Specifically, for example, the CPU 103 may acquire in advance the IP address of the communication device 151 selected in S404 and execute a unicast search process using the IP address in S1010. The CPU 103 then ends the process of this flowchart and proceeds to S407.
[0096] In S407, the CPU 103 downloads and installs a printer driver corresponding to the communication device 151 selected in S404. For example, the CPU 103 downloads the printer driver from a server on the Internet via a connection between the terminal device 101 and an access point. Note that the processing executed in this process is not limited to this, and may be processing that displays a screen showing an operation method for downloading the printer driver. Furthermore, in this process, a program other than the printer driver may be downloaded. Specific examples of programs other than the printer driver include a printing application for sending a print job to the communication device 151, a scanning application for sending a scan job to the communication device 151, and an image layout application for arranging images on a template to create a layout image or an album.
[0097] In S408, the CPU 103 executes processing to create a print queue corresponding to the communication device 151 selected in S404. In this processing, the CPU 103 notifies the OS to create a print queue corresponding to the communication device 151 selected in S404. By creating a print queue corresponding to the communication device 151 selected in S404, the terminal device 101 can cause the communication device 151 selected in S404 to execute printing.
[0098] In S409, the CPU 103 transmits the print data acquired in S401 to the communication device 151 selected in S404, thereby causing the communication device 151 selected in S404 to execute test printing. Thereafter, the CPU 103 ends the processing of this flowchart.
[0099] By adopting the above-described configuration, in an environment where an OS-defined execution condition for the first search process exists, if the execution condition is not satisfied, a process for satisfying the execution condition can be executed, thereby preventing a situation in which the connection setting process cannot be executed due to the OS not executing the first search process.
[0100] In the above description, if the determination result in S906 is NO, the process immediately proceeds to S908, but this is not limiting. For example, if the determination result in S906 is NO, CPU 103 may execute a process of determining whether or not the second setting is set to invalid (a process similar to S504), and if the determination result is NO, execute a process of enabling the second setting (a process similar to S505). CPU 103 may then again execute a process of determining whether or not the second setting is set to valid (a process similar to S906), and if the determination result is YES, the process may proceed to S907, and if the determination result is NO, the process may proceed to S908.
[0101] In the above description, in both the flowchart of FIG. 5 and the flowchart of FIG. 9, the determination of whether the OS of the terminal device 101 is a predetermined version or higher, the determination of whether the first setting is enabled, and the determination of whether the second setting is enabled are performed. However, this is not limiting. For example, the above-described determination may be performed only in the flowchart of FIG. 5 but not in the flowchart of FIG. 9. In this embodiment, the processing of FIG. 9 is performed assuming that the user has enabled both the first setting and the second setting through the processing of the flowchart of FIG. 5. Therefore, if the determination result of S903 is YES, the CPU 103 skips the processing of S904 to S906 and proceeds to S907. In addition, for example, the above-described determination may be performed only in the flowchart of FIG. 9 but not in the flowchart of FIG. 5. In this embodiment, the CPU 103 skips S402 after S401 and proceeds to S403. In this embodiment, the same processing as S505 in the flowchart of FIG. 9 is also applied.
[0102] Second Embodiment The following describes a mode for solving the problem that is different from the first embodiment. The system of this embodiment and the processing executed in this embodiment are the same as those in the first embodiment unless otherwise specified.
[0103] In this embodiment, the process relating to the location information service executed in S402 differs from that in the first embodiment. Details of the process relating to the location information service in this embodiment will be described below with reference to FIG.
[0104] 13 is a flowchart showing processing related to a location information service. This flowchart is implemented by the CPU 103 reading a program stored in the ROM 104 into the RAM 105 and executing it. In this embodiment, the terminal device 101 executes processing using a setup application. The processing of this flowchart corresponds to the processing of S402.
[0105] In S1301, the CPU 103 determines whether the OS of the terminal device 101 is a predetermined version or higher. This process is the same as S501. If the CPU 103 determines YES, the process proceeds to S1302. If the CPU 103 determines NO, the process of this flowchart ends and the process proceeds to S403. That is, if the CPU 103 determines NO, the process proceeds to S403 without executing S1302 to S1307 described below, thereby controlling so that the process for setting the first setting to valid (the process of S1303) is not executed even if the first setting is not set to valid. Furthermore, the CPU 103 controls so that the process for setting the second setting to valid (the process of S1303 and the process of S1307) is not executed even if the second setting is not set to valid. That is, if the CPU 103 determines NO, the CPU 103 controls so that the process for setting the first setting to valid is not executed regardless of the setting content of the first setting. Furthermore, the CPU 103 controls so that the process for setting the second setting to valid is not executed regardless of the setting content of the second setting.
[0106] In S1302, CPU 103 determines whether at least one of the first setting and the second setting is disabled. Specifically, in this process, CPU 103 executes, via the setup application, an OS-standard API for obtaining from the OS information indicating whether the first setting is enabled and an OS-standard API for obtaining from the OS information indicating whether the second setting is enabled, thereby acquiring the information from the OS via the setup application. Based on the information thus obtained, this determination is made. Specifically, a case in which at least one of the first setting and the second setting is disabled refers to a case in which the first setting is disabled, or a case in which the first setting is enabled but the second setting is disabled. Specifically, a case in which at least one of the first setting and the second setting is not disabled refers to a case in which both the first setting and the second setting are enabled, or a case in which the first setting is enabled but the second setting is in its initial state. If CPU 103 determines YES, the process proceeds to S1303. If CPU 103 determines NO, the process proceeds to S1304.
[0107] In step S1303, the CPU 103 displays a guidance screen for prompting the user to enable the first setting. This guidance screen is displayed by the setup application without the setup application executing an OS-standard API. FIG. 14 shows an example of a guidance screen 1400 displayed in this process. The guidance screen 1400 is displayed within a window displayed by the setup application. The guidance screen 1400 includes a message for prompting the user to enable the first setting. In other words, this message is a message recommending that the first setting be enabled. Note that the area 303 for executing settings related to the second setting may not be displayed on the setting screen 300 until the dialog 600 is displayed in response to an instruction from the setup application. In other words, at this timing, the user may not be able to execute settings related to the second setting. Therefore, in this process, a process is executed to prompt the user to at least enable the first setting. However, even at this timing, the area 303 for executing settings related to the second setting may be displayed on the setting screen 300. In other words, even at this timing, the user may be able to execute settings related to the second setting. Therefore, the guidance screen 1400 may be a screen for prompting the user to enable both the first setting and the second setting. The guidance screen 1400 may also include a message indicating that the first setting and the second setting must be enabled in order to use the functions of the setup app. As described above, the guidance screen 1400 is a screen displayed by the setup app without using an OS-standard API. Therefore, the message displayed on the guidance screen 1400 is not a message whose content is controlled by the OS, but a message whose content is controlled by the setup app. An area 1401 included in the guidance screen 1400 is a button for displaying the setting screen 300. When the area 1401 is pressed, the CPU 103 notifies the OS-standard setting app to display the setting screen 300. Specifically, the CPU 104 executes the OS-standard API for displaying the setting screen 300.As a result, the setting screen 300 is displayed by the OS standard setting application in a window separate from the window displaying the guidance screen 1400. The user performs an operation to set the first setting to valid on the setting screen 300 displayed here. Then, after performing an operation to set the first setting to valid on the setting screen 300, the user operates an area 1402 included in the guidance screen 1400. If the area 1402 is operated, the CPU 103 proceeds to S1304.
[0108] In S1304, CPU 103 determines whether both the first setting and the second setting are enabled. Specifically, in this process, CPU 103 executes, via the setup application, an OS-standard API for obtaining from the OS information indicating whether the first setting is enabled and an OS-standard API for obtaining from the OS information indicating whether the second setting is enabled, thereby obtaining the information from the OS via the setup application. Then, this determination is made based on the information obtained in this manner. If CPU 103 determines YES, it ends the process of this flowchart and proceeds to S403; if it determines NO, it proceeds to S1305.
[0109] In S1305, CPU 103 determines whether the first setting is enabled. This process is the same as the process of S502. If CPU 103 determines YES, it proceeds to S1306, and if it determines NO, it ends the process of this flowchart and proceeds to S403.
[0110] In S1306, CPU 103 determines whether the second setting is set to disabled. This process is the same as the process of S504. If CPU 103 determines YES, it ends the process of this flowchart and proceeds to S403, and if it determines NO, it proceeds to S1307. Note that if the information acquired in S1305 indicates the initial state, it is determined NO. Furthermore, the reason why the processes of S1304 and S1305 are executed even though guidance screen 1400 is displayed in S1303 is that there are cases where the first setting or second setting has not been enabled by the user even though guidance screen 1400 is displayed.
[0111] In S1307, the CPU 103 executes processing to validate the second setting. This processing is the same as the processing in S505. If the button 601 or button 602 is operated, the CPU 103 ends the processing of this flowchart and proceeds to S403.
[0112] As described above, in this embodiment, when the first setting is disabled, processing for enabling the first setting can be executed. Note that, as processing for enabling the second setting when the second setting is in the initial state, a standard OS function, namely, displaying the dialog box 600, is provided, which is instructed to be executed by an application to the OS via an OS-standard API. However, as processing for enabling the first setting or processing for enabling the second setting when the second setting is disabled, no standard OS function is provided, which is instructed to be executed by an application to the OS via an OS-standard API. Therefore, in this embodiment, the CPU 103 executes processing that does not use a standard OS function instructed to be executed by an application to the OS via an OS-standard API as processing for enabling the first setting or processing for enabling the second setting when the second setting is disabled. Specifically, the CPU 103 displays a guidance screen using a setup application without using an OS-standard API. This configuration makes it easier for the OS to satisfy the execution conditions for the first search processing. Consequently, it is possible to prevent a situation in which the connection setting processing cannot be executed due to the OS not executing the first search processing.
[0113] 13 ends when the determination result in S1305 or S1306 is NO, but this is not limiting. The process may proceed to S1303 when the determination result in S1305 or S1306 is NO.
[0114] As described above, the result of the determination in S1302 may be YES when the first setting is disabled or when the first setting is enabled but the second setting is disabled. In the above description, the same guidance screen is displayed in S1303 in both cases, but this is not limiting. Different guidance screens may be displayed depending on whether the first setting is disabled or whether the first setting is enabled but the second setting is disabled. Specifically, for example, when the first setting is disabled, a guidance screen may be displayed to prompt the user to enable the first setting, and when the first setting is enabled but the second setting is disabled, a guidance screen may be displayed to prompt the user to enable the second setting.
[0115] In the above description, the process immediately proceeds to S908 if the determination result in S906 is NO, but this is not limiting. For example, if the determination result in S905 is NO, CPU 103 may execute a process for enabling the first setting that does not use an OS-standard API (processing similar to S1303). For example, if the determination result in S906 is NO, CPU 103 may execute a process for determining whether the second setting is set to disabled (processing similar to S504), and if the determination result is NO, execute a process for enabling the second setting that uses an OS-standard API (processing similar to S505). If the determination result is YES, CPU 103 may execute a process for enabling the second setting that does not use an OS-standard API (processing similar to S1303). Thereafter, CPU 103 executes a process (similar to S1304) to determine whether or not both the first setting and the second setting are set to valid, and if the result of this determination is YES, proceeds to S907, and if the result of this determination is NO, proceeds to S908.
[0116] In the above description, in S1307, the setup application executes a process of executing an OS-standard API for displaying the dialog 600, but this is not limiting. Even if the second setting is in the initial state, the area 303 may be displayed in the area 302. Therefore, in S1307, for example, the setup application may execute a process of executing an OS-standard API for displaying the setting screen 300 (processing similar to the process executed when the area 1401 is pressed). In addition, in S1307, for example, the setup application may execute a process of displaying the guidance screen 1400 (processing similar to S1303) without executing an OS-standard API.
[0117] In the above description, in both the flowchart of FIG. 13 and the flowchart of FIG. 9, a determination is made as to whether the OS of the terminal device 101 is a predetermined version or higher, whether the first setting is enabled, and whether the second setting is enabled. However, this is not limiting. For example, the above-described determination may be performed only in the flowchart of FIG. 13 and not in the flowchart of FIG. 9. In this embodiment, the processing of the flowchart of FIG. 13 assumes that the user has enabled both the first setting and the second setting, and the processing of FIG. 9 is executed. Therefore, if the determination result of S903 is YES, the CPU 103 skips S904 to S906 and proceeds to S907. In addition, for example, the above-described determination may be performed only in the flowchart of FIG. 9 and not in the flowchart of FIG. 13. In this embodiment, after S401, the CPU 103 skips S402 and proceeds to S403. In this embodiment, the above-described embodiment in which the same processing as S505 and the same processing as S1303 in the flowchart of FIG. 9 are executed is applied.
[0118] In the above description, the process of S1303 is executed based on whether at least one of the first setting and the second setting is disabled. However, the present invention is not limited to this. The process of S1303 may be executed regardless of the setting status of the first setting or the second setting. Specifically, for example, if S1301 is NO, the CPU 103 may skip S1302 and proceed to S1303.
[0119] <Other embodiments> In the above description, the first search process is described as being executed in a process for performing a connection setup process and for searching for a communication device 151 operating in a connection setup mode. However, the present invention is not limited to this. Because the first search process is a process for searching for an access point, it can be executed in various processes other than the process for performing the connection setup process as long as it is a process for connecting to an access point. Therefore, the above-described processes, such as determining whether the OS of the terminal device 101 is a predetermined version or higher, determining whether the first setting is enabled, determining whether the second setting is enabled, and processes similar to S505 and S1303, may also be executed in various processes other than the process for performing the connection setup process. Examples of processes other than the process for performing the connection setup process include establishing a connection between the terminal device and an access point discovered by the search, transmitting various information other than the setting information to the access point, and receiving various information from the access point. Examples of information other than the setting information include image data, print data, and audio data.
[0120] In the above description, the OS of the terminal device 101 is MacOS, but the present invention is not limited to this. The OS of the terminal device 101 may be another OS such as Android OS (registered trademark) or iOS (registered trademark).
[0121] In the above description, the process of S402 is executed after the process of S401, but this is not limiting, and the process of S402 may be executed before the process of S401.
[0122] Furthermore, it goes without saying that the object of the present invention can also be achieved by supplying a recording medium on which program code for software that realizes the functions of the above-described embodiments is recorded to a system or device, and having the computer (or CPU or MPU) of that system or device read and execute the program code stored on the recording medium. In this case, the program code itself read from the recording medium realizes the functions of the above-described embodiments, and the recording medium on which the program code is stored constitutes the present invention.
[0123] Examples of storage media that can be used to supply the program code include flexible disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and DVDs.
[0124] Furthermore, it goes without saying that not only are the functions of the above-mentioned embodiments realized by the computer executing the program code it has read, but also cases where an operating system (OS) running on the computer performs some or all of the actual processing based on the instructions of the program code, and the functions of the above-mentioned embodiments are realized through that processing.
[0125] The disclosure of this embodiment also includes the following configuration.
[0126] (Configuration 1) A predetermined application program, a first information processing device computer having a first version of an operating system (OS), a first execution step of executing, when a predetermined setting for permitting the predetermined application program to use a location information service is not enabled in the first information processing device, a first process for enabling the predetermined setting, based on the fact that the OS of the first information processing device is the first version and the fact that the predetermined setting is not enabled in the first information processing device; a second execution step of executing a second process for a predetermined search process for searching for an access point after the first process is executed; a third execution step of executing a third process to transmit, to a communication device that has enabled an access point found by the predetermined search process that is executed based on the execution of the second process, information about an access point other than the access point enabled by the communication device; Execute a computer of a second information processing device having an OS of a second version older than the first version, a control step of controlling the second information processing apparatus based on the OS of the second version so that the first process is not executed even if the predetermined setting is not enabled in the second information processing apparatus; a fourth execution step of executing the second process; a fifth execution step of executing the third process; A program characterized by executing the following.
[0127] (Configuration 2) The program described in configuration 1, characterized in that when the specified setting is in an initial state in which it is neither enabled nor disabled in the first information processing device, the first processing is executed based on the initial state.
[0128] (Configuration 3) The program according to configuration 1 or 2, characterized in that when the specified setting is set to disabled in the first information processing device, the program controls the first processing so that the first processing is not executed based on the specified setting being set to disabled in the first information processing device.
[0129] (Configuration 4) The program according to any one of configurations 1 to 3, wherein the first processing is processing for executing an OS standard Application Programming Interface (API) for displaying a dialog for enabling the predetermined setting.
[0130] (Configuration 5) The program described in any one of configurations 1 to 4, characterized in that if the first process is executed but the specified setting is not set to enabled, the specified search process is not executed, and another search process, which is a search process different from the specified search process and searches for devices on the network formed by the access point, is executed.
[0131] (Configuration 6) when the first process is executed and the predetermined setting is enabled, the predetermined search process and the other search process are executed in the first information processing device, The program described in configuration 5, characterized in that the specified search process and the other search process are executed in the second information processing device even if the specified setting is not enabled in the second information processing device.
[0132] (Configuration 7) In the first information processing device and the second information processing device, a specific setting that is different from the predetermined setting and is a setting for permitting an application program to use a location information service can be set to be enabled or disabled; The program described in any one of configurations 1 to 6, characterized in that the specified setting is a setting for selecting the specified application program as an application program for which the use of location information services is permitted by the specific setting.
[0133] (Configuration 8) when the specific setting is enabled and the predetermined setting is enabled, the predetermined search process is executed based on the execution of the second process; The program described in configuration 7, characterized in that if the specific setting is not set to enabled, and if the specific setting is set to enabled but the specified setting is not set to enabled, the specified search process is not executed even if the second process is executed.
[0134] (Configuration 9) The computer of the first information processing device a sixth execution step of executing a fourth process for validating the specific setting when the specific setting is not valid, based on the fact that the OS of the first information processing device is the first version and the fact that the specific setting is not valid in the first information processing device; The computer of the second information processing device The program described in configuration 7 or 8, further comprising a second control step of controlling based on the OS of the second information processing device being the second version so that the fourth process is not executed even if the specific setting is not enabled in the second information processing device.
[0135] (Configuration 10) The program described in configuration 9, characterized in that the fourth processing is a screen for validating the specific setting, and is processing for displaying a screen displayed by an OS standard setting application program.
[0136] (Configuration 11) 11. The program according to configuration 9 or 10, wherein the fourth process is a process for prompting a user to enable the specific setting.
[0137] (Configuration 12) The program described in any one of configurations 9 to 11, characterized in that the fourth process is a process of displaying a screen for validating the specific setting by the specified application program without executing an OS standard Application Programming Interface (API).
[0138] (Configuration 13) A program described in any one of configurations 9 to 12, characterized in that if the specified setting is not set to be enabled in the first information processing device after the fourth processing is executed, the first processing is executed based on the fact that the OS of the first information processing device is the first version and that the specified setting is not set to be enabled in the first information processing device.
[0139] (Configuration 14) 14. The program according to any one of configurations 1 to 13, wherein the second process is a process of executing an OS-standard Application Programming Interface (API) for the predetermined search process.
[0140] (Configuration 15) In the first information processing device, When the predetermined setting is enabled in the first information processing device, the third process is executed, and when the predetermined setting is not enabled in the first information processing device, the third process is not executed; In the second information processing device, The program described in any one of configurations 1 to 4, characterized in that the third processing is executed in the second information processing device even if the specified setting is not enabled in the second information processing device.
[0141] (Configuration 16) The computer of the first information processing device The program described in any one of configurations 1 to 15, further comprising a seventh execution step of executing a process to establish a connection between the communication device and the other access point without transmitting information about the other access point from the first information processing device if the specified setting is not enabled in the first information processing device.
[0142] (Configuration 17) 17. The program according to any one of configurations 1 to 16, wherein the communication device is a printing device.
[0143] (Configuration 18) 18. The program according to any one of configurations 1 to 17, wherein the OS of the first information processing apparatus and the OS of the second information processing apparatus are MacOS (registered trademark).
[0144] (Configuration 19) 19. The program according to configuration 18, wherein the first version is MacOS 14 or higher, and the second version is a version lower than MacOS 13. [Explanation of symbols]
[0145] 101 Terminal equipment 151 Communication equipment
Claims
1. A predetermined application program, A computer of a first information processing device having an operating system (OS) of a first version that is a predetermined version or higher, a receiving step of receiving a user instruction to start network setup; a display control step of, after receiving the user instruction, if a setting for permitting the predetermined application program to use a location information service is not valid, displaying a predetermined display for validating the setting; an execution step of executing a search process for searching for an access point after the setting is enabled based on a user instruction via the predetermined display; a transmitting step of transmitting information about a second access point different from the first access point to a communication device corresponding to the first access point found by the search process; Execute a computer of a second information processing apparatus having an OS of a second version that is lower than the predetermined version and has different execution conditions for the search process from the OS of the first version; a control step of performing control so that the search process is executed without displaying the predetermined message even if the setting is not valid after the user instruction is received; A program characterized by executing the following.
2. 2. The program according to claim 1, wherein the predetermined display includes a message indicating that the predetermined application program is attempting to use the location information service.
3. 2. The program according to claim 1, wherein the display control step performs the predetermined display based on the setting being in an initial state, which is neither valid nor invalid, in the first information processing apparatus.
4. 2. The program according to claim 1, wherein the display control step performs the predetermined display by executing an OS standard Application Programming Interface (API).
5. The program according to claim 1, characterized in that if the setting is not enabled after the specified display, the search process is not executed and another search process is executed to search for devices on the network formed by the access point.
6. 2. The program according to claim 1, wherein the communication device is a printing device.
7. 2. The program according to claim 1, wherein the OS of the first information processing apparatus and the OS of the second information processing apparatus are MacOS (registered trademark).
8. 8. The program according to claim 7, wherein the predetermined version is MacOS 14.
9. the first version of the OS is an OS for which enabling the setting is included in the conditions for executing the search process, 2. The program according to claim 1, wherein the second version of the OS is an OS in which enabling the setting is not included in the conditions for executing the search process.
10. A method for controlling a system including a first information processing apparatus having a predetermined application program and an operating system (OS) of a first version that is equal to or greater than a predetermined version, and a second information processing apparatus having the predetermined application program and an OS of a second version that is less than the predetermined version, a receiving step of receiving a user instruction to start network setup; a display control step of, after receiving the user instruction, when a setting for permitting the predetermined application program to use a location information service is not valid in the first information processing device, performing a predetermined display for validating the setting; an execution step of executing a search process for searching for an access point after the setting is enabled based on a user instruction via the predetermined display; a transmitting step of transmitting information about a second access point different from the first access point to a communication device corresponding to the first access point found by the search process; a control step of performing control so that the search process is executed without displaying the predetermined message even if the setting is not valid in the second information processing device after receiving the user instruction; and A control method, characterized in that the first version of the OS and the second version of the OS have different execution conditions for the search process.
11. A system including a first information processing apparatus having a predetermined application program and an operating system (OS) of a first version that is equal to or greater than a predetermined version, and a second information processing apparatus having the predetermined application program and an OS of a second version that is less than the predetermined version, The first information processing device a receiving means for receiving a user instruction to start network setup; a display control means for, when a setting for permitting the predetermined application program to use a location information service is not valid after receiving the user instruction, displaying a predetermined display for enabling the setting; an execution means for executing a search process for searching for an access point after the setting is enabled based on a user instruction via the predetermined display; a transmitting means for transmitting information about a second access point different from the first access point to a communication device corresponding to the first access point found by the search process; and The second information processing device a control means for performing control so that the search process is executed without displaying the predetermined message even if the setting is invalid after receiving the user instruction; and The system is characterized in that the first version of the OS and the second version of the OS have different execution conditions for the search process.
Citation Information
Patent Citations
Information providing system, information providing method, and program
JP2022030782A