Information processing device, control method, and program
A predetermined application program uses a wireless LAN API to determine and manage application access to location information services, enhancing security and control in direct communication environments.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-28
- Publication Date
- 2026-03-12
AI Technical Summary
Existing systems lack appropriate determination mechanisms for allowing or denying application programs access to location information services, particularly in environments where direct communication is established without an external access point.
Implement a predetermined application program that utilizes a calling mechanism to access a specific API for obtaining information through a wireless LAN function, determines successful acquisition, and executes processes based on the outcome, ensuring appropriate permission for location information services.
Enables more precise control over application access to location information services, preventing unauthorized use and ensuring secure communication setups.
Smart Images

Figure 2026043401000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an information processing device, a control method, and a program. [Background technology]
[0002] In an information processing device such as a smartphone, a user may grant permission to an application program to use a location information service, allowing the application program to use the location information service. JP 2021-69052 A describes a mobile terminal permitting an application that executes Wi-Fi Direct communication to access location information. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent Publication No. 2016-127545 Summary of the Invention [Problem to be solved by the invention]
[0004] As application programs increasingly use location information services, there is a demand for more appropriate determination of whether an application program is permitted to use location information services.
[0005] SUMMARY OF THE INVENTION It is therefore an object of the present invention to more appropriately determine whether an application program is permitted to use location information services. [Means for solving the problem]
[0006] The present invention is a predetermined application program that causes a computer of an information processing device to function as: a calling means that calls a predetermined API (Application Programming Interface) for obtaining, from an OS (Operating System) of the information processing device, predetermined information obtained by the information processing device via a wireless LAN (Local Area Network) function; a first determining means that determines whether or not the predetermined application program has successfully obtained the predetermined information by calling the predetermined API; and a first executing means that, based on the success of the acquisition of the predetermined information by the predetermined application program, does not execute a predetermined process for having a user perform an operation to allow the predetermined application program to use a location information service, and executes the predetermined process based on a failure of the acquisition of the predetermined information by the predetermined application program; and, when the use of location information services is permitted for the predetermined application program, the call of the predetermined API results in the predetermined information being successfully obtained by the predetermined application program; and, when the use of location information services is not permitted for the predetermined application program, the call of the predetermined API results in the predetermined information being successfully obtained by the predetermined application program, but when the use of location information services is not permitted for the predetermined application program, the acquisition of the predetermined information by the predetermined application program fails even if the predetermined API is called. [Effects of the Invention]
[0007] According to the present invention, it is possible to more appropriately determine whether an application program is permitted to use location information services. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 illustrates an example of a communication system. [Figure 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of a terminal device and a communication device. [Figure 3] 10 is an example of a setting screen. [Figure 4]10 is a flowchart illustrating an example of a process executed by a terminal device using a predetermined application. [Figure 5] 10A to 10C are examples of various screens displayed by the terminal device. [Figure 6] 10 is an example of an inquiry screen. [Figure 7] 10 is a flowchart illustrating an example of a connection setting process executed by a terminal device using a predetermined application. [Figure 8] 10 is a flowchart illustrating an example of a process executed by a terminal device using a predetermined application. [Figure 9] 10 is a flowchart illustrating an example of a process executed by a terminal device using a predetermined application. [Figure 10] 10 is an example of a guidance screen. 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. The information processing device is also referred to as a terminal device. In this embodiment, a personal computer (PC) is used as an example of the information processing device, but this is not limiting. Various devices, such as a smartphone, a tablet device, a PDA (Personal Digital Assistant), and a digital camera, can be used as the information processing device. In this embodiment, a printer is used as an example of the communication device. The printer may be an inkjet printer that prints using ink or a laser beam printer that prints using toner. The printer may be a full-color printer capable of color printing or a monochrome printer that does not support color printing but is capable of monochrome printing. Note that in this embodiment, the communication device is not limited to a printer, and any device capable of wireless communication with the information processing device can be used as the communication device. Examples of communication devices that can be used include copiers, facsimile machines, scanners, smartphones, PCs, tablet devices, PDAs, digital cameras, music playback devices, televisions, smart speakers, robot vacuum cleaners, automatic cooking pots, refrigerators, and the like. In addition, the communication device may also be a multifunction peripheral with multiple functions, such as a copying function, a fax function, and a printing function.
[0010] First, a system configuration for realizing this embodiment will be described. Fig. 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.
[0011] 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 access point activated by an external device that exists outside the terminal device 101 and outside the communication device 151. The access point has a function of forming a network. Therefore, in this embodiment, connection with an access point is synonymous with connection with a network formed by the access point. An external device is, for example, a wireless LAN (Local Area Network) router. The external server 171 is a server that can provide services via the Internet to devices connected to the AP 131.
[0012] In a situation where the communication device 151 and the terminal device 101 are connected to the AP 131, the LAN formed by the AP 131 includes the AP 131, the communication device 151, and the terminal device 101. On the other hand, the WAN (Wide Area Network) includes the AP 131 and an external server 171.
[0013] 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, in the following, a connection with an AP corresponds to a connection with a network formed by the AP. Note that one external device may activate multiple APs, and one external device may be able to form multiple networks simultaneously.
[0014] 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). The connection 143 between the terminal device 101 and the communication device 151 is also assumed to be a connection using a communication method based on the IEEE 802.11 series of standards. However, the communication method used for the connection 143 is not limited to this form. For example, Bluetooth (registered trademark) Low Energy (BLE), Bluetooth Classic, Wi-Fi Aware, Near Field Communication (NFC), etc. may also be used. The AP 131 and the external server 171 can communicate with each other 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.
[0015] Next, the hardware 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.
[0016] 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.
[0017] 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.
[0018] The CPU 103 is a system control unit, and controls the entire terminal device 101. In this embodiment, the CPU 103 controls the display content on the display unit 108 (display control), and the like.
[0019] The ROM 104 stores fixed data such as control programs and data tables executed by the CPU 103, and operating system (hereinafter referred to as OS) programs. 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 provided in the terminal device 101 is the Windows (registered trademark) OS. Therefore, in this embodiment, application programs running on the terminal device 101 are application programs for the Windows (registered trademark) OS. In addition, in this embodiment, the ROM 104 stores a predetermined application program (app) for controlling the communication device 151. In other words, the application program is application software. The predetermined app is an app provided by the vendor of the communication device 151 and is an app for performing network repair so that the terminal device 101 and the communication device 151 can communicate with each other. Note that the predetermined app may have functions other than a network repair function. Specifically, the other functions are, for example, a function of transmitting a print job to cause communication device 151 to execute printing (print job transmission function) and a function of transmitting a scan job to cause communication device 151 to execute scanning (scan job transmission function). Also, a predetermined application is installed on terminal device 101 from the outside, for example, via a web page provided by the vendor of communication device 151. Furthermore, the processing described as processing executed by the OS in this embodiment is, more accurately, processing executed by CPU 103 in accordance with a program in the OS. Similarly, the processing described as processing executed by an application is, more accurately, processing executed by CPU 103 in accordance with a program in the application.
[0020] 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.
[0021] 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.
[0022] 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 .
[0023] 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. In this embodiment, the display unit 108 is a touch panel that can accept operations from the user using an operator such as a finger or a pen.
[0024] 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 the 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. In this embodiment, the wireless LAN is a network using Wi-Fi. Therefore, the wireless communication unit 109 performs wireless LAN communication using the wireless LAN function of the terminal device 101. In this embodiment, a connection between the terminal device 101 and the communication device 151 directly without an external AP is referred to as a direct connection. In addition, a connection between the terminal device 101 and the communication device 151 via an external AP is referred to as an infrastructure connection.
[0025] 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.
[0026] 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.
[0027] 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 communicate via, for example, a USB (Universal Serial Bus) cable. Furthermore, for example, if the terminal device 101 is a smartphone, the terminal device 101 may not have the wired communication unit 112.
[0028] 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 communication device 151.
[0029] 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, the wireless communication unit 156 uses Wi-Fi, a communication method based on the IEEE 802.11 standard, as a wireless communication method. However, Bluetooth Classic or the like may also be used. The wireless communication unit 156 includes 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 communication device 151 may be capable of internally activating multiple APs with different SSIDs (Service Set Identifiers) and passwords.
[0030] 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 various types of information as a receive buffer for temporarily storing print information received from the terminal device 101 or the like.
[0031] 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.
[0032] The CPU 154 is a system control unit that controls the entire communication device 151 .
[0033] The print engine 155 forms an image on a recording medium such as paper using a recording agent such as ink based on information stored in the RAM 153 and a print job received from the terminal device 101, etc., and outputs the print result. 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] <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.
[0040] 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 communication via WFD. 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.
[0041] 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.
[0042] 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 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 direct connection mode.
[0043] <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.
[0044] 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.
[0045] In this embodiment, when the communication device 151 operates in an infrastructure connection, the AP 131 operates as a master station, and the communication device 151 operates 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 addition, since the terminal device 101 communicates with the communication device 151 via the AP 131, the terminal device 101 recognizes and identifies that the communication device 151 belongs to the network formed by the AP 131 and to which the terminal device 101 belongs.
[0046] <Connection setup process> In this embodiment, the terminal device 101 performs connection settings (network settings) for operating the communication device 151 using at least one of an infrastructure connection and a direct connection, using wireless communication with the communication device 151. The connection setting process in this embodiment is also called cableless setup (CLS) because it is performed via wireless communication. Note that the connection setting process may also be performed via wired communication. The terminal device 101 performs connection setting processing for the communication device 151 when a predetermined application stored in the external storage device 103 or the like is running. The communication device 151 is operable in a connection setting mode (connection setting state) that is a mode for performing the connection setting process, and performs the connection setting process while operating in the connection setting mode described below. The connection setting mode will be described in detail later.
[0047] When the terminal device 101 operates the communication device 151 in the infrastructure connection mode, the terminal device 101 wirelessly transmits infrastructure setting information, which is setting information for operating the communication device 151 in the infrastructure connection mode, to the communication device 151. The infrastructure setting information includes information about the AP 131. The information about the AP 131 includes, for example, an SSID (Service Set Identifier), a password, and information about a frequency band.
[0048] On the other hand, when the terminal device 101 operates the communication device 151 in the direct connection mode, the terminal device 101 wirelessly transmits direct setting information, which is setting information for operating the communication device 151 in the direct connection mode, to the communication device 151. The direct setting information includes instructions for enabling the WFD function to operate the communication device 151 as a Group Owner and for enabling the access point setting of the communication device 151. Furthermore, the terminal device 101 acquires connection information required for directly connecting to the communication device 151 from the communication device 151. The connection information for directly connecting to the communication device 151 includes, for example, information such as the SSID and password of the communication device 151 operating in the direct connection mode.
[0049] In this embodiment, a direct connection for connection setting between the terminal device 101 and the communication device 151 is used to transmit infrastructure setting information and direct setting information and to obtain information for directly connecting to the communication device 151 in the connection setting process. In this embodiment, the connection setting process is performed using Wi-Fi as the direct connection for connection setting, but a wireless communication standard other than Wi-Fi, such as Bluetooth, may also be used. Furthermore, a wired communication standard such as a wired LAN or USB (Universal Serial Bus) may also be used as the direct connection for connection setting.
[0050] After a Wi-Fi infrastructure connection or a direct connection is established between the terminal device 101 and the communication device 151 through the connection setting process, communication between the terminal device 101 and the communication device 151 becomes possible via the established connection. Specifically, for example, the terminal device 101 can transmit, to the communication device 151, a print job for causing the communication device 151 to execute printing or a scan job for causing the communication device 151 to execute scanning, via the established connection. Note that the function of transmitting a print job or a scan job to the communication device 151 may be executed by a predetermined application. Note that in this embodiment, the connection setting process can cause the communication device 151 to operate in either an infrastructure connection mode or a direct connection mode, but is not limited to this. For example, the connection setting process may be configured to cause the communication device 151 to operate only in the infrastructure connection mode (i.e., the communication device 151 cannot operate in the direct connection mode).
[0051] <About connection setting mode> Communication device 151 can operate in a connection setting mode. A trigger for communication device 151 to start operation in the connection setting mode may be, for example, a user pressing a connection setting mode button, or communication device 151 being started up (powered on) for the first time after arrival. The connection setting mode button may be a hard button provided in communication device 151, or may be a soft button displayed on display unit 132 by communication device 151.
[0052] 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. Connection information (SSID and password) for connecting to the connection setting AP is stored in advance in a predetermined application installed in the terminal device 101. In other words, it is assumed that the terminal device 101 recognizes the connection information for connecting to the connection setting AP in advance. Therefore, unlike the connection information of the AP enabled in the direct connection mode, it is assumed that the connection information for connecting to the connection setting AP cannot be arbitrarily changed by the user. Note that an encryption method may not be set in the connection setting AP, and a password may not be required to connect to the AP. Note 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.
[0053] <Registering communication devices to the app> In this embodiment, a predetermined application can register the communication device 151 with the predetermined application by acquiring information about the communication device 151 from the communication device 151. The information about the communication device 151 includes, for example, capability information about the communication device 151, identification information (such as a MAC address) about the communication device 151, and model information about the communication device 151. The capability information about the communication device 151 specifically includes a list of information about functions supported by the communication device 151, information about consumables (ink, paper) available for the communication device 151, and information indicating the printing method of the communication device 151. The predetermined application then selects one device from one or more communication devices 151 registered in the predetermined application as a device with which the predetermined application will communicate. Hereinafter, the communication device 151 currently selected as a device with which the predetermined application will communicate will be referred to as the selected communication device 151. The selection of a device to be a communication partner for a predetermined application may be performed by accepting a selection from one or more communication devices 151 registered in the predetermined application from the user, or may be performed automatically by the predetermined application according to predetermined criteria. Furthermore, a change of a device to be a communication partner for a predetermined application may be performed by, for example, accepting a selection from one or more communication devices 151 registered in the predetermined application from the user. In this embodiment, the predetermined application transmits various jobs, such as a print job or a scan job, to the selected communication device 151. In other words, the selected communication device 151 is a device to which various jobs are transmitted.
[0054] <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 for changing settings related to location information services, 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 permitting or disallowing the terminal device 101 to use the location information service. The area 301 includes a first toggle button, and operating the first toggle button permits or disallows the terminal device 101 to use the location information service. Note that if the terminal device 101 is permitted to use the location information service, apps selected in areas 302 to 304 as apps permitted to use the location information service can use the location information service. In other words, even if the terminal device 101 is permitted to use the location information service, apps that are not selected as apps permitted to use the location information service cannot use the location information service. On the other hand, if the terminal device 101 is prohibited from using the location information service, all apps included in the terminal device 101 cannot use the location information service. If the terminal device 101 is not permitted to use the location information service, the areas 302 to 304 described below may be grayed out, and operations on the areas 302 to 304 may be disabled.
[0055] Area 302 is an area for permitting or disallowing use of location information services for UWP (Universal Windows Platform) apps and desktop apps owned by the terminal device 101. Area 301 includes a second toggle button. Operating the second toggle button allows or disallows use of location information services for UWP apps and desktop apps owned by the terminal device 101. A UWP app is an app created using a method called UWP and installed using information downloaded via a store function compatible with Windows. A specific example of the store function compatible with Windows is the Microsoft Store. On the other hand, a desktop app is an app that was not installed using information downloaded from a store function compatible with Windows. Specifically, a desktop app is an app that was installed using information downloaded from a web page provided by the vendor of each app. Alternatively, a desktop app is an app that was installed using information downloaded from a storage medium such as a CD or USB memory attached to the terminal device 101. In this embodiment, the predetermined app is a desktop app.
[0056] The area 303 is an area for permitting or disallowing use of location information services for each UWP app included in the terminal device 101. In the present embodiment, the terminal device 101 can permit or disallow use of location information services for each UWP app individually. For this reason, a toggle button is assigned to each app in the area 303, and operating the toggle button permits or disallows use of location information services for each app individually. In other words, the app corresponding to the toggle button operated to permit use of location information services in the area 303 is selected as the app that is permitted to use location information services.
[0057] Area 304 is an area for permitting or disallowing the use of location information services for each desktop application owned by the terminal device 101. In this embodiment, the terminal device 101 cannot permit or disallow the use of location information services for each desktop application individually. In other words, the terminal device 101 cannot permit or disallow the use of location information services for all desktop applications owned by the terminal device 101 collectively. Therefore, by operating a toggle button displayed in area 304, the use of location information services is permitted or disallowed for all desktop applications owned by the terminal device 101. In other words, when an operation to permit the use of location information services is performed on the toggle button in area 304, all desktop applications owned by the terminal device 101 are selected as applications that are permitted to use location information services. Note that area 304 may include an area indicating desktop applications owned by the terminal device 101.
[0058] In the present embodiment, it is assumed that the areas on the settings screen 300 that the user can operate are controlled by a setting app depending on the type of account logged in to the terminal device 101. Specifically, when the account logged in to the terminal device 101 is an administrator account, the setting app controls so that the user can operate all of areas 301 to 304. On the other hand, when the account logged in to the terminal device 101 is a standard user account with lower authority than the administrator account, the setting app controls so that the user cannot operate area 301 and can only operate areas 302, 303, and 304. In other words, a user logged in with a standard user account cannot change the settings for using location information services for each UWP app and each desktop app owned by the terminal device 101 until the user logged in with an administrator account operates area 301 and is permitted to use location information services for the terminal device 101 itself.
[0059] <Problems to be solved by this embodiment> As described above, in this embodiment, performing an operation on the setting screen 300 enables a specific application to use the location information service. In other words, the specific application is permitted to use the location information service. If the terminal device 101 has a specific OS, the specific application cannot acquire information about the Wi-Fi communication function from the OS unless the specific application is permitted to use the location information service. Specifically, the information about the Wi-Fi communication function is, for example, information about an AP to which the terminal device 101 is currently connected via Wi-Fi. Another example is information about an AP that is emitting a beacon around the terminal device 101 and that the terminal device 101 discovered through a Wi-Fi search. In this embodiment, during the connection setup process, the terminal device 101 needs to acquire, from the OS, information about the AP to which the terminal device 101 is currently connected via Wi-Fi and information about a connection setup AP enabled by the communication device 151 operating in connection setup mode. Therefore, unless the specific application is permitted to use the location information service, the terminal device 101 cannot properly execute the connection setup process.
[0060] Therefore, it is desirable for a specific application to determine whether the application is permitted to use location information services and, if not, prompt the user to allow the application to use location information services. However, certain operating systems, such as Windows (registered trademark), do not provide an API for obtaining information from the OS directly indicating whether the application is permitted to use location information services. API stands for Application Programming Interface. That is, when a specific application runs on a specific OS, it is unable to perform a determination by using an API for obtaining information from the OS directly indicating whether the application is permitted to use location information services. To solve this problem, in this embodiment, a determination is made using a method other than the method using an API for obtaining information from the OS directly indicating whether the application is permitted to use location information services. Based on the determination result, the user is prompted to allow the application to use location information services.
[0061] <Processing executed by a predetermined app in this embodiment> FIG. 4 is a flowchart showing an example of processing executed by the terminal device 101 using a predetermined application in this embodiment. Each process in the flowchart in FIG. 4 is realized, for example, by the CPU 103 expanding a predetermined application stored in a memory such as the ROM 104 into the RAM 105 and executing the application. The flowchart in FIG. 4 is started when an operation for network repair is received from the user on a screen displayed by the predetermined application. The flowchart in FIG. 4 may also be started when the predetermined application is launched. The flowchart in FIG. 4 may also be started when communication with the communication device 151 attempted by the predetermined application or another application fails.
[0062] In S401, the CPU 103 calls a predetermined API. In this embodiment, the predetermined API is an API for acquiring information related to location information services from the OS. In other words, the predetermined API is an API that allows an application to access information related to location information services. In this embodiment, the information related to location information services is information acquired by the terminal device 101 using the wireless LAN function. This is because, based on the information acquired by the terminal device 101 using the wireless LAN function, an application program that has acquired the information may be able to identify the location of the terminal device 101 or the location of another device. Specifically, the information acquired by the terminal device 101 using the wireless LAN function is, for example, information related to a list of wireless networks accessible by the terminal device 101, information related to a list of Basic Service Sets (BSSs) of networks accessible by the terminal device 101, and information related to a network to which the terminal device 101 is currently connected via Wi-Fi.
[0063] If the application that executed a specific API is not permitted to use location information services, even if the specific API is called, the OS will not notify the application that called the specific API of an error, rather it will notify the application that called the specific API of an error. Specifically, the OS will notify the application that called the specific API of an error code, ERROR_ACCESS_DENIED, indicating that access to information related to location information services has been denied. On the other hand, if the application that called the specific API is permitted to use location information services, when the specific API is called, the OS will notify the application that called the specific API of a correct value as information related to location information services. Specifically, the OS will notify the application that called the specific API of an error code, ERROR_SUCCESS, indicating that access to information related to location information services was successful, and will notify the application of the correct value as information related to location information services.
[0064] There are multiple predetermined APIs. Specifically, the predetermined APIs compatible with the Windows OS include WlanGetAvailableNetworkList (hereinafter referred to as the first API), WlanGetAvailableBSSList (hereinafter referred to as the second API), WlanQueryInterface (hereinafter referred to as the third API), and WlanScan (hereinafter referred to as the fourth API).
[0065] The first API is an API for acquiring information about a list of wireless networks accessible by the terminal device 101. The wireless networks accessible by the terminal device 101 are networks formed by access points that exist around the terminal device 101 and emit beacons based on the Wi-Fi standard. Specifically, the information acquired by the first API is information indicating the SSIDs of the access points that form the wireless networks accessible by the terminal device 101, the authentication method and encryption method of the access points, and the frequency bands used by the access points.
[0066] The second API is an API for acquiring information regarding a list of Basic Service Sets (BSSs) of networks accessible to the terminal device 101. Specifically, the information acquired by the second API is information indicating the SSIDs of access points forming wireless networks accessible to the terminal device 101 and the BSSs of the wireless networks accessible to the terminal device 101. Note that the wireless networks indicated by the information acquired by the first API or the second API are not those discovered by a search (scan) performed based on the execution of the first API or the second API. In other words, the OS does not perform a new search for wireless networks based on the call of the first API or the second API. The wireless networks indicated by the information acquired by the first API or the second API are, for example, networks discovered by a search performed by the OS at any time before the call of the first API or the second API, or a search performed based on the call of the fourth API.
[0067] The third API is an API for acquiring information about the network to which the terminal device 101 is currently connected via Wi-Fi. In other words, the information about the network to which the terminal device 101 is currently connected via Wi-Fi is information about the access points that form the network to which the terminal device 101 is currently connected via Wi-Fi. Specifically, the information acquired by the predetermined API is information indicating the SSID of the access points that form the network to which the terminal device 101 is currently connected via Wi-Fi, and the authentication method and encryption method of the access points.
[0068] The fourth API is an API for causing the OS to search for wireless networks that the terminal device 101 can access.
[0069] In this embodiment, in S401, the third API among the first to fourth APIs is called, but this is not limited to this, and any API may be called as long as it is a predetermined API. Note that the predetermined API is not limited to a form including only the first to fourth APIs, and may include other types of APIs as long as they are APIs for obtaining information related to location information services from the OS.
[0070] When a predetermined API is called by a predetermined application in S401, the OS executes processing based on the call of the predetermined API. Specifically, the OS first determines whether the predetermined application is calling the predetermined API for the first time and whether the application is permitted to use location information services. If it is determined that the predetermined application is calling the predetermined API for the first time and that the application is not permitted to use location information services, the OS displays a query screen for querying the user whether to allow the application to use location information services. FIG. 6 shows an example of the query screen 600. The query screen 600 includes an area 601 that displays a message for querying whether the application is permitted to use location information services and a message indicating that the application requires permission to use location information services. The query screen 600 also includes a button 602 for displaying the settings screen 300. When the user operates the button 602, the OS launches a standard settings application in the OS and causes the standard settings application to display the settings screen 300. The query screen 600 also includes a button 603 for permitting a predetermined application to use the location information service, and a button 604 for denying the predetermined application from using the location information service. When the user operates the button 603, the OS permits the terminal device 101 to use the location information service and also permits the predetermined application to use the location information service. On the other hand, when the user operates the button 604, the OS maintains the state in which the predetermined application is not permitted to use the location information service.
[0071] After button 603 or 604 is operated to change or maintain the setting regarding permission for the use of location information services for a specific application, the OS determines whether the specific application is permitted to use location information services. Furthermore, if it is determined that the specific application is not making its first call to the specific API, the OS determines whether the specific application is permitted to use location information services without displaying query screen 600. If the specific application is permitted to use location information services, the OS notifies the specific application of a code called ERROR_SUCCESS, which indicates that the call to the specific API was successful, and notifies the specific application of information related to the location information services with the correct values. On the other hand, if the specific application is permitted to use location information services, the OS notifies the specific application of an error code called ERROR_ACCESS_DENIED, which indicates that access to information via the specific API failed, but does not notify the specific application of information related to the location information services with the correct values.
[0072] In S402, CPU 103 determines whether a predetermined application is permitted to use the location information service. Specifically, in this process, CPU 103 determines whether a code corresponding to successful access to information via a predetermined API has been notified as a result of calling the predetermined API. In other words, this determination corresponds to a process of determining whether access to information related to the location information service has been successful by calling the predetermined API. If the predetermined application is not permitted to use the location information service and an error code corresponding to failed access to information via the predetermined API has been notified as a result of calling the predetermined API from the OS, resulting in a negative result in this determination, CPU 103 proceeds to S403. On the other hand, if the predetermined application is permitted to use the location information service and a correct value has been notified as a result of calling the predetermined API, resulting in a positive result in this determination, CPU 103 proceeds to S408.
[0073] In S403, the CPU 103 identifies the type of the user account currently logged in to the terminal device 101, and determines whether the identified account is an administrator account (standard user account). If the determination is YES, the CPU 103 proceeds to S404, and if the determination is NO, the CPU 103 proceeds to S407.
[0074] In S404, CPU 103 executes a display process to display a guide screen for prompting the user to allow a specific application to use the location information service. Guide screen 500 shown in FIG. 5 is an example of the guide screen displayed in S404. Guide screen 500 includes an area 501 for displaying a message for prompting the user to allow a specific application to use the location information service and a message indicating an operation for allowing a specific application to use the location information service. Guide screen 500 may also include a message indicating information that the specific application acquires as information related to the location information service. That is, in this embodiment, for example, a message indicating that the specific application acquires information related to an AP (Wi-Fi router) as information related to the location information service. Guide screen 500 also includes a button 502 for displaying setting screen 300. When button 502 is operated by the user, CPU 103 launches a standard setting application for the OS and causes the standard setting application to display setting screen 300. Even when button 502 is operated and setting screen 300 is displayed, display of guide screen 500 is maintained. Therefore, after allowing a predetermined application to use the location information service on the setting screen 300, the user can operate the button 503 included in the guidance screen 500. When the button 503 is operated, the CPU 103 proceeds to S405.
[0075] In S405, the CPU 103 calls the predetermined API again in the same manner as in S401.
[0076] Then, in S406, CPU 103 determines whether the predetermined application is permitted to use the location information service, as in S402. If the predetermined application is not permitted to use the location information service and an error code has been notified from the OS as a result of calling the predetermined API, resulting in a negative result in this determination, CPU 103 proceeds to S407. On the other hand, if the predetermined application is permitted to use the location information service and a correct value has been notified from the OS as a result of calling the predetermined API, resulting in a positive result in this determination, CPU 103 proceeds to S408.
[0077] In S407, CPU 103 stores in memory the current settings regarding permission to use location information services for a specific application. That is, CPU 103 stores in memory information indicating that the settings correspond to a state in which the specific application is not permitted to use location information services. Then, CPU 103 proceeds to S408.
[0078] In S408, the CPU 103 acquires information about the network to which the terminal device 101 is currently connected via Wi-Fi. Specifically, in S408, the CPU 103 calls a third API. If the use of location information services is permitted for a specific application, the call of this API successfully acquires information about the network to which the terminal device 101 is currently connected via Wi-Fi. Therefore, the network to which the terminal device 101 is currently connected via Wi-Fi is, in other words, the network to which the terminal device 101 is connected via Wi-Fi when the third API is called. If the use of location information services is not permitted for a specific application, even if this API is called, acquisition of information about the network to which the terminal device 101 is currently connected via Wi-Fi fails. Note that if the terminal device 101 is not currently connected to any network via Wi-Fi, the call of the API is successful, but information about the network to which the terminal device 101 is currently connected via Wi-Fi is not acquired.
[0079] Note that if the API call in S401 has successfully acquired information about the AP, then in S408, it is not necessary to call an API for acquiring information about the network to which the terminal device 101 is currently connected via Wi-Fi. The information acquired by the API call in S401 may be used in the following processing. Furthermore, in S408, the CPU 103 further acquires information that can be acquired even if the use of location information services is not permitted for a specific application. Specifically, the CPU 103 acquires information about the Wi-Fi connection (wireless LAN connection) of the terminal device 101 and information about the wired LAN connection of the terminal device 101, as information that can be acquired even if the use of location information services is not permitted for a specific application. Specifically, the information about the Wi-Fi connection of the terminal device 101 and the information about the wired LAN connection of the terminal device 101 include, for example, information indicating whether IPv4 or IPv6 is enabled, an IP address, a MAC address, and information indicating the channel used for the connection. Note that if the terminal device 101 has not established a Wi-Fi connection, information about the Wi-Fi connection of the terminal device 101 is not acquired, and if the terminal device 101 has not established a wired LAN connection, information about the wired LAN connection of the terminal device 101 is not acquired. Therefore, whether or not information can be acquired in this process determines which network the terminal device 101 is connected to. Furthermore, if information about the network to which the terminal device 101 is currently connected via Wi-Fi can be acquired by calling a predetermined API, acquisition of a wireless profile corresponding to the network to which the terminal device 101 is currently connected via Wi-Fi may be executed. The wireless profile is information managed by the OS and is information about networks to which the terminal device 101 has previously connected. The wireless profile includes a password for connecting to the network. Therefore, by acquiring the wireless profile, the CPU 103 can identify the password of the network to which the terminal device 101 is currently connected via Wi-Fi without having to receive input of the password from the user on a predetermined app.
[0080] The process of acquiring a wireless profile including a password is an administrator-privilege process. The administrator-privilege process is a process that can be executed when permission from the user is obtained and privilege elevation processing is performed on an application. In this embodiment, a process that allows an application to execute an administrator-privilege process is called a privilege elevation process. Permission from the user is obtained, for example, when the user performs an input operation indicating permission to execute the administrator-privilege process on a screen displayed by a User Account Control (hereinafter, UAC) function. If the user account logged in to the terminal device 101 is an administrator account, the input operation can be executed without entering a password on the screen displayed by the UAC function. If the user account logged in to the terminal device 101 is not an administrator account, the input operation can be executed by entering the password of the administrator account on the screen displayed by the UAC function. In this embodiment, the predetermined application is a desktop application. Therefore, if privilege elevation processing is performed on the predetermined application, the predetermined application can acquire a wireless profile including a password. Therefore, in this embodiment, it is assumed that privilege elevation processing is performed on the predetermined application in advance to acquire a wireless profile including a password. If privilege elevation processing has not been performed for a predetermined application, a screen for executing privilege elevation processing may be displayed by the UAC function. Furthermore, if the privilege elevation processing is not performed because permission from the user has not been obtained even though the screen is displayed, and a password is not acquired by the predetermined application through execution of a predetermined API, the CPU 103 may cause the predetermined application to display an input screen for accepting input of a password. Then, in the connection setup processing, the password entered on the input screen may be used instead of the password acquired through execution of the predetermined API.
[0081] Furthermore, in S408, the CPU 103 may acquire not only the wireless profile corresponding to the network to which the terminal device 101 is currently connected via Wi-Fi, but also other wireless profiles. Specifically, for example, the CPU 103 may acquire wireless profiles corresponding to each wireless network included in a list of wireless networks accessible to the terminal device 101, which is indicated by information acquired from the OS by calling the first API or the second API.
[0082] Furthermore, the method of acquiring a wireless profile is not limited to the above-described method. For example, the CPU 103 may request all wireless profiles managed and stored by the terminal device 101 from the OS. Then, from the multiple wireless profiles thus obtained, the CPU 103 may identify a wireless profile corresponding to the network to which the terminal device 101 is currently connected via Wi-Fi. Similarly, from the multiple wireless profiles thus obtained, the CPU 103 may identify a wireless profile corresponding to each wireless network included in a list of wireless networks accessible by the terminal device 101.
[0083] Furthermore, the information acquired in S408 is not limited to the above-described form. Only one of the above-described pieces of information may be acquired, or other information may be acquired. Specifically, for example, a wireless profile may not be acquired, or an SSID included in the wireless profile may be acquired but a password may not be acquired. Therefore, for example, the API called in S401 may be different from the API called in S408, and thus the information acquired in S401 may be different from the information acquired in S408.
[0084] In S409, the CPU 103 searches for a communication device 151 corresponding to a predetermined application on the network to which the terminal device 101 is connected, which was identified in S408. The communication device 151 corresponding to the predetermined application is, for example, a communication device 151 provided by the same vendor as the vendor of the predetermined application. The CPU 103 then displays a selection screen for selecting one of one or more communication devices 151 found by this search. The selection screen 510 shown in FIG. 5 is an example of the selection screen displayed in S409. The selection screen 510 includes an area 511 that indicates one or more communication devices 151 found by the search. The area 511 may also display information indicating one or more communication devices 151 to which the terminal device 101 has previously connected, but that were not found by the search. Specific examples of the information displayed in the area 511 include the product name, part of the serial number, IP address, and MAC address of the communication device 151. By operating area 511, the user selects one of the communication devices 151 from one or more communication devices 151 discovered by the search, or one or more communication devices 151 to which the terminal device 101 has previously connected that were not discovered by the search. The selection screen 510 also includes area 512, which the user operates when the communication device 151 that the user desires to repair is not among the one or more communication devices 151 displayed in area 511. When any of the communication devices 151 is selected by operating area 511, or when area 512 is selected, area 513 is enabled and becomes capable of accepting user operations. When area 513 is operated, the CPU 103 proceeds to S410.
[0085] In S410, the CPU 103 determines whether or not a communication device 151 discovered on the network to which the terminal device 101 is connected has been selected on the selection screen 510. If a communication device 151 that was not discovered by the search but to which the terminal device 101 has previously connected is selected, or if the area 512 is selected, the result of this determination will be NO. If the CPU 103 determines YES, the process proceeds to S416, and if the CPU 103 determines NO, the process proceeds to S411.
[0086] In S411, the CPU 103 determines whether to execute connection setup processing. Specifically, in S411, the CPU 103 determines whether the terminal device 101 is currently connected to the network via a Wi-Fi connection. The CPU 103 also determines whether a function for using IPv4 is enabled in the terminal device 101. These determinations are made using the information acquired in S408. If both determination results are YES, this corresponds to a case where it is determined to execute connection setup processing. If at least one determination result is NO, this corresponds to a case where it is determined not to execute connection setup processing. If the CPU 103 determines YES, it proceeds to S413, and if the CPU 103 determines NO, it proceeds to S412.
[0087] In S412, CPU 103 displays a guide screen for manual connection as a process for manual connection. In this embodiment, manual connection refers to connection between communication device 151 and an access point without communication device 151 receiving setting information from terminal device 101. Specifically, in manual connection, communication device 151 searches for surrounding access points based on an operation on communication device 151, displays a list of discovered access points, and connects to an access point selected from the list. Guide screen 520 shown in FIG. 5 is an example of the guide screen displayed in S412. Guide screen 520 includes area 521, which is an area including a message indicating an operation method for executing manual connection with communication device 151. Guide screen 520 also includes area 522, which is a button for displaying a web page showing details of the operation method for executing manual connection with communication device 151. When area 522 is operated, CPU 103 starts a web browser and causes the web browser to display a web page showing details of the operation method for executing manual connection with communication device 151. Note that details of the operation method for executing a manual connection in communication device 151 may be displayed on a screen displayed by a predetermined application, such as guide screen 520, instead of on a web browser. If area 523 is operated, CPU 103 proceeds to S416.
[0088] In S413, CPU 103 displays a guide screen for operating communication device 151 in connection setting mode as a process for executing the connection setting process. Guide screen 530 shown in FIG. 5 is an example of the guide screen displayed in S413. Guide screen 530 includes area 531, which is an area including a message indicating an operation method for operating communication device 151 in the connection setting mode. Guide screen 530 may also include area 532, which is a button for displaying a guide screen related to manual connection. When area 532 is operated, CPU 103 proceeds to S412 and displays the guide screen related to manual connection.
[0089] In S414, the CPU 103 detects a communication device 151 that exists around the terminal device 101 and is operating in a connection setting mode. Specifically, in S414, the CPU 103 calls the fourth API to cause the OS to search for wireless networks accessible to the terminal device 101. Thereafter, the CPU 103 calls the first API to obtain, from the OS, information on a list of wireless networks accessible to the terminal device 101. The CPU 103 then detects a network formed by the communication device 151 operating in the connection setting mode from the list of wireless networks accessible to the terminal device 101. The network formed by the communication device 151 operating in the connection setting mode is, in other words, a network formed by an access point enabled by the communication device 151 operating in the connection setting mode. Note that the second API may be called instead of the first API. Note that, if any communication device 151 has been selected on the selection screen 510, the CPU 103 detects a communication device 151 that is operating in the connection setting mode and matches the communication device 151 selected on the selection screen 510. If the communication device 151 operating in the connection setting mode is successfully detected, the CPU 103 proceeds to step S415.
[0090] In S415, the CPU 103 executes a connection setting process for the communication device 151. Details of this process will be described later.
[0091] In S416, the CPU 103 searches for a communication device 151 on the network to which the terminal device 101 is currently connected. If any communication device 151 has been selected on the selection screen 510, the CPU 103 searches for a communication device 151 that matches the communication device 151 selected on the selection screen 510. If a connection setup process has been executed in S415, the CPU 103 searches for the communication device 151 that was the target of the connection setup process. If the communication device 151 does not exist on the network to which the terminal device 101 is currently connected, the communication device 151 will not be found by this search.
[0092] In S417, the CPU 103 determines whether or not the communication device 151 has been found by the search executed in S416. If the determination is YES, the CPU 103 proceeds to S419, and if the determination is NO, the CPU 103 proceeds to S418.
[0093] In S418, CPU 103 displays a failure screen indicating that connection to communication device 151 has failed as a diagnostic result. In other words, a failure in connection to communication device 151 means that communication with communication device 151 cannot be performed because communication device 151 was not found in the search executed in S416. The failure screen 540 shown in FIG. 5 is an example of the failure screen displayed in S418. The failure screen 540 includes an area 541 that displays a message indicating that connection to communication device 151 has failed. The failure screen 540 also includes an area 542 that is a button for checking the network status of communication device 151. When area 542 is operated, CPU 103 launches a web browser and causes the web browser to display a web page that provides details of a method for checking the network status of communication device 151. For example, the method for checking the network status of communication device 151 includes printing information indicating the network status of communication device 151. The web page may further provide a method for resolving network problems by referring to the printed information. Note that details of the method for checking the network status of communication device 151 may be displayed on a screen displayed by a predetermined application, such as failure screen 540, instead of on a web browser. When area 543 is operated, CPU 103 ends the processing of this flowchart.
[0094] In S419, CPU 103 determines whether the predetermined application is permitted to use location information services. This determination is made based on information stored in memory indicating the current settings regarding permission to use location information services for the predetermined application. That is, in this determination, a predetermined API is not called. If information indicating that the settings correspond to the setting that does not permit the predetermined application to use location information services is stored in memory in S407, the determination is NO. If the information is not stored in memory because S407 was not executed, the determination is YES. Note that this is not limited to this, and a predetermined API may be called as in S401, and a determination may be made based on the call result of the predetermined API as in S402. If the determination is YES in this determination, CPU 103 proceeds to S420, and if the determination is NO, CPU 103 proceeds to S421.
[0095] In S420, the CPU 103 acquires information about the radio wave state between the terminal device 101 and the access point to which the terminal device 101 is currently connected (radio wave state information of the terminal device 101). The radio wave state information of the terminal device 101 is also information that a predetermined application cannot acquire unless the application is permitted to use a location information service, and is information acquired by a predetermined API. The radio wave state information of the terminal device 101 includes, for example, information about the radio wave strength in communication between the terminal device 101 and the access point. Specifically, the information about the radio wave strength is information about the reception strength of radio waves received by the terminal device 101 from the access point. Note that in S420, the CPU 103 calls a first API to acquire, from the OS, information about the radio wave state between the terminal device 101 and each wireless network accessible by the terminal device 101. That is, the CPU 103 acquires multiple pieces of radio wave state information from the OS. The CPU 103 then realizes this processing by extracting, from the acquired multiple pieces of radio wave state information, the radio wave state information corresponding to the network to which the terminal device 101 is currently connected. Note that since the radio wave condition information of the terminal device 101 can also be acquired by the second API or the third API, these APIs may be called instead of the first API.
[0096] In S421, the CPU 103 acquires, from the communication device 151, information about the radio wave state between the communication device 151 and the access point to which the communication device 151 is currently connected (radio wave state information of the communication device 151). The radio wave state information of the communication device 151 includes, for example, information about the radio wave intensity in communication between the communication device 151 and the access point. Specifically, the information about the radio wave intensity is information about the reception intensity of radio waves received from the communication device 151 access point. The radio wave state information also includes, for example, information about noise radio waves around the communication device 151. Note that in this embodiment, the information about noise radio waves is assumed to be a signal-to-noise ratio (SNR) value measured by the communication device 151. Note that the radio wave state information of the communication device 151 is information acquired from the communication device 151 via communication with the communication device 151, and therefore a predetermined application can acquire the radio wave state information of the communication device 151 without calling a predetermined API.
[0097] In S422, the CPU 103 displays a diagnosis result screen based on the radio wave state information of the terminal device 101 and the radio wave state information of the communication device 151 acquired in S420 and S421. The diagnosis result screen 550 shown in FIG. 5 is an example of the diagnosis result screen displayed in S422. The diagnosis result screen 550 is a diagnosis result screen displayed when the radio wave strength in the communication between the terminal device 101 and the access point and the radio wave strength in the communication between the communication device 151 and the access point both exceed a threshold value, and the radio wave state of both the terminal device 101 and the communication device 151 is good. The diagnosis result screen 550 includes an area 551 that displays a message based on the radio wave state of both the terminal device 101 and the communication device 151. When the radio wave state of both the terminal device 101 and the communication device 151 is good, a message indicating that the terminal device 101 and the communication device 151 are able to communicate is displayed in the area 551. If either the radio wave strength in communication between the terminal device 101 and the access point or the radio wave strength in communication between the communication device 151 and the access point does not exceed the threshold, area 551 displays a message indicating that the terminal device 101 and the communication device 151 are not able to communicate or that the radio wave strength is weak. Furthermore, diagnosis result screen 550 includes button 552 for causing communication device 151 to execute a test print. When button 552 is operated, CPU 103 transmits a print job for causing communication device 151 to execute a test print, and causes communication device 151 to execute the test print. When area 553 is operated, CPU 103 ends the processing of this flowchart.
[0098] Fig. 7 is a flowchart showing an example of connection setting processing executed by the terminal device 101 using a predetermined application in this embodiment. Each process in the flowchart in Fig. 7 is realized, for example, by the CPU 103 expanding a predetermined application stored in a memory such as the ROM 104 into the RAM 105 and executing it. The flowchart in Fig. 7 is a flowchart showing the details of the connection setting processing executed in S415.
[0099] In S701, the CPU 103 disconnects the Wi-Fi connection between the terminal device 101 and the network, and establishes a Wi-Fi connection between the terminal device and the communication device 151 operating in the connection setting mode detected in S414.
[0100] In S702, the CPU 103 acquires from the communication device 151 a list of networks that have been discovered by a search executed by the communication device 151 and that the communication device 151 can access.
[0101] In S703, the CPU 103 determines whether the network to which the terminal device 101 was connected before connecting to the communication device 151 operating in the connection setting mode is included in the received list. The network to which the terminal device 101 was connected before connecting to the communication device 151 operating in the connection setting mode is the network to which the terminal device 101 was connected when an operation for network restoration was received from the user. Furthermore, since information about the network was acquired in S408, this determination is made based on the information acquired in S408. If this determination is YES, the CPU 103 proceeds to S707, and if this determination is NO, the CPU 103 proceeds to S704.
[0102] In S704, the CPU 103 displays the list received from the communication device 151 and accepts the user's selection of one of the networks from the list.
[0103] In S705, the CPU 103 uses a predetermined application to display an input screen for accepting input of a password for connecting to the network selected in S704. Note that if the password has been acquired by acquiring the wireless profile in S408, this process may be omitted.
[0104] In S706, CPU 103 transmits information for connecting to the network selected in S704 as infrastructure setting information. The infrastructure setting information transmitted here includes the password entered on the input screen displayed in S705 and information for identifying the network selected in S704 (such as an SSID). If a password has been acquired by acquiring a wireless profile in S408, the password acquired by acquiring the wireless profile may be included in the infrastructure setting information. The infrastructure setting information transmitted here may also include information indicating the authentication method, encryption method, and frequency band used by the network selected in S704. By transmitting the infrastructure setting information in S706, communication device 151 connects to the network selected in S704 using the infrastructure setting information. Thereafter, CPU 103 proceeds to S708.
[0105] In S707, the CPU 103 transmits, as infrastructure setting information, information for connecting to the network to which the terminal device 101 was connected before connecting to the communication device 151. The infrastructure setting information transmitted here includes the password acquired in S408 and information (such as an SSID) for identifying the network to which the terminal device 101 was connected before connecting to the communication device 151. Note that the infrastructure setting information transmitted here may also include information indicating the authentication method, encryption method, and frequency band used by the network to which the terminal device 101 was connected before connecting to the communication device 151. By transmitting the infrastructure setting information in S707, the communication device 151 uses the infrastructure setting information to connect to the network to which the terminal device 101 was connected before connecting to the communication device 151.
[0106] In S708, the CPU 103 disconnects the Wi-Fi connection between the terminal device 101 and the communication device 151. When the Wi-Fi connection is disconnected, a reconnection function provided in the OS of the terminal device 101 attempts to establish a connection between the terminal device 101 and a network that can be connected using a wireless profile held by the terminal device 101. Here, it is assumed that the reconnection function attempts to establish a connection between the terminal device 101 and the network to which the terminal device 101 was connected before connecting with the communication device 151. As a result, the terminal device 101 reconnects to the network to which the terminal device 101 was connected before connecting with the communication device 151. Note that the establishment of a connection between the terminal device 101 and the network to which the terminal device 101 was connected before connecting with the communication device 151 may be executed by a predetermined application instructing the OS, rather than by the reconnection function provided in the OS of the terminal device 101. Thereafter, the CPU 103 ends the processing of this flowchart and proceeds to S416.
[0107] By adopting such a configuration, it is possible to appropriately determine whether a predetermined application is permitted to use the location information service, and to appropriately execute processing according to the determination result of whether the predetermined application is permitted to use the location information service.
[0108] In the above description, the guide screen 500 is displayed by a predetermined app based on notification of a predetermined error resulting from execution of a predetermined API. However, the predetermined app may also display the guide screen 500 based on other factors. Specifically, for example, the predetermined app may display the guide screen 500 based on selection of a predetermined menu from among menus displayed when a "Help" tab displayed by the predetermined app is operated. Note that the predetermined app does not execute a predetermined API based on selection of a predetermined menu. In other words, when a predetermined menu is selected, the guide screen 500 is displayed by the predetermined app regardless of notification of a predetermined error resulting from execution of the predetermined API. However, the present invention is not limited to this. The predetermined app may execute a predetermined API when a predetermined menu is selected, and display the guide screen 500 based on notification of a predetermined error resulting from execution of the predetermined API.
[0109] In the above description, the predetermined application is an application for network repair, but the present invention is not limited to this. The predetermined application may be an application for connection setting processing that does not execute network repair processing such as processing for displaying a diagnostic result screen, but executes connection setting processing. The predetermined application may have other functions in addition to connection setting processing. Specific examples of other functions include a function for sending a print job to cause communication device 151 to execute printing (print job sending function) and a function for sending a scan job to cause communication device 151 to execute scanning (scan job sending function).
[0110] Second Embodiment In the above description, the predetermined application is a desktop application, but the present invention is not limited to this, and the predetermined application may be a UWP application. In this embodiment, the predetermined application is a UWP application.
[0111] UWP applications are limited in that they cannot execute processes requiring administrator privileges. Therefore, in this embodiment, the terminal device 101 has a UWP application, which is a predetermined application, and a desktop application, which is a different application, and executes processes using these applications in cooperation with each other. Hereinafter, the UWP application, which is the predetermined application, will be referred to as application A, and the desktop application, which is a different application, will be referred to as application B. In this embodiment, application A is installed on the terminal device 101 from an external device using a store function provided by the OS vendor, and application B is installed on the terminal device 101 from an external device using a web page provided by the application B vendor. Furthermore, application B can be downloaded and installed on the terminal device 101 in response to an instruction from application A.
[0112] Fig. 8 is a flowchart showing an example of processing executed by a predetermined application by the terminal device 101 in this embodiment. Each process in the flowchart in Fig. 8 is realized, for example, by the CPU 103 expanding a predetermined application stored in a memory such as the ROM 104 into the RAM 105 and executing it. Note that the flowchart in Fig. 8 is started when an operation for connection setting processing is accepted from the user on a screen displayed by application A. Note that the flowchart in Fig. 8 may also be started in response to the launch of application A.
[0113] In S801, the CPU 103 determines whether the OS running on the terminal device 101 is an S-mode OS. The S-mode is a mode that restricts some functions to enhance the security of the terminal device 101, and on an S-mode OS, it is possible to run a UWP app but not a desktop app. In other words, if the OS running on the terminal device 101 is an S-mode OS, it is possible to run app A but not app B. If the determination is YES in this determination, the CPU 103 proceeds to S806, and proceeds to a flow in which various processes (S802, S803, S811) for running app B are not executed. On the other hand, if the determination is NO, the CPU 103 proceeds to S802.
[0114] In step S802, the CPU 103 downloads and installs the application B in response to an instruction from the application A.
[0115] In S803, the CPU 103 attempts to launch application B. When the launch of application B is attempted, a screen for privilege promotion processing is displayed by the OS using the UAC function. At this time, as described above, if the user account currently logged in to the terminal device 101 is an administrator account, password entry is not required as an operation for privilege promotion processing. However, if the user account currently logged in to the terminal device 101 is not an administrator account, password entry is required as an operation for privilege promotion processing. If the password entered for the privilege promotion processing on the screen for privilege promotion processing is incorrect, an error is notified and the user is requested to enter the password again. Furthermore, if an operation is performed on the screen for privilege promotion processing indicating that application B is not permitted to execute the administrator privilege processing, application B is not launched. Furthermore, if an operation is performed on the screen for privilege promotion processing indicating that application B is permitted to execute the administrator privilege processing, or if the password entered for the privilege promotion processing is correct, application B is launched.
[0116] In S804, the CPU 103 identifies the type of the user account currently logged in to the terminal device 101, and determines whether the identified account is an administrator account (standard user account). If the determination is YES, the CPU 103 proceeds to S810, and if the determination is NO, the CPU 103 proceeds to S805.
[0117] In S805, the CPU 103 determines whether or not the application B has been launched by the processing of S803. If the determination is YES, the CPU 103 proceeds to S812, and if the determination is NO, the CPU 103 proceeds to S806 without displaying a guidance screen that guides the user to permit the application B to execute the administrator privilege-requiring processing.
[0118] In S806, the CPU 103 calls a predetermined API by the application A. In this embodiment, the first API of the first to fourth APIs is called in S806, but this is not limited to this. Any predetermined API may be called, and specifically, for example, the third API may be called. The process executed by the OS when the predetermined API is called is as described in the explanation of S401. In this process, the predetermined API is called by the application A, and therefore the content notified by the OS will differ depending on whether the application A is permitted to use the location information service.
[0119] In S807, CPU 103 determines whether application A is permitted to use the location information service. This process is the same as S402. That is, CPU 103 determines whether a code corresponding to successful access to information by a predetermined API has been notified as a result of calling the predetermined API. If the determination is YES, CPU 103 proceeds to S818, and if the determination is NO, CPU 103 proceeds to S808.
[0120] In S808, the CPU 103 identifies the type of user account currently logged in to the terminal device 101, and determines whether the identified account is an administrator account (standard user account). This process is the same as S804. If the determination is YES, the CPU 103 proceeds to S809, and if the determination is NO, the CPU 103 proceeds to S817.
[0121] In S809, the CPU 103 displays a guide screen for prompting the user to permit application A to use the location information service. A guide screen 1010 shown in FIG. 10 is an example of the guide screen displayed in S809. The guide screen 1010 includes an area 1011 for displaying a message for prompting the user to permit application A to use the location information service and a message indicating an operation for permitting application A to use the location information service. The guide screen 1010 may also include a message indicating information that application A acquires as information related to the location information service. That is, in this embodiment, for example, the guide screen 1010 may include a message indicating that application A acquires information related to an AP (Wi-Fi router) as information related to the location information service. The guide screen 1010 also includes a button 1012 for displaying the setting screen 300. The button 1012 is similar to the button 502. Even when the button 1012 is operated to display the setting screen 300, the display of the guide screen 1010 is maintained. Therefore, after the user permits a predetermined application to use the location information service on the setting screen 300, the user can operate the button 1013 included in the guidance screen 1010. When the button 1013 is operated, the CPU 103 proceeds to S818.
[0122] In S810, the CPU 103 determines whether or not the application B has been launched by the processing of S803. This processing is the same as S805. If the determination is YES, the CPU 103 proceeds to S812, and if the determination is NO, the CPU 103 proceeds to S811.
[0123] In S811, the CPU 103 displays a guidance screen that guides the user to permit application B to execute the administrator privilege-required process. Note that the guidance screen is not displayed when the determination result in S805 is NO, and is displayed when the determination result in S810 is NO, because the administrator account can easily permit application B to execute the administrator privilege-required process without entering a password. Thereafter, the CPU 103 proceeds to S803.
[0124] In S812, the CPU 103 calls a predetermined API by the application A. This processing is the same as S806.
[0125] In S813, the CPU 103 instructs the application A to call a predetermined API. When the instruction is issued, the CPU 103 causes the application B to call the predetermined API. Note that the processing executed by the OS when the predetermined API is called is as described in the explanation of S401. In this processing, the predetermined API is called by the application B, and therefore the content of the notification from the OS differs depending on whether the application B is permitted to use the location information service. When the application B receives the notification, it transmits the received notification content to the application A. By recognizing the notification content, the application A can determine whether the application B is permitted to use the location information service. In the present embodiment, in S813, the call of the first API of the first to fourth APIs is instructed, but this is not limited to this. The call of any predetermined API may be instructed, and specifically, for example, the call of the third API may be instructed.
[0126] In S814, the CPU 103 determines whether both the application A and the application B are permitted to use the location information service. The determination of whether the application A is permitted to use the location information service is the same as in S402. That is, the CPU 103 determines whether a code corresponding to successful access to information via a predetermined API has been notified as a result of calling the predetermined API. The determination of whether the application B is permitted to use the location information service is executed by determining whether the content of the notification received by the application B from the OS is a code corresponding to successful access to information via the predetermined API. If the determination is YES because both the application A and the application B are permitted to use the location information service, the CPU 103 proceeds to S818. On the other hand, if the determination is NO because at least one of the application A and the application B is not permitted to use the location information service, the CPU 103 proceeds to S815.
[0127] In S815, the CPU 103 identifies the type of the user account currently logged in to the terminal device 101, and determines whether the identified account is an administrator account (standard user account). This process is the same as S804. If the determination is YES, the CPU 103 proceeds to S816, and if the determination is NO, the CPU 103 proceeds to S817.
[0128] In S816, the CPU 103 displays a guide screen for prompting the user to permit application A and application B to use the location information service. Guide screen 1000 shown in FIG. 10 is an example of the guide screen displayed in S816. Guide screen 1000 is a screen for permitting application A as well as application B to use the location information service. Therefore, the display content of guide screen 1000 is partially different from that of guide screen 1010, which is a screen for permitting application A to use the location information service. Guide screen 1000 includes an area 1001 for displaying a message for prompting the user to permit application A and application B to use the location information service and a message indicating an operation for permitting application A and application B to use the location information service. Furthermore, guide screen 1000 may include a message indicating information that application A and application B acquire as information related to the location information service. That is, in this embodiment, for example, the guide screen 1000 may include a message indicating that application A and application B acquire information related to an AP (Wi-Fi router) as information related to the location information service. The guidance screen 1000 also includes a button 1012 for displaying the setting screen 300. The button 1002 is similar to the button 502. Even if the setting screen 300 is displayed by operating the button 1002, the display of the guidance screen 1000 is maintained. Therefore, after the user permits a predetermined application on the setting screen 300 to use the location information service, the user can operate the button 1003 included in the guidance screen 1000. When the button 1003 is operated, the CPU 103 proceeds to S818.
[0129] In S817, CPU 103 saves in memory the current settings regarding permission to use location information services for application A and application B. That is, CPU 103 saves in memory information indicating that the settings correspond to a situation in which application A and application B are not permitted to use location information services. CPU 103 then proceeds to S818. Note that S817 may not be executed. That is, application A may not manage the current settings regarding permission to use location information services for application A and application B.
[0130] In S818, the CPU 103 acquires information about the network to which the terminal device 101 is currently connected via Wi-Fi. Specifically, in S818, the CPU 103 calls a third API by application A. If application A is permitted to use the location information service, the call of this API successfully acquires information about the network to which the terminal device 101 is currently connected via Wi-Fi. Therefore, the network to which the terminal device 101 is currently connected via Wi-Fi is, in other words, the network to which the terminal device 101 is connected via Wi-Fi when the third API is called. If application A is not permitted to use the location information service, even if this API is called, acquisition of information about the network to which the terminal device 101 is currently connected via Wi-Fi fails. Note that if the terminal device 101 is not currently connected to any network via Wi-Fi, the call of the API is successful, but information about the network to which the terminal device 101 is currently connected via Wi-Fi is not acquired. If the acquisition of information about the AP by calling the API in S806 or S812 is successful, the API for acquiring information about the network to which the terminal device 101 is currently connected via Wi-Fi does not need to be called in S818. The information acquired by calling the API in S806 or S812 may be used in the following processing. The call to the third API may be executed by application B instead of application A. Application A may acquire from application B the information acquired by application B by calling the third API.
[0131] Furthermore, in S818, the CPU 103 detects (discovers) a communication device 151 that exists around the terminal device 101 and is operating in connection setting mode. Specifically, in S818, the CPU 103 causes the OS to search for wireless networks accessible to the terminal device 101 by calling the fourth API through application A. Thereafter, the CPU 103 causes application A to call the first API to obtain, from the OS, information on a list of wireless networks accessible to the terminal device 101. The CPU 103 then detects an access point formed by the communication device 151 operating in connection setting mode from the list of wireless networks accessible to the terminal device 101. Note that the second API may be called instead of the first API. Furthermore, the call to the first API or the second API may be executed by application B instead of application A. Then, application A may obtain, from application B, the information obtained by application B by calling the first API or the second API.
[0132] Furthermore, in S818, the CPU 103 acquires a wireless profile corresponding to the network to which the terminal device 101 is currently connected via Wi-Fi. Specifically, in S818, if the CPU 103 determines that application B is running, application A instructs application B to acquire a wireless profile corresponding to the network to which the terminal device 101 is currently connected via Wi-Fi. Upon receiving the instruction, application B first calls a third API to acquire identification information of the network to which the terminal device 101 is currently connected via Wi-Fi. Application B then acquires, from the OS, a wireless profile corresponding to the network to which the terminal device 101 is currently connected via Wi-Fi, by requesting a wireless profile from the OS while specifying the acquired identification information. Note that the process of acquiring a wireless profile including a password is a process requiring administrator privileges. Furthermore, when application B is running, application B is permitted to execute a process requiring administrator privileges. Therefore, the wireless profile acquired by application B here is a wireless profile including a password. Application B then transmits the acquired wireless profiles to application A. As a result, application A acquires each wireless profile. If app B is not permitted to use the location information service, app B cannot obtain identification information even when it calls the third API. As a result, acquisition of a wireless profile specifying identification information cannot be executed, and both app A and app B fail to obtain a wireless profile. This is not limited to the above. If CPU 103 determines that app B is not permitted to use the location information service, app A may call the third API and obtain identification information through app A. Then, app A may request a wireless profile from the OS while specifying the obtained identification information, thereby obtaining from the OS a wireless profile corresponding to the network to which terminal device 101 is currently connected via Wi-Fi. Furthermore, in step S818, even if CPU 103 determines that app B is not running, CPU 103 may call the third API through app A and obtain identification information through app A.Then, application A requests a wireless profile from the OS while specifying the acquired identification information, thereby acquiring from the OS a wireless profile corresponding to the network to which the terminal device 101 is currently connected via Wi-Fi. However, because application A cannot execute processes requiring administrator privileges, the wireless profile acquired by application A does not include a password. In this case, the CPU 103 may display an input screen for accepting password input using a predetermined application. Then, in the connection setting process, the password entered on the input screen may be used instead of the password acquired by executing a predetermined API. Furthermore, if application A is not permitted to use location information services, application A cannot acquire identification information even when calling the third API. As a result, application A cannot acquire a wireless profile specifying identification information, and both application A and application B fail to acquire a wireless profile.
[0133] In step S818, the CPU 103 may acquire not only the wireless profile corresponding to the network to which the terminal device 101 is currently connected via Wi-Fi, but also other wireless profiles. Specifically, for example, the CPU 103 may acquire wireless profiles corresponding to each wireless network included in a list of wireless networks accessible by the terminal device 101, which is indicated by information acquired from the OS by calling the first API or the second API.
[0134] Furthermore, the method of acquiring a wireless profile is not limited to the above-described method. For example, the CPU 103 may request all wireless profiles managed and stored by the terminal device 101 from the OS. Then, from the multiple wireless profiles thus obtained, the CPU 103 may identify a wireless profile corresponding to the network to which the terminal device 101 is currently connected via Wi-Fi. Similarly, from the multiple wireless profiles thus obtained, the CPU 103 may identify a wireless profile corresponding to each wireless network included in a list of wireless networks accessible by the terminal device 101.
[0135] Furthermore, in S818, the CPU 103 further acquires information that can be acquired even if application A and application B are not permitted to use the location information service. Specifically, the CPU 103 acquires information about the Wi-Fi connection (wireless LAN connection) of the terminal device 101 and information about the wired LAN connection of the terminal device 101, as information that can be acquired even if application A and application B are not permitted to use the location information service. Specific examples of the information about the Wi-Fi connection of the terminal device 101 and the information about the wired LAN connection of the terminal device 101 include information indicating whether IPv4 or IPv6 is enabled, an IP address, a MAC address, and information indicating the channel used for the connection. Note that if the terminal device 101 has not established a Wi-Fi connection, information about the Wi-Fi connection of the terminal device 101 is not acquired, and if the terminal device 101 has not established a wired LAN connection, information about the wired LAN connection of the terminal device 101 is not acquired. Therefore, depending on whether or not information has been acquired in this process, it is possible to identify which network the terminal device 101 is connected to.
[0136] In step S818, the CPU 103 searches for a communication device 151 that corresponds to the predetermined application on the network to which the terminal device 101 is connected. The communication device 151 that corresponds to the predetermined application is, for example, a communication device 151 provided by the same vendor as the vendor of the predetermined application.
[0137] Furthermore, the information acquired in S818 is not limited to the above-described form. Only one of the above-described pieces of information may be acquired, or other information may be acquired. Specifically, for example, a wireless profile may not be acquired, or an SSID included in the wireless profile may be acquired but a password may not be acquired. Therefore, for example, the API called in S812 or S813 may be different from the API called in S818, and thus the information acquired in S812 or S813 may be different from the information acquired in S818.
[0138] Thereafter, the CPU 103 ends the processing of this flowchart and starts the processing of the flowchart shown in FIG.
[0139] Fig. 9 is a flowchart showing an example of processing executed by a predetermined application by the terminal device 101 in this embodiment. Each process in the flowchart in Fig. 9 is realized, for example, by the CPU 103 expanding a predetermined application stored in a memory such as the ROM 104 into the RAM 105 and executing it. Note that the flowchart in Fig. 9 starts when the processing in the flowchart in Fig. 8 has ended.
[0140] In S901, the CPU 103 determines whether or not a communication device 151 operating in the connection setting mode has been found by the processing of S818. If the determination is YES, the CPU 103 proceeds to S905, and if the determination is NO, the CPU 103 proceeds to S902.
[0141] In S902, the CPU 103 displays a selection screen for selecting one or more communication devices 151. This process is similar to S409. Note that the search for a communication device 151 corresponding to a predetermined application on the network to which the terminal device 101 is connected is executed in S818.
[0142] In S903, the CPU 103 determines whether or not a communication device 151 discovered on the network to which the terminal device 101 is connected has been selected on the selection screen 510. This processing is the same as S410. If the CPU 103 determines YES, the processing proceeds to S904, and if the CPU 103 determines NO, the processing proceeds to S906.
[0143] In S904, the CPU 103 executes various setting processes for communicating with the communication device 151 selected on the selection screen 510. Specifically, for example, the CPU 103 executes a process for installing a printer driver corresponding to the communication device 151 into the terminal device 101. Thereafter, the CPU 103 ends the processing of this flowchart.
[0144] In S905, which is executed if the determination in S901 is YES, the CPU 103 determines whether to execute connection setup processing. Specifically, in S905, the CPU 103 determines whether the terminal device 101 is currently connected to a network via a Wi-Fi connection. The CPU 103 also determines whether a function for using IPv4 is enabled in the terminal device 101. The CPU 103 also determines whether a wireless profile corresponding to the network to which the terminal device 101 is currently connected via a Wi-Fi connection has been acquired. These determinations are made using the information acquired in S818. A case in which all determination results are YES corresponds to a case in which it is determined to execute connection setup processing. A case in which at least one determination result is NO corresponds to a case in which it is determined not to execute connection setup processing. If the CPU 103 determines YES, the process proceeds to S926; if the CPU 103 determines NO, the process proceeds to S906.
[0145] In S906, the CPU 103 displays an interface selection screen for receiving from the user the selection of an interface to be used for connection between the terminal device 101 and the communication device 151. In this embodiment, the interface selection screen allows the user to select an interface corresponding to a wireless LAN, an interface corresponding to a wired LAN, or an interface corresponding to a USB. In other words, the interface selection screen is a screen for selecting a method of connection between the terminal device 101 and the communication device 151, and allows the user to select any one of wireless LAN, wired LAN, and USB as the connection method.
[0146] In S907, CPU 103 determines whether an interface corresponding to a wireless LAN has been selected on the interface selection screen. If CPU 103 determines YES, it proceeds to S909, and if CPU 103 determines NO, it proceeds to S908. Specifically, if the interface selected on the interface selection screen is an interface corresponding to a wired LAN or an interface corresponding to USB, for example.
[0147] In S908, which is executed if the determination in S907 is NO, the CPU 103 executes processing corresponding to the interface selected on the interface selection screen. Specifically, for example, the CPU 103 displays a screen prompting the user to establish a connection between the terminal device 101 and the communication device 151 using the interface selected on the interface selection screen. The CPU 103 also searches for the communication device 151 on the network to which the interface selected on the interface selection screen is connected. If the communication device 151 is found, the CPU 103 performs various settings so that communication with the communication device 151 is possible using the interface selected on the interface selection screen. Specifically, for example, the CPU 103 executes processing for installing a printer driver corresponding to the communication device 151 in the terminal device 101. The CPU 103 then terminates the processing of this flowchart.
[0148] In S909, which is executed if the determination in S907 is YES, the CPU 103 determines whether or not the application B has been launched by the processing in S803. This processing is the same as S805. If the determination in this step is YES, the CPU 103 proceeds to S915, and if the determination is NO, the CPU 103 proceeds to S910.
[0149] In S910, which is executed if the determination in S909 is NO, the CPU 103 calls a predetermined API by the application A. This processing is the same as S806.
[0150] In S911, the CPU 103 determines whether or not the use of the location information service is permitted for the application A. This process is the same as S807. If the determination is YES, the CPU 103 proceeds to S923, and if the determination is NO, the CPU 103 proceeds to S912.
[0151] In S912, which is executed if the determination in S910 is NO, the CPU 103 identifies the type of user account currently logged in to the terminal device 101, and determines whether the identified account is an administrator account (standard user account). This process is the same as S804. If the determination in this process is YES, the CPU 103 proceeds to S913, and if the determination is NO, the CPU 103 proceeds to S919.
[0152] In S913, which is executed if the determination in S912 is YES, the CPU 103 displays a guide screen for prompting the user to permit the use of the location information service for the application A. This processing is similar to S809. If the button 1013 is operated, the CPU 103 proceeds to S914.
[0153] In S914, CPU 103 again determines whether application A is permitted to use the location information service. This process is the same as S911. If the user permits application A to use the location information service as a result of the display of the guidance screen in S912, this determination is YES. If this determination is YES, CPU 103 proceeds to S923, and if this determination is NO, CPU 103 proceeds to S922.
[0154] In S915, which is executed if the determination in S909 is YES, the CPU 103 calls a predetermined API by the application A. This processing is the same as S806.
[0155] In S916, the CPU 103 instructs application A to call a predetermined API to application B. This processing is the same as S813.
[0156] In S917, the CPU 103 determines whether the use of the location information service is permitted for both the application A and the application B. This process is the same as S814. If the determination is YES, the CPU 103 proceeds to S923, and if the determination is NO, the CPU 103 proceeds to S918.
[0157] In S918, which is executed if the determination in S917 is NO, the CPU 103 identifies the type of user account currently logged in to the terminal device 101, and determines whether the identified account is an administrator account (standard user account). This process is the same as S804. If the determination in this process is YES, the CPU 103 proceeds to S920, and if the determination is NO, the CPU 103 proceeds to S919.
[0158] In S919, which is executed when the determination in S912 is NO or when the determination in S918 is NO, the CPU 103 saves in memory the current setting content regarding permission for use of location information services for application A and application B. That is, the CPU 103 saves in memory information indicating that the setting corresponds to a state in which application A and application B are not permitted to use location information services. Thereafter, the CPU 103 proceeds to S922. Note that S919 may not be executed. That is, application A may not manage the current setting content regarding permission for use of location information services for application A and application B. In this case, when the determination in S912 is NO or when the determination in S918 is NO, the CPU 103 proceeds to S922 without executing S919.
[0159] In S920, which is executed if the determination in S918 is YES, the CPU 103 displays a guide screen for prompting the user to permit the use of the location information service for the application A and the application B. This processing is similar to that in S816. If the button 1013 is operated, the CPU 103 proceeds to S921.
[0160] In S921, CPU 103 again determines whether both application A and application B are permitted to use the location information service. This process is the same as S917. If the user permits application A to use the location information service as a result of the display of the guidance screen in S912, this determination is YES. If this determination is YES, CPU 103 proceeds to S923, and if this determination is NO, CPU 103 proceeds to S922.
[0161] In S922, which is executed when the determination in S914 is NO or when the determination in S921 is NO, the CPU 103 displays a guide screen regarding manual connection as a process for manual connection. This process is the same as S412. Thereafter, the process of this flowchart ends.
[0162] As described above, S923 is executed when the determination in S911 is YES, when the determination in S914 is YES, when the determination in S917 is YES, or when the determination in S921 is YES. Then, in S923, CPU 103 displays a guide screen for operating communication device 151 in connection setting mode as a process for executing the connection setting process. This process is similar to S413. Note that the guide screen displayed in S923 may include a button for connecting communication device 151 to any network without executing the connection setting process. Then, CPU 103 may proceed to S922 when that button is operated.
[0163] In S924, the CPU 103 acquires information about the network to which the terminal device 101 is currently connected via Wi-Fi. This processing is the same as S818.
[0164] In S925, the CPU 103 determines whether or not a communication device 151 operating in the connection setting mode has been found by the processing of S924. This processing is the same as S901. If the determination is YES, the CPU 103 proceeds to S926, and if the determination is NO, the CPU 103 returns to S924 and continues searching for a communication device 151 operating in the connection setting mode.
[0165] At S926, CPU 103 executes a connection setup process for communication device 151. This process is the same as S415. Note that when S926 is executed after S925 is executed, the communication device 151 that is the target of the connection setup process, that is, the communication device 151 to which terminal device 101 is connected at S701, is assumed to be the communication device 151 that is operating in the connection setup mode discovered at S924. Also, when S926 is executed after a YES determination is made at S905, the communication device 151 that is the target of the connection setup process, that is, the communication device 151 to which terminal device 101 is connected at S701, is assumed to be the communication device 151 that is operating in the connection setup mode discovered at S818. Also, in the connection setup process executed at S926, the information that was described as the information acquired at S408 in the description of the flowchart of FIG. 7 is replaced by the information acquired at S818 or S924. Thereafter, CPU 103 ends the processing of this flowchart.
[0166] In this manner, it becomes possible for application A to determine whether application B is permitted to use the location information service. If it is determined that application B is not permitted to use the location information service, application A can execute processing to permit application B to use the location information service.
[0167] Although the above description has been given assuming that the predetermined app is a UWP app, the present invention is not limited to this. For example, the predetermined app may be configured by packaging a UWP app and a desktop app using a mechanism such as Desktop Bridge. The packaged desktop app is different from app B, and app B is installed on the terminal device 101 separately from the packaged desktop app. In this configuration, the predetermined app includes a module corresponding to the UWP app and a module corresponding to the desktop app. In this configuration, the processing in the flowcharts of FIGS. 8 and 9 may be implemented by a module corresponding to the desktop app among the modules included in the predetermined app. In other words, the processing described as processing performed by the predetermined app in the flowcharts of FIGS. 8 and 9 may be processing performed by a module corresponding to the desktop app within the predetermined app. Even if the OS running on the terminal device 101 is an S-mode OS, the module corresponding to the desktop app within the predetermined app can execute the processing.
[0168] <Other embodiments> In the above embodiment, the connection between the communication device 151 operating in the connection setting mode and the terminal device 101 is Wi-Fi. However, this is not limiting. The connection between the communication device 151 operating in the connection setting mode and the terminal device 101 may be established using a communication method other than Wi-Fi, such as Bluetooth Classic or Bluetooth Low Energy. In this configuration, the terminal device 101 may maintain a Wi-Fi connection with the AP even while establishing the connection between the communication device 151 operating in the connection setting mode and the terminal device 101. In this configuration, a predetermined API is not used in the process of searching for the communication device 151 operating in the connection setting mode, but a predetermined API is used in the process of obtaining information about the AP to which the terminal device 101 is connected. Therefore, a determination is made as to whether a predetermined app is permitted to use the location information service.
[0169] The object of the present invention can also be achieved by providing a system or device with a recording medium on which program code for software that realizes the functions of the above-described embodiments is recorded. That is, the object of the present invention can also be achieved by having a computer (or CPU or MPU) of the system or device read and execute the program code stored on the recording medium. In this case, the program code read from the recording medium itself realizes the functions of the above-described embodiments, and the recording medium on which the program code is stored constitutes the present invention.
[0170] 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.
[0171] It goes without saying that this also includes cases where the OS running on the computer performs some or all of the actual processing based on the instructions of the program code read by the computer, and the functions of the above-mentioned embodiments are realized through this processing.
[0172] The disclosure of this embodiment also includes the following configuration.
[0173] (Item 1) A predetermined application program, The computer of the information processing device, calling means for calling a predetermined API (Application Programming Interface) for obtaining predetermined information acquired by the information processing device through a wireless LAN (Local Area Network) function from an OS (Operating System) of the information processing device; a first determination means for determining whether or not the predetermined information has been successfully acquired by the predetermined application program in response to the call of the predetermined API; a first execution means that, when the acquisition of the predetermined information by the predetermined application program is successful, does not execute a predetermined process for making the user execute an operation to permit the predetermined application program to use a location information service, and, when the acquisition of the predetermined information by the predetermined application program is unsuccessful, executes the predetermined process; It functions as If the use of location information services is permitted for the predetermined application program, the predetermined information is successfully acquired by the predetermined application program by calling the predetermined API, If the predetermined application program is not permitted to use the location information service, even if the predetermined API is called, acquisition of the predetermined information by the predetermined application program fails. A program characterized by:
[0174] (Item 2) a second determination means for determining whether a user account logged in to the information processing device is an administrator account; It further functions as The predetermined process is executed when the acquisition of the predetermined information by the predetermined application program has failed and the user account logged in to the information processing device has been determined to be an administrator account. 2. The program according to item 1,
[0175] (Item 3) If it is determined that the user account logged in to the information processing device is not an administrator account, the predetermined process is not executed even if the predetermined application program is not permitted to use a location information service. 3. The program according to item 2,
[0176] (Item 4) a second execution means for executing a connection setting process for connecting a communication device external to the information processing device to any one of the networks using the predetermined information acquired by calling the predetermined API; To further function as 4. The program according to any one of items 1 to 3.
[0177] (Item 5) the predetermined information used in the connection setup process and acquired by calling the predetermined API includes information on a list of wireless networks accessible by the information processing device, the connection setup process includes a process of detecting a network formed by the communication device operating in a mode for the connection setup process from a list of wireless networks accessible to the information processing device, and a process of establishing a connection between the network formed by the communication device operating in a mode for the connection setup process and the information processing device, information for connecting the communication device to any one of the networks is transmitted to the communication device via a connection between the information processing device and a network formed by the communication device operating in the mode for the connection setup process; 5. The program according to item 4,
[0178] (Item 6) the predetermined information used in the connection setup process and acquired by calling the predetermined API includes information about a network to which the information processing device was connected via a wireless LAN when the predetermined API was called, the connection setting process includes a process of transmitting, to the communication device, information about the network to which the information processing device was connected via a wireless LAN when the predetermined API was called. 6. The program according to item 4 or 5,
[0179] (Item 7) The information regarding the network to which the information processing device was connected via wireless LAN when the predetermined API was called includes identification information and a password of the network to which the information processing device was connected via wireless LAN when the predetermined API was called. 7. The program according to item 6,
[0180] (Item 8) the predetermined information used in the connection setup process is acquired by the predetermined API that is called after it is determined whether acquisition of the predetermined information by the predetermined application program has been successful. 8. The program according to any one of items 4 to 7,
[0181] (Item 9) the predetermined API used to acquire the predetermined information used to determine whether acquisition of the predetermined information by the predetermined application program has been successful is different from the predetermined API used to acquire the predetermined information used in the connection setup process; 9. The program according to any one of items 4 to 8,
[0182] (Item 10) a display control means for executing a display process to display a screen relating to a radio wave status between the information processing device and an access point to which the information processing device is connected, using the predetermined information acquired by calling the predetermined API; and To further function as 10. The program according to any one of items 1 to 9,
[0183] (Item 11) the predetermined information used in the display process and acquired by calling the predetermined API includes information about a radio wave state between the information processing device and an access point to which the information processing device is connected; 11. The program according to item 10.
[0184] (Item 12) a receiving means for receiving, from a communication device external to the information processing device, information relating to a radio wave state between the communication device and an access point to which the communication device is connected, without calling the predetermined API; It further functions as information about a radio wave state between the communication device and the access point to which the communication device is connected is used to further display a screen about a radio wave state between the communication device and the access point to which the communication device is connected. 12. The program according to item 10 or 11,
[0185] (Item 13) an instruction means for instructing an application program other than the predetermined application program to call the predetermined API; a third determination means for determining whether or not the other application program has successfully acquired the predetermined information by calling the predetermined API; a third execution means that, when the acquisition of the predetermined information by the other application program is successful, does not execute a specific process for prompting a user to execute an operation for permitting the other application program to use a location information service, and, when the acquisition of the predetermined information by the other application program is unsuccessful, executes the specific process; It functions as If the use of location information services is permitted for the other application program, the other application program successfully obtains the predetermined information by calling the predetermined API, If the other application program is not permitted to use the location information service, even if the other application program calls the predetermined API, the other application program fails to acquire the predetermined information. 13. The program according to any one of items 1 to 12.
[0186] (Item 14) a fourth execution means for executing a connection setting process for connecting a communication device external to the information processing device to any one of the networks, using the predetermined information acquired by the predetermined application program calling the predetermined API and the predetermined information acquired by the other application program calling the predetermined API; 14. The program according to item 13, further functioning as
[0187] (Item 15) the predetermined information acquired by the other application program calling the predetermined API includes a password for any one of the networks; the connection setup process includes a process of transmitting information including a password for one of the networks to the communication device; 15. The program according to item 14,
[0188] (Item 16) The predetermined application program is a Universal Windows Platform (UWP) application program, and the other application program is a desktop application program. 16. The program according to any one of items 13 to 15.
[0189] (Item 17) The predetermined application program is an application program configured by packaging a UWP (Universal Windows Platform) application program and a desktop application program, and the other application program is a desktop application program. 16. The program according to any one of items 13 to 15.
[0190] (Item 18) the predetermined processing is processing for displaying a screen for prompting a user to perform an operation for permitting the predetermined application program to use a location information service, 18. The program according to any one of items 1 to 17,
[0191] (Item 19) a transmission means for transmitting a print job to a communication device external to the information processing device to cause the communication device to execute printing; 19. The program according to any one of items 1 to 18, further functioning as
[0192] (Item 20) 20. The program according to any one of items 1 to 19, wherein the OS of the information processing device is Windows (registered trademark) OS.
[0193] (Item 21) The program according to any one of items 1 to 20, wherein the predetermined API is an API compatible with the Windows (registered trademark) OS, and is one of WlanGetAvailableNetworkList, WlanGetAvailableBSSList, WlanQueryInterface, and WlanScan.
[0194] (Item 22) An information processing device having a predetermined application program, a calling means for calling a predetermined API for obtaining predetermined information acquired by the information processing device through a wireless LAN (Local Area Network) function from an OS (Operating System) of the information processing device; a first determination means for determining whether or not the predetermined information has been successfully acquired by the predetermined application program in response to the call of the predetermined API; a first execution means that, when the acquisition of the predetermined information by the predetermined application program is successful, does not execute a predetermined process for making the user execute an operation to permit the predetermined application program to use a location information service, and, when the acquisition of the predetermined information by the predetermined application program is unsuccessful, executes the predetermined process; and If the use of location information services is permitted for the predetermined application program, the predetermined information is successfully acquired by the predetermined application program by calling the predetermined API, If the predetermined application program is not permitted to use the location information service, even if the predetermined API is called, acquisition of the predetermined information by the predetermined application program fails. 1. An information processing device comprising:
[0195] (Item 23) A method for controlling an information processing device having a predetermined application program, comprising: a calling step of calling a predetermined API (Application Programming Interface) for obtaining predetermined information acquired by the information processing device through a wireless LAN (Local Area Network) function from an OS (Operating System) of the information processing device; a first determination step of determining whether or not the predetermined information has been successfully acquired by the predetermined application program by calling the predetermined API; a first execution step of not executing a predetermined process for prompting a user to execute an operation for permitting the predetermined application program to use a location information service when the predetermined application program has successfully acquired the predetermined information, and executing the predetermined process when the predetermined application program has failed to acquire the predetermined information; and If the use of location information services is permitted for the predetermined application program, the predetermined information is successfully acquired by the predetermined application program by calling the predetermined API, If the predetermined application program is not permitted to use the location information service, even if the predetermined API is called, acquisition of the predetermined information by the predetermined application program fails. A control method comprising: [Explanation of symbols]
[0196] 101 Terminal equipment 151 Communication equipment
Claims
1. A predetermined application program, The computer of the information processing device, calling means for calling a predetermined API (Application Programming Interface) for obtaining predetermined information acquired by the information processing device through a wireless LAN (Local Area Network) function from an OS (Operating System) of the information processing device; a first determination means for determining whether or not the predetermined information has been successfully acquired by the predetermined application program by calling the predetermined API; a first execution means that, when the acquisition of the predetermined information by the predetermined application program is successful, does not execute a predetermined process for making the user execute an operation to permit the predetermined application program to use a location information service, and, when the acquisition of the predetermined information by the predetermined application program is unsuccessful, executes the predetermined process; It functions as If the use of location information services is permitted for the predetermined application program, the predetermined information is successfully acquired by the predetermined application program by calling the predetermined API, If the predetermined application program is not permitted to use the location information service, even if the predetermined API is called, acquisition of the predetermined information by the predetermined application program fails. A program characterized by:
2. a second determination means for determining whether a user account logged in to the information processing device is an administrator account; It further functions as The predetermined process is executed when the acquisition of the predetermined information by the predetermined application program has failed and the user account logged in to the information processing device has been determined to be an administrator account.
2. The program according to claim 1 .
3. If it is determined that the user account logged in to the information processing device is not an administrator account, the predetermined process is not executed even if the predetermined application program is not permitted to use a location information service.
3. The program according to claim 2.
4. a second execution means for executing a connection setting process for connecting a communication device external to the information processing device to any one of the networks, using the predetermined information acquired by calling the predetermined API; To further function as 2. The program according to claim 1 .
5. the predetermined information used in the connection setup process and acquired by calling the predetermined API includes information on a list of wireless networks accessible by the information processing device, the connection setup process includes a process of detecting a network formed by the communication device operating in a mode for the connection setup process from a list of wireless networks accessible to the information processing device, and a process of establishing a connection between the network formed by the communication device operating in a mode for the connection setup process and the information processing device, information for connecting the communication device to any one of the networks is transmitted to the communication device via a connection between the information processing device and a network formed by the communication device operating in the mode for the connection setup process; 5. The program according to claim 4.
6. the predetermined information used in the connection setup process and acquired by calling the predetermined API includes information about a network to which the information processing device was connected via a wireless LAN when the predetermined API was called, the connection setting process includes a process of transmitting, to the communication device, information about the network to which the information processing device was connected via a wireless LAN when the predetermined API was called.
5. The program according to claim 4.
7. the information about the network to which the information processing device was connected via a wireless LAN when the predetermined API was called includes identification information and a password of the network to which the information processing device was connected via a wireless LAN when the predetermined API was called; 7. The program according to claim 6.
8. the predetermined information used in the connection setup process is acquired by the predetermined API that is called after it is determined whether acquisition of the predetermined information by the predetermined application program has been successful.
5. The program according to claim 4.
9. the predetermined API used to acquire the predetermined information used to determine whether acquisition of the predetermined information by the predetermined application program has been successful is different from the predetermined API used to acquire the predetermined information used in the connection setup process; 5. The program according to claim 4.
10. a display control means for executing a display process to display a screen relating to a radio wave status between the information processing device and an access point to which the information processing device is connected, using the predetermined information acquired by calling the predetermined API; To further function as 2. The program according to claim 1 .
11. the predetermined information used in the display process and acquired by calling the predetermined API includes information about a radio wave state between the information processing device and an access point to which the information processing device is connected; The program according to claim 10 .
12. a receiving means for receiving, from a communication device external to the information processing device, information relating to a radio wave state between the communication device and an access point to which the communication device is connected, without calling the predetermined API; It further functions as information about a radio wave state between the communication device and the access point to which the communication device is connected is used to further display a screen about a radio wave state between the communication device and the access point to which the communication device is connected. The program according to claim 10 .
13. an instruction means for instructing an application program other than the predetermined application program to call the predetermined API; a third determination means for determining whether or not the other application program has successfully acquired the predetermined information by calling the predetermined API; a third execution means that, when the acquisition of the predetermined information by the other application program is successful, does not execute a specific process for prompting a user to execute an operation for permitting the other application program to use a location information service, and executes the specific process when the acquisition of the predetermined information by the other application program is unsuccessful; It functions as If the use of location information services is permitted for the other application program, the other application program successfully obtains the predetermined information by calling the predetermined API, If the other application program is not permitted to use the location information service, even if the other application program calls the predetermined API, acquisition of the predetermined information by the other application program fails.
2. The program according to claim 1 .
14. a fourth execution means for executing a connection setting process for connecting a communication device external to the information processing device to any one of the networks, using the predetermined information acquired by the predetermined application program calling the predetermined API and the predetermined information acquired by the other application program calling the predetermined API; 14. The program according to claim 13, further functioning as:
15. the predetermined information acquired by the invocation of the predetermined API by the other application program includes a password for any one of the networks; the connection setup process includes a process of transmitting information including a password for one of the networks to the communication device; 15. The program according to claim 14.
16. the predetermined application program is a UWP (Universal Windows Platform) application program, and the other application program is a desktop application program; 14. The program according to claim 13 .
17. the predetermined application program is an application program configured by packaging a UWP (Universal Windows Platform) application program and a desktop application program, and the other application program is a desktop application program; 14. The program according to claim 13 .
18. the predetermined processing is processing for displaying a screen for prompting a user to perform an operation for permitting the predetermined application program to use a location information service, 2. The program according to claim 1 .
19. a transmission means for transmitting a print job to a communication device external to the information processing device to cause the communication device to execute printing; 2. The program according to claim 1, further functioning as:
20. 2. The program according to claim 1, wherein the OS of the information processing device is Windows (registered trademark) OS.
21. 2. The program according to claim 1, wherein the predetermined API is an API compatible with Windows (registered trademark) OS, and is one of WlanGetAvailableNetworkList, WlanGetAvailableBSSList, WlanQueryInterface, and WlanScan.
22. An information processing device having a predetermined application program, a calling means for calling a predetermined API for obtaining predetermined information acquired by the information processing device through a wireless LAN (Local Area Network) function from an OS (Operating System) of the information processing device; a first determination means for determining whether or not the predetermined information has been successfully acquired by the predetermined application program by calling the predetermined API; a first execution means that, when the acquisition of the predetermined information by the predetermined application program is successful, does not execute a predetermined process for making the user execute an operation to permit the predetermined application program to use a location information service, and, when the acquisition of the predetermined information by the predetermined application program is unsuccessful, executes the predetermined process; and If the use of location information services is permitted for the predetermined application program, the predetermined information is successfully acquired by the predetermined application program by calling the predetermined API, If the predetermined application program is not permitted to use the location information service, even if the predetermined API is called, acquisition of the predetermined information by the predetermined application program fails.
1. An information processing device comprising:
23. A method for controlling an information processing device having a predetermined application program, comprising: a calling step of calling a predetermined API (Application Programming Interface) for acquiring predetermined information acquired by the information processing device through a wireless LAN (Local Area Network) function from an OS (Operating System) of the information processing device; a first determination step of determining whether or not the predetermined information has been successfully acquired by the predetermined application program by calling the predetermined API; a first execution step of not executing a predetermined process for prompting a user to execute an operation for permitting the predetermined application program to use a location information service based on a successful acquisition of the predetermined information by the predetermined application program, and executing the predetermined process based on a failure of the acquisition of the predetermined information by the predetermined application program; and If the use of location information services is permitted for the predetermined application program, the predetermined information is successfully acquired by the predetermined application program by calling the predetermined API, If the predetermined application program is not permitted to use the location information service, even if the predetermined API is called, acquisition of the predetermined information by the predetermined application program fails. A control method comprising:
Citation Information
Patent Citations
Information processing device, control method, and program
JP2016127545A