Continuous short-range wireless communication detection for user devices using background applications

By activating the continuous discovery mode on the mobile device, the device's short-range wireless communication components repeatedly transmit notifications, and by controlling the output components through the output flow, the problem of short-range wireless communication scanning being deactivated when the mobile device is running in the background is solved, realizing the continuous detection of the device and the stable operation of the application.

CN113676943BActive Publication Date: 2025-03-18ACCENTURE GLOBAL SOLUTIONS LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202110379034.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-08-03
Filing Date
2021-04-08
Publication Date
2025-03-18
Estimated Expiration
2041-04-08

AI Technical Summary

Technical Problem

In the prior art, when a mobile device is running in the background, short-range wireless communication scanning may be deactivated by the operating system, resulting in the device being unable to continuously transmit notifications, affecting the reliability of the device and the execution of the application.

Method used

By activating the continuous discovery mode on the mobile device, the device's short-range wireless communication components repeatedly transmit advertisements, and control the output components through output flow, preventing the operating system from pausing the application session in the background state.

Benefits of technology

It realizes that the mobile device continuously performs short-range wireless communication detection in the background state, prevents the device's operating system from pausing application sessions, and improves the device's reliability and application performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113676943B_ABST
    Figure CN113676943B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to persistent short-range wireless communication detection for a user device using a background application. A user device may receive an output stream associated with an application session, wherein the output stream is associated with non-perceptible content via an output component. The user device may transmit notifications associated with the application session via the short-range wireless communication component. The user device may configure a main processing thread associated with executing the application session to provide the output stream to the output component. The main processing thread may be configured to provide the output stream to: cause the output component to operate in association with the non-perceptible content, and prevent an operating system from pausing the application session when the application session is executing in a background state.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This patent application claims priority to U.S. Provisional Patent Application No. 63 / 024,843, entitled “BLUETOOTH CONTINUOUSBACKGROUND DISCOVERY FOR MOBILE DEVICES,” filed on May 14, 2020. The disclosure of that prior application is considered part of this patent application and is incorporated by reference into this patent application. Technical Field

[0003] Embodiments of the present disclosure relate to the field of wireless communications, and more particularly to short-range wireless communications for mobile devices. Background Art

[0004] Short-range wireless communication supports wireless communication over a relatively short distance (e.g., within 30 meters). Is a wireless technology standard for exchanging data over short distances using short-wavelength ultra-high frequency (UHF) radio waves from 2.4 gigahertz (GHz) to 2.485 GHz. Bluetooth Low Energy (BLE) is a form of Bluetooth communication that allows communication with devices that operate on low power. Such a device can be configured to transmit notifications to allow one or more other short-range wireless communication devices to detect the device, and / or to initiate or establish a short-range wireless communication connection with one or more other short-range wireless communication devices. Summary of the invention

[0005] In some implementations, a device includes one or more memories; and one or more processors communicatively coupled to the one or more memories, the one or more processors configured to: initiate an application session associated with an application; activate a continuous discovery mode associated with allowing discovery of a device during the application session, wherein the continuous discovery mode is used to cause a short-range wireless communication component of the device to repeatedly transmit announcements; obtain an output stream associated with the application session based on the continuous discovery mode being activated; control an output component based on the output stream; detect a background event associated with executing the application session in a background state; based on the background event, execute the application session in the background state; and prevent the device's operating system from pausing the application session in the background state based on controlling the output component based on the output stream until the continuous discovery mode is deactivated.

[0006] In some implementations, a method includes: transmitting an announcement associated with a short-range wireless communication protocol, wherein the announcement is transmitted in association with a continuous discovery mode of an application session; detecting a background event associated with the application session; executing the application session in a background state based on detecting the background event; processing an output stream associated with the application session, wherein the output stream is associated with executing the application session in the continuous discovery mode; and while the application session is executing in the background state, controlling an output component in association with providing muted audio content associated with the output stream, wherein the muted audio content is provided to prevent an operating system of a device from pausing the application session for a threshold time period after the background event to allow continued transmission of the announcement associated with the continuous discovery mode.

[0007] In some implementations, a non-transitory computer-readable medium stores instructions, the instructions including one or more instructions that, when executed by one or more processors, cause the one or more processors to: receive an output stream associated with an application session, wherein the output stream is associated with non-perceptible content via an output component; transmit notifications associated with the application session via a short-range wireless communication component; and configure a main processing thread associated with executing the application session to provide the output stream to the output component, wherein the main processing thread is configured to provide the output stream to: cause the output component to operate in association with the non-perceptible content, and prevent an operating system from pausing the application session while the application session is executing in a background state. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Figure 1A-Figure 1D is a schematic diagram of an example implementation described herein.

[0009] Figure 2 is a schematic diagram of an example implementation described herein.

[0010] Figure 3 is a schematic diagram of an example environment in which the systems and / or methods described herein may be implemented.

[0011] Figure 4 yes Figure 3 A schematic diagram of example components of one or more devices.

[0012] Figure 5 is a flow chart of an example process related to persistent short-range wireless communication detection for a mobile device using a background application. DETAILED DESCRIPTION

[0013] The following detailed description of example implementations refers to the accompanying drawings.The same reference numbers in different drawings may indicate the same or similar elements.

[0014] On a client device, such as a mobile device (e.g., a smartphone, a tablet, a device in a vehicle, a location detection device, etc.), an application may need to scan for short-range wireless communication (Bluetooth, Bluetooth Low Energy (BLE, or other wireless personal area network (WPAN)) devices. For example, an application may need to use short-range wireless communication to detect whether one or more other devices are within a specific distance of the client device. In such a case, the application can cause the client device to (e.g., repeatedly) transmit notifications to broadcast the presence of the client device and / or allow other devices to detect the presence of the client device. However, when such an application is running in the background (e.g., not in the foreground and / or not displayed), short-range wireless communication scanning can be disabled by the operating system of the client device, thereby preventing the client device from transmitting notifications while the application is in the background. This can result in unreliable behavior with respect to short-range wireless communication and / or execution of the application. Some implementations described herein overcome these and other problems, thereby supporting reliable short-range wireless communication and improving application performance.

[0015] In some implementations, a system and / or method may communicate data from a first mobile device to a second mobile device. The first mobile device and / or the second mobile device may run or execute an application. The application may communicate data using a short-range wireless communication protocol (e.g., between devices). The application may have configuration settings associated with controlling an output component managed by a specific operating system (e.g., iOS) (e.g., via a driver of the output component). For example, the application may be configured to provide an output stream associated with imperceptible content to the output component to correspondingly output imperceptible content that is configured to be undetectable to the user. Such imperceptible content may include muted audio content, unidentifiable light content, etc.

[0016] In some implementations, when the audio player application is activated, the output stream with imperceptible content can be mixed with the output stream of the audio player application (and / or, such as by combining sounds from the application through audio mixing, the audio output using the application can be mixed). The output stream can be mixed in the following manner: the ability of the speaker to output audio content associated with the audio player application is not affected. Some implementations support communication from a first mobile device to a second mobile device, even if either of the mobile devices enters a background state. In this way, the performance of applications and / or client devices that rely on or involve continuous short-range wireless communication scanning can be improved, thereby reducing the consumption of computing resources (e.g., processing resources, memory resources, power resources, etc.) and / or communication resources that are otherwise used to attempt to continue short-range wireless communication scanning after the application is in a background state (or has been suspended by the operating system).

[0017] In addition, some implementations described herein allow for continuous short-range wireless communication scanning without requiring updates or modifications to the operating system. For example, because the operating system is configured to allow the application to continue running while controlling the output component when in the background state, the operating system can be prevented from pausing one or more operations of the application, thereby allowing the application to continue short-range wireless communication scanning. In this way, computing resources that might otherwise be used to design and / or update the operating system to enable the application and / or client device to continuously perform short-range wireless communication scanning can be saved instead.

[0018] Figure 1A-Figure 1D 1 is a schematic diagram of example 100 associated with continuous short-range wireless communication detection for a user device using a background application. Figure 1A-Figure 1D As shown, example 100 includes a first device (shown as "device 1") and a second device (shown as "device 2"). In example 100, the first device and the second device (collectively referred to herein as "devices") are short-range wireless communication devices (e.g., devices with Bluetooth capabilities, BLE capabilities, etc.). In some implementations, the devices are devices of the same type (e.g., both devices are smartphones (as shown in example 100), Internet of Things (IoT) devices, etc.) or devices of different types (e.g., the first device is a smartphone, and the second device may be an IoT device).

[0019] In example 100, the first device includes an application module, an operating system, an output system, and a short-range wireless communication component. The application module enables one or more applications to be installed, opened, and / or executed. The operating system is configured to monitor the application session of the application module to manage the computing resources (e.g., processing resources, memory resources, power resources, etc.) of the first device. As described herein, the operating system may be an old operating system that does not have to be updated and / or reconfigured to enable continuous short-range wireless communication detection of the first device, as described herein. As shown, the output system includes a speaker (e.g., to emit a sound associated with audio content) and an optical transmitter (e.g., a light emitting diode (LED), a laser, etc.), and may include other output components of the first device (e.g., a display, a tactile output, etc.). The short-range wireless communication component includes an antenna and / or other components that support short-range wireless communication (e.g., with a second device or other devices). The first user device may include various other components (e.g., input components, other output components, other communication components, etc.).

[0020] As described herein, the first device can be configured to enable continuous short-range wireless communication detection using a continuous discovery mode of an application that utilizes short-range wireless communication (in Figure 1A-Figure 1DIn example 100, the continuous discovery mode prevents the application from being suspended (e.g., by the operating system of the first device) while in the background state by enabling the application to control output components of the output system, thereby enabling the application to continue to transmit notifications via the short-range wireless communication until the continuous discovery mode is suspended.

[0021] like Figure 1A And as indicated by reference numeral 105, the application is installed and / or opened on the first device to initiate the application session. The application can be installed and / or opened to initiate the application session based on user input associated with downloading the application (e.g., via a user interface of the first device), initiating an installation program of the first device, and / or opening the application. As described herein, during the application session, the application can be configured to detect other devices (e.g., the second device) and / or communicate with other devices (e.g., the second device) using a short-range wireless communication component. For example, the application can be associated with obtaining information from the other device, providing information to the other device, detecting and / or recording that the first device is within range of the other device, etc.

[0022] As described herein, an application can be configured to provide an output stream to one or more output components of an output system (e.g., in a continuous discovery mode) to support continuous short-range wireless communication detection of a first device. Thus, once installed and / or opened, an application can allow a user device to be continuously discovered (e.g., when the continuous discovery mode of the application is activated).

[0023] like Figure 1A Further and as indicated by reference numeral 110, the application session is monitored by the operating system. When monitoring the application session (and other application sessions of other applications of the first device), the operating system in the example implementation 100 is preconfigured (e.g., as a legacy operating system) to utilize an application state management protocol to control the state of the application and / or application session. The operating system can control the state of the application and / or the operating system based on allocating certain types of resources (e.g., certain processing threads of the first device) for the application session of the application, and / or based on enabling access to or control of certain components of the first device (e.g., output components of the output system and / or short-range wireless communication components).

[0024] like Figure 1AAs shown, according to the application state management protocol, the application can be in various states (e.g., based on control by the operating system). For example, the operating system can control the state of the application based on certain operating parameters of the first device. The operating parameters may include the running time of the application (e.g., the overall time length of the application session), the idle time of the application (e.g., the time length between user interactions of the application session), the processing load of the first device (e.g., the amount of processing resources and / or memory resources in use), etc. As described herein, the operating system is preconfigured to control the state of the application based on whether one or more of the operating parameters meet one or more thresholds of the operating parameters.

[0025] In example 100, the application can be in an unattached state 110-1, an initialized state 110-2, a foreground state 110-3, a standby state 110-4, a background state 110-5, and a suspended state 110-6. According to the application state management protocol, before the application is installed on the first device, or after the application is uninstalled from the first device, the application can be in an unattached state 110-1 (relative to the first user device). The application is in an initialized state 110-2 after being launched (e.g., based on user input). In the initialized state 110-2, the application can run in association with initiating an application session (e.g., executed by the first device). After the application is opened and / or the application session is accessed (e.g., via user input), the application is in a foreground state 110-3. In the foreground state 110-3, the operating system allows the application to control the display of the first device to present the graphical user interface of the application to allow the user to interact with the application via the graphical user interface during the application session.

[0026] The application is in the standby state 110-4 after the application session no longer uses the display of the first device. For example, the application can move to the standby state 110-4 after the graphical user interface of the application has been closed or deactivated (e.g., based on user input). The standby state 110-4 and / or the initialized state 110-2 can relate to applications running in a similar manner (e.g., related to being associated with a recent user interaction with the first device). The application is in the background state 110-5 based on the occurrence of a background event. For example, the background event can be the expiration of a threshold time period (e.g., a default time period, a time period defined by user settings, an application-specific time period, etc.) that the application has been idle in the standby state 110-4, user input that moves the application session to the background state 110-5, another application being opened and / or utilizing the display of the first device, etc.

[0027] When an application session of the application is ended and / or deactivated, the application is in the paused state 110-6. The operating system of example 100 is preconfigured to pause an ongoing application session after running in the background state 110-5 for a threshold period of time. Thus, the operating system can move the application to the paused state 110-6 by deactivating the application after the application is in the background state 110-5 for a threshold period of time. Additionally or alternatively, the operating system can move the application to the paused state 110-6 based on receiving user input to end the application session. As described herein, the application session can be inactive when the application session does not utilize the main processing thread of the first device and / or when the application session does not utilize one or more output components of the first device.

[0028] In this manner, the operating system may be preconfigured to monitor applications and / or application sessions to allow the first device to control the state of the applications. As described herein, without updating and / or changing the application state management protocol of the operating system (e.g., via an update or modification to the operating system), the first device (e.g., via an application and / or application session) is configured to activate persistent short-range wireless communication detection, thereby allowing the first device with a legacy operating system to use persistent short-range wireless communication detection.

[0029] like Figure 1B And as indicated by reference numeral 115, the continuous discovery mode is activated. As described herein, the continuous discovery mode is configured to cause the short-range wireless communication component to repeatedly transmit announcements that allow other devices (e.g., a second device) to detect the first device when the other devices are within the short-range wireless communication range of the first device. Activation of the continuous discovery mode can be associated with an application and / or an application session. For example, the first device and / or application module can activate the continuous discovery mode based on: receiving user input associated with the application session (e.g., as an ad hoc user setting for the application), the application session being initiated (e.g., as a default mode for the application), the application session being active (e.g., as a fixed operating mode for the application), etc.

[0030] In this manner, a continuous discovery mode may be activated to allow the first device and / or application session to be continuously detected via transmission of advertisements (eg, while the application session remains active).

[0031] like Figure 1B Further and indicated by reference numeral 120, application data for the application session is configured based on the continuous discovery mode. For example, the application data may include graphical user interface data, output streams, and notifications. The graphical user interface data may be any data used by the application session to display information associated with the application and / or receive user input for the application session.

[0032] The output stream may include a stream of data (e.g., audio data, light emitters, activation data, etc.) that is provided to one or more output components to control the output components. As described herein, the output stream may be associated with imperceptible content (e.g., imperceptible audio content or imperceptible light content). Thus, when the continuous discovery mode is activated, the output stream may be acquired to cause the output component(s) to output imperceptible content and prevent the operating system from pausing the application session (e.g., because the operating system may consider the application to be active when the output component is in use), without degrading the user experience associated with outputting audible content or visual content.

[0033] The notification can be configured to include a device identifier associated with the device and / or a user identifier (e.g., name, user name, identification number, etc.) associated with a user of the application. For example, the application can obtain the device identifier from the operating system or other system of the device. Additionally or alternatively, the application can obtain the user identifier based on the user logging into the application and / or providing the user identifier along with other user information when registering an account associated with the application platform of the application. Therefore, when the continuous discovery mode is activated, the notification can be configured to include a device identifier and / or a user identifier to allow other devices and / or users of other devices to identify the device and / or the user.

[0034] In this manner, application data for an application may be configured for an application session to allow the application session to continue running in the background of the first device (eg, in background state 110 - 5 ) without being suspended by the operating system after a threshold period of time.

[0035] like Figure 1B Further and as indicated by reference numeral 125, processing threads are managed based on application data. For example, an application may indicate that certain types of application data are to be processed via certain processing threads of the first device. Various processing threads of the first device may be assigned a certain priority level managed by the operating system. For example, the operating system may manage the state of an application and / or application session based on which processing threads are being used by a particular application session. As shown, the first device may include a main processing thread (shown herein and referred to as a "main thread") and child processing threads (shown herein and referred to as "child threads"). The main thread is a processing thread for processing data for an application session that is associated with a relatively higher priority level (e.g., a given dedicated processing resource and / or memory resource), and the child thread is associated with a lower priority level (e.g., an allocated resource that may be limited or removed based on the usage and processing load of other processing threads including the main thread).

[0036] As shown, the output stream can be processed via the main thread, as specified by the application and / or application module. Thus, while the application session is active (e.g., in the initialized state 110-2, in the foreground state 110-3, in the standby state 110-4, and / or in the background state 110-5), the output stream will be processed regardless of the state of the application. In some implementations, as described herein, if the application session is utilizing the main processing thread, the operating system is preconfigured to treat the application session as an active application. Thus, because the output stream is configured to utilize the main thread, the operating system can be prevented from suspending the application session (e.g., because the application session does not appear to be inactive to the operating system), even after a threshold period of inactivity with respect to processing other data associated with the application session.

[0037] In some implementations, output streams may be designated for operation in conjunction with an application session operating in continuous discovery mode. Thus, if an application session is active, but continuous discovery mode has not been activated, as described herein, the output streams may not be used to control output components via the main processing thread.

[0038] In this manner, the processing thread of the first device can be managed to cause an output component to operate in association with imperceptible content (e.g., to output silence and / or a flashing light at an undetectable frequency), and / or to prevent the operating system from pausing an application session while the application session is executing in a background state.

[0039] like Figure 1C And as shown by reference numeral 130, the output component is controlled to output imperceptible content according to the output stream. As described and shown herein, the output component may include a speaker (e.g., for media playback and / or alarm) or a light emitter (e.g., for use as a camera flash, flashlight or other lighting device). In some implementations, the output stream may be associated with the silent content to be output by the speaker. In such a case, the speaker may output an audio signal in a frequency range that is silent or inaudible to the human ear. Additionally or alternatively, the output stream may be associated with the content of the light emission to be output by the light emitter. In such a case, the light emitter may output a light signal or light of a frequency (or flicker) that is undetectable to the human eye.

[0040] In this manner, the first device and / or application can control the output component to output non-perceptible content and thereby avoid the device's operating system pausing the application session without degrading the user experience associated with outputting audible or visual content.

[0041] like Figure 1CFurther and indicated by reference numeral 135, notifications are transmitted during the application for continuous discovery of the application and / or the first device. The notifications may be repeatedly transmitted according to any suitable short-range wireless communication protocol. For example, using a short-range wireless communication protocol, the notifications may be transmitted to broadcast the presence of the first device and / or detect the presence of other devices (e.g., devices within the short-range wireless communication range of the first device).

[0042] As described herein, an announcement may be repeatedly transmitted to indicate a device identifier associated with a first device, the device identifier allowing another device (e.g., a second device) receiving the announcement to discover the first device. Additionally or alternatively, an announcement may be repeatedly transmitted to indicate a user identifier associated with a user, allowing other devices (or users of other devices) to identify the user, the user being associated with the application session.

[0043] According to some implementations, the announcement is transmitted based on the application session being active (e.g., based on user input initiating the application session and / or as a default configuration for the application) and based on the continuous discovery mode being activated (e.g., based on user input associated with the application session).

[0044] In this manner, the first device is configured to repeatedly transmit advertisements during the application session to support continued short-range wireless communication detection of the first device.

[0045] like Figure 1C Further and indicated by reference numeral 140, the operating system is configured to enable the application session to run in the background based on the output streams. For example, based on the application session using the main thread to control the output component(s), the operating system allows the application session to continue to run in the background (e.g., in background state 110-5). Therefore, because the application data is configured to use the main processing thread to control the output components, the operating system treats the application session as an active application session. Therefore, using the main processing thread and / or controlling the output components via the output streams prevents the operating system from pausing the application and / or deactivating the application session.

[0046] In this manner, the first device may be continually discoverable via short range wireless communications because advertisements will be repeatedly transmitted while the application session is active, and by deeming the application session active, the operating system is prevented from suspending the application session (eg, moving the application to suspended state 110 - 6 ).

[0047] like Figure 1DAnd indicated by reference numeral 145, the application session runs in the background based on a background event. For example, the first device (e.g., via an operating system) can move the application to a background state 110-5 based on detecting a background event. The background event can include opening another application, deactivation of a graphical user interface of an application; activation of a lock mode of the first device (e.g., to lock the first device), activation of a standby mode of the first device (e.g., a low power mode to reduce power consumption of the first device), etc.

[0048] As described herein, during the application session, the first device will continue to transmit notifications via the short-range wireless communication component. Thus, while the application session is running in the background, the first device can continue to transmit notifications via the short-range wireless communication. Furthermore, the application session can continue to run in the background of the first device beyond a threshold time period associated with inactivity of the application session in the background because: based on processing the output stream using the main processing thread and / or based on controlling the output component, the application session remains active while the application session is in the background.

[0049] In this manner, the application session runs in the background of the first device to allow the first device to continue transmitting notifications while the application session is running in the background in association with enabling persistent short-range wireless communication detection.

[0050] like Figure 1D Further and indicated by reference numeral 150, a response to the notification is received from the second device while the application session is running in the background. In some implementations, the response can be received after a threshold time period following a background event used by the operating system to suspend the application (e.g., because the application session remains active while running in the background). The first device and / or the application can process the response according to any suitable short-range wireless communication protocol utilized by the first device and the second device.

[0051] According to some implementations, based on receiving the response, the first device can use the short-range wireless communication protocol to establish a short-range wireless communication connection with the second device. In this way, based on receiving the response, the first device can establish a short-range wireless communication session associated with the application session.

[0052] like Figure 1DFurther and indicated by reference numeral 155, a short-range wireless communication session is established between the first device and the second device. The short-range wireless communication session may be associated with an application session to allow an application and / or the first device to communicate with the second device. For example, an application may obtain information associated with the second device, such as device information, user information, application information, etc. In such a case, the short-range wireless communication session may be utilized to record that the first device and the second device are within a short-range wireless communication range of each other (e.g., for location monitoring of the first device, for contact tracking associated with users of the first device and the second device, etc.).

[0053] In some implementations, the application may be installed on the second device. In such a case, the application session on the first device may be merged with the application session on the second device in association with the short-range wireless communication session. Thus, a short-range wireless communication session that may be configured via persistent short-range wireless communication detection as described herein may allow applications on the devices to exchange data (e.g., in association with a gaming session, a data sharing session, etc.).

[0054] In some implementations, the second device may be associated with protecting access to a secure environment (e.g., a secure area of ​​a campus, the interior of a building, the interior of a vehicle, etc.). For example, the first device and / or application may be associated with enabling wireless or keyless entry to the secure environment via short-range wireless communication with the second device. Thus, based on the second device detecting a notification from the first device (e.g., while an application session is in the background of the first device), the second device may enable a user carrying the first device to access the secure environment (e.g., by unlocking a lock or security mechanism of the secure environment).

[0055] In this manner, when the application is managed in the background of the first device through the persistent discovery mode, a short-range wireless communication session may be established in association with the application.

[0056] As indicated above, provide Figure 1A-Figure 1D As an example. Other examples can be related to Figure 1A-Figure 1D Different than described.

[0057] Figure 2 2 is a schematic diagram of an example 200 associated with persistent short-range wireless communication detection for a user device using a background application. Figure 2As shown, the device of example 200 includes an application module with a short-range wireless communication application and an audio application, and an output system with a mixer and a loudspeaker. The short-range wireless communication application may correspond to the application of example 100. As described herein, in example 200, the device and / or the short-range wireless communication application is configured to operate in a continuous discovery mode. Therefore, the short-range wireless communication application is providing a silent content stream so that the loudspeaker outputs silent content (or silence). The audio application is an application configured to output (e.g., associated with audio media data) audio content via the loudspeaker of the device.

[0058] like Figure 2 And as shown by reference numeral 210, while the short-range wireless communication application is in the continuous discovery mode, an audio content stream is received from the audio application. The device and / or output system may determine that the speaker is to output audio content associated with the audio content stream.

[0059] like Figure 2 And shown by reference numeral 220, the audio content stream is mixed with the content stream of silence. For example, using a mixer, the device and / or output system can use any suitable technology combination of the audio content stream and the content stream of silence without changing the content of silence or the output of the audio content (for example, so that the audio content is output as designed or configured). As an example, the mixer can generate a mixed stream, which includes alternately the content data of silence from the content stream of silence and the audio content data from the audio content stream. Therefore, the device and / or output system can enable the content stream of silence to be combined with the audio content stream to form a mixed stream, which, when provided to the output component, enables the output component to output the content and audio content of silence without interfering with the output of the audio content.

[0060] like Figure 2 And as shown by reference numeral 230, the combined audio content and muted content are output by the speaker. For example, the device and / or output system can cause the speaker to output content according to the mixed stream to provide both the muted audio content and the audio content. In this way, the application session can continue to run in the background state and the playback of the audio content is not suppressed even though another application is open and / or using the speaker.

[0061] As indicated above, provide Figure 2 As an example. Other examples can be related to Figure 2 Different than described.

[0062] Figure 3 is a schematic diagram of an example environment 300 in which the systems and / or methods described herein may be implemented. Figure 3As shown, environment 300 may include a primary user device 310 (e.g., corresponding to the first device of example 100), one or more secondary user devices 320 (e.g., which may include the second device of example 100), an application platform 330, and a network 340. The devices of environment 300 may be interconnected via a wired connection, a wireless connection, or a combination of a wired connection and a wireless connection.

[0063] The primary user device 310 includes one or more devices that are capable of receiving, generating, storing, processing and / or providing information associated with using a background application to enable persistent short-range wireless communication detection, as described elsewhere herein. The primary user device 310 may include a communication device. For example, the primary user device 310 may include a wireless communication device, a user equipment (UE), a mobile phone (e.g., a smart phone or a cellular phone, among other examples), a laptop computer, a tablet computer, a handheld computer, a wearable communication device (e.g., a smart watch or a pair of smart glasses, among other examples), an IoT device, or a similar type of device. As described elsewhere herein, the primary user device 310 may communicate with one or more other devices of the environment 300.

[0064] The secondary user device 320 may include any short-range wireless communication device that is configured to detect and / or respond to short-range wireless communication advertisements from the primary user device 310, as described herein. Thus, the secondary user device 320 may include a similar type of device as the primary user device 310.

[0065] The application platform 330 includes one or more devices capable of receiving, generating, storing, processing, providing and / or routing information associated with an application configured to support continuous discovery of the primary user device 310, as described elsewhere herein. For example, the application platform 330 may be associated with a backend system configured to be associated with an application configured to collect and / or monitor activities related to short-range wireless communications, short-range wireless communications connections, and / or short-range wireless communications devices, as described herein. The application platform 330 may include a communication device and / or a computing device. For example, the application platform 330 may include a server, an application server, a client server, a web server, a database server, a host server, a proxy server, a virtual server (e.g., executed on computing hardware), a server in a cloud computing system, a device including computing hardware used in a cloud computing environment, or a similar type of device. The application platform 330 may communicate with one or more other devices of the environment 300, as described elsewhere herein.

[0066] The network 340 includes one or more wired and / or wireless networks. For example, the network 340 may include a cellular network (e.g., a fifth generation (5G) network, a fourth generation (4G) network, a long term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN), a private network, an ad hoc network, an intranet, the Internet, a fiber-based network, etc., and / or a combination of these or other types of networks. The network 340 supports communication between devices of the environment 300.

[0067] supply Figure 3 The number and arrangement of devices and networks shown are examples. In practice, Figure 3 There may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than those shown. Figure 3 Two or more of the devices shown may be implemented in a single device, or Figure 3 The single device shown may be implemented as multiple distributed devices. Additionally or alternatively, one set of devices (eg, one or more devices) of environment 300 may perform one or more functions described as being performed by another set of devices of environment 300.

[0068] Figure 4 4 is a diagram of example components of a device 400, which may correspond to a primary user device 310 and / or a secondary user device 320. In some implementations, the primary user device 310 and / or the secondary user device 320 may include one or more devices 400 and / or one or more components of a device 400. Figure 4 As shown, device 400 may include a bus 410 , a processor 420 , a memory 430 , a storage component 440 , an input component 450 , an output component 460 , and a communication interface 470 .

[0069] The bus 410 includes components that support wired and / or wireless communications between components of the device 400. The processor 420 includes a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field programmable gate array, an application-specific integrated circuit, and / or another type of processing component. The processor 420 is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, the processor 420 includes one or more processors that can be programmed to perform functions. The memory 430 includes a random access memory, a read-only memory, and / or another type of memory (e.g., flash memory, magnetic memory, and / or optical memory).

[0070] Storage component 440 stores information and / or software related to the operation of device 400. For example, storage component 440 may include a hard disk drive, a disk drive, an optical disk drive, a solid state disk drive, a compact disk, a digital versatile disk, and / or another type of non-transient computer readable medium. Input component 450 enables device 400 to receive input, such as user input and / or sensed input. For example, input component 450 may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a global positioning system component, an accelerometer, a gyroscope, an actuator, etc. Output component 460 enables device 400 to provide output such as via a display, a speaker, and / or one or more light emitting diodes. Communication interface 470 enables device 400 to communicate with other devices such as via a wired connection and / or a wireless connection. For example, communication interface 470 may include a receiver, a transmitter, a transceiver, a modem, a network interface card, an antenna, etc.

[0071] The device 400 may perform one or more processes described herein. For example, a non-transient computer-readable medium (e.g., memory 430 and / or storage component 440) may store a set of instructions (e.g., one or more instructions, codes, software codes, program codes, etc.) for execution by the processor 420. The processor 420 may execute the set of instructions to perform one or more processes described herein. In some implementations, execution of the set of instructions by one or more processors 420 causes one or more processors 420 and / or the device 400 to perform one or more processes described herein. In some implementations, hardwired circuitry may be used in place of instructions or in combination with instructions to perform one or more processes described herein. Therefore, the implementations described herein are not limited to any particular combination of hardware circuitry and software.

[0072] supply Figure 4 The number and arrangement of components shown are for example purposes only. Figure 4 Compared to the components shown, device 400 may include additional components, fewer components, different components, or components arranged differently. In addition, or alternatively, a set of components (e.g., one or more components) of device 400 may perform one or more functions described as being performed by another set of components of device 400.

[0073] Figure 5 is a flow chart of an example process 500 associated with persistent short-range wireless communication detection for a user device using a background application. In some implementations, Figure 5 One or more process blocks of may be performed by a user device (eg, primary user device 310, secondary user device 320, etc.). Additionally or alternatively, Figure 5One or more process blocks of may be performed by one or more components of device 400, such as processor 420, memory 430, storage component 440, input component 450, output component 460, communication interface 470, and the like.

[0074] like Figure 5 As shown, process 500 may include transmitting an advertisement associated with a short-range wireless communication protocol, wherein the advertisement is transmitted in association with a continuous discovery mode of an application session (block 510). For example, as described above, a user device may transmit an advertisement associated with a short-range wireless communication protocol. In some implementations, the advertisement is transmitted in association with a continuous discovery mode of an application session.

[0075] like Figure 5 As further shown, process 500 may include detecting a background event associated with the application session (block 520). For example, as described above, the user device may detect a background event associated with the application session.

[0076] like Figure 5 As further shown, process 500 may include executing the application session in the background state based on detecting the background event (block 530). For example, as described above, the user device executes the application session in the background state based on detecting the background event.

[0077] like Figure 5 As further shown, process 500 may include processing an output stream associated with the application session, wherein the output stream is associated with executing the application session in the continuous discovery mode (block 540). For example, as described above, the user device may process the output stream associated with the application session. In some implementations, the output stream is associated with executing the application session in the continuous discovery mode.

[0078] like Figure 5 As further shown, process 500 may include: while the application session is executing in a background state, controlling an output component in association with providing muted audio content, the muted content being associated with an output stream, wherein the muted audio content is provided to prevent the device's operating system from pausing the application session for a threshold time period after a background event to allow continued transmission of notifications associated with a continuous discovery mode (box 550). For example, as described above, a user device may control an output component in association with providing muted audio content, the muted content being associated with an output stream, while the application session is executing in a background state. In some implementations, the muted audio content is provided to prevent the device's operating system from pausing the application session for a threshold time period after a background event to allow continued transmission of notifications associated with a continuous discovery mode.

[0079] Process 500 may include additional implementations, such as any single implementation or combination of implementations described below, and / or in conjunction with one or more other processes described elsewhere herein.

[0080] In a first implementation, the announcement is transmitted based on a first user input associated with initiating an application session, and the continuous discovery mode is activated based on a second user input associated with the application session.

[0081] In a second implementation, either alone or in combination with the first implementation, the announcement includes at least one of: a device identifier associated with the device, the device identifier allowing another device receiving the announcement to discover the device; or a user identifier associated with a user to allow other devices to identify the user, the user being associated with the application session.

[0082] In a third implementation, alone or in combination with one or more of the first and second implementations, the output stream is a first output stream, and process 500 may include determining that an output component is to output audio content associated with a second output stream, mixing the first output stream and the second output stream to form a mixed stream, and controlling the output component to output the mixed stream to provide both muted audio content and audio content.

[0083] In a fourth implementation, alone or in combination with one or more of the first to third implementations, controlling the output component may include causing the device's operating system to use a main processing thread to provide an output stream to the output component, and based on the main processing thread being used to provide the output stream to the output component, the operating system is prevented from suspending an application session in a background state.

[0084] In a fifth implementation, alone or in combination with one or more of the first to fourth implementations, the operating system can be configured to: suspend an application session running in a background state after a threshold time period unless the application session is using one or more output components of the device, and the output component is one of the one or more output components.

[0085] In a sixth implementation, alone or in combination with one or more of the first to fifth implementations, process 500 includes: receiving a response associated with a notification while an application session is executing in a background state, wherein the response is received from another device and via a short-range wireless communication protocol; and establishing a short-range wireless communication connection with the other device to support a communication session between the device and the other device.

[0086] although Figure 5 Example blocks of process 500 are shown, but in some implementations, Figure 5Process 500 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted. Additionally or alternatively, two or more blocks of process 500 may be performed in parallel.

[0087] According to some implementations, at least the following examples are provided.

[0088] Example 1. A device comprising: one or more memories; and one or more processors, communicatively coupled to the one or more memories, the one or more processors being configured to: initiate an application session associated with an application; activate a continuous discovery mode, the continuous discovery mode being associated with allowing discovery of a device during the application session, wherein the continuous discovery mode is used to cause a short-range wireless communication component of the device to repeatedly transmit notifications; obtain an output stream associated with the application session based on the continuous discovery mode being activated; control an output component based on the output stream; detect background events associated with executing the application session in a background state; based on the background events, execute the application session in the background state; and prevent the device's operating system from pausing the application session in the background state based on controlling the output component based on the output stream until the continuous discovery mode is deactivated.

[0089] Example 2. The device of example 1, wherein the application is initiated based on receiving a first user input, and the continuous discovery mode is activated based on a second user input different from the first user input.

[0090] Example 3. The device according to Example 1, wherein the one or more processors, when the continuous discovery mode is activated, are configured to: configure the notification to include at least one of the following: a device identifier associated with the device, or a user identifier associated with a user of the application.

[0091] Example 4. The device of Example 1, wherein at least one of: the output stream is associated with muted audio content and the output component is a speaker of the device; or the output stream is associated with light emitting content and the output component is a light emitter of the device.

[0092] Example 5. A device according to Example 1, wherein one or more processors, when controlling an output component based on an output stream, are configured to: cause the device's operating system to use the device's main processing thread to provide an output stream to the output component, wherein, based on the main processing thread being used to provide the output stream to the output component, the operating system is prevented from pausing an application session in a background state.

[0093] Example 6. A device according to Example 1, wherein the background event includes at least one of: opening of another application; deactivation of the graphical user interface of the application; turning off of the display of the device; activation of a lock mode of the device; or activation of a standby mode of the device.

[0094] Example 7. A device according to Example 1, wherein one or more processors, when preventing an operating system of the device from suspending an application session in a background state, are configured to: cause the operating system to allow the application session to execute in a background state after a threshold time period from detecting a background event, wherein the operating system is preconfigured to suspend an ongoing application session running in the background state of the device after the threshold time period.

[0095] Example 8. A method comprising: transmitting, by a device, a notification associated with a short-range wireless communication protocol, wherein the notification is transmitted in association with a continuous discovery mode of an application session; detecting, by the device, a background event associated with the application session; executing, by the device, the application session in a background state based on detecting the background event; processing, by the device, an output stream associated with the application session, wherein the output stream is associated with executing the application session in the continuous discovery mode; and controlling, by the device, an output component in association with providing muted audio content while the application session is executing in the background state, the muted audio content being associated with the output stream, wherein the muted audio content is provided to prevent the device's operating system from pausing the application session for a threshold time period after the background event to allow continued transmission of the notification associated with the continuous discovery mode.

[0096] Example 9. The method of Example 8, wherein the announcement is transmitted based on receiving a first user input, the first user input associated with initiating an application session, and the continuous discovery mode is activated based on a second user input, the second user input associated with the application session.

[0097] Example 10. A method according to Example 8, wherein the notification includes at least one of the following: a device identifier associated with the device, the device identifier allows another device receiving the notification to discover the device, or a user identifier associated with a user, the user is associated with the application session, and the user identifier is used to allow another device to identify the user.

[0098] Example 11. A method according to Example 8, wherein the output stream is a first output stream, and wherein the method further includes: determining that an output component will output audio content associated with a second output stream, wherein the second output stream is associated with an audio application session being executed on the device; mixing the first output stream and the second output stream to form a mixed stream; and controlling the output component to output the mixed stream to provide both muted audio content and audio content.

[0099] Example 12. A method according to Example 8, wherein controlling the output component includes: causing the device's operating system to use a main processing thread to provide an output stream to the output component, wherein based on the main processing thread being used to provide the output stream to the output component, the operating system is prevented from suspending an application session in a background state.

[0100] Example 13. A method according to Example 8, wherein the operating system is configured to: pause an application session running in a background state after a threshold time period unless the application session is using one or more output components of the device, wherein the output component is one of the one or more output components.

[0101] Example 14. The method according to Example 8 also includes: receiving a response associated with the notification while the application session is executing in a background state, wherein the response is received from another device via a short-range wireless communication protocol; and establishing a short-range wireless communication connection with the other device to support a communication session between the device and the other device.

[0102] Example 15. A non-transitory computer-readable medium storing instructions, the instructions comprising: one or more instructions, which, when executed by one or more processors, cause the one or more processors to: receive an output stream associated with an application session, wherein the output stream is associated with imperceptible content via an output component; transmit notifications associated with the application session via a short-range wireless communication component; and configure a main processing thread associated with executing the application session to provide the output stream to the output component, wherein the main processing thread is configured to provide the output stream to: cause the output component to operate in association with the imperceptible content, and prevent the operating system from pausing the application session while the application session is executing in a background state.

[0103] Example 16. The non-transitory computer readable medium of example 15, wherein based on the continuous discovery mode being activated such that the announcement is repeatedly transmitted during the application session, the output stream is received.

[0104] Example 17. The non-transitory computer-readable medium of Example 15, wherein the imperceptible content is silent audio content and the output component comprises a speaker.

[0105] Example 18. A non-transitory computer-readable medium according to Example 17, wherein the application session is a first application session and the output stream is a first output stream, wherein the one or more instructions, when executed by one or more processors, further cause the one or more processors to: determine that an output component will provide audio content associated with a second output stream, wherein the second output stream is associated with a second application session being executed; enable the first output stream to be combined with the second output stream to form a mixed stream, which, when provided to the output component, causes the output component to output imperceptible content and audio content.

[0106] Example 19. The non-transitory computer-readable medium of Example 15, wherein the non-perceptible content is light-emitting content and the output component comprises a light emitter.

[0107] Example 20. The non-transitory computer-readable medium of Example 15, wherein the short-range wireless communication component comprises a Bluetooth Low Energy (BLE) component.

[0108] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications may be made in light of the above disclosure or may be acquired from practice of the implementations.

[0109] As used herein, the term "component" is intended to be broadly interpreted as hardware, firmware, or a combination of hardware and software. It will be apparent that the systems and / or methods described herein can be implemented in different forms of hardware, firmware, and / or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods does not limit implementation. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software codes--it should be understood that, based on the description herein, software and hardware can be used to implement the systems and / or methods.

[0110] As used herein, satisfying a threshold may refer to a value being greater than a threshold, greater than or equal to a threshold, less than a threshold, less than or equal to a threshold, equal to a threshold, etc., depending on the context.

[0111] Although particular combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of the various implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and / or disclosed in the specification. Although each of the attached dependent claims may directly depend on only one claim, the disclosure of the various implementations includes each dependent claim in combination with every other claim in the claim set.

[0112] Unless explicitly described, the elements, actions or instructions used herein should not be interpreted as critical or necessary. Moreover, as used herein, the articles "one" and "an" are intended to include one or more items, and can be used interchangeably with "one or more". In addition, as used herein, the article "the" is intended to include one or more items quoted in conjunction with the article "the", and can be used interchangeably with "the one or more". In addition, as used herein, the term "set" is intended to include one or more items (for example, related items, unrelated items, combinations of related items and unrelated items, etc.), and can be used interchangeably with "one or more". In the case of only intending one item, phrases "only one" or similar languages ​​are used. Moreover, as used herein, the terms "has", "have", "having", etc. are intended to be open terms. In addition, the phrase "based on" is intended to mean "based at least in part on", unless otherwise explicitly stated. Furthermore, as used herein, the term "or" when used in series is intended to be inclusive and used interchangeably with "and / or" unless expressly stated otherwise (e.g., if used in conjunction with "either" or "only one of").

Claims

1. An electronic device, comprising: one or more memories; as well as One or more processors, communicatively coupled to the one or more memories, the one or more processors configured to: Initiating an application session of the application by launching the application; activating a continuous discovery mode based on the application session being initiated to enable discovery of the device during the application session, wherein the continuous discovery mode is configured to cause the application to repeatedly transmit advertisements via a short-range wireless communication component of the device; obtaining an output stream associated with the application session based on the continuous discovery mode being activated, wherein the output stream is a non-perceptible content stream associated with non-perceptible content; Controlling the output component to output the imperceptible content according to the output stream; detecting a background event associated with executing the application session in a background state; executing the application session in the background state based on detecting the background event; as well as Based on controlling the output component according to the output stream, the operating system of the device is prevented from pausing the application session in the background state until the continuous discovery mode is deactivated, thereby enabling the application to continue to transmit notifications via the short-range wireless communication component until the continuous discovery mode is deactivated.

2. The apparatus of claim 1 , wherein the application is initiated based on receiving a first user input, and the continuous discovery mode is activated based on a second user input different from the first user input; Wherein the one or more processors, when activating the continuous discovery mode, are configured to: The notification is configured to include at least one of the following: a device identifier associated with the device, or A user identifier associated with a user of the application.

3. The device according to claim 1 or 2, wherein controlling the output component according to the output stream comprises at least one of the following: The output stream is associated with muted audio content and the output component is a speaker of the device; or The output stream is associated with light emission content, and the output component is a light emitter of the device; Wherein the one or more processors, when controlling the output component according to the output stream, are configured to: causing the operating system of the device to provide the output stream to the output component using a main processing thread of the device, in, The operating system is prevented from suspending the application session in the background state based on the main processing thread being used to provide the output stream to the output component.

4. The device according to claim 1, wherein the background event comprises at least one of the following: Opening of another application; deactivation of the graphical user interface of the application; turning off a display of the device; activation of a lock mode of the device; or Activation of the standby mode of the device.

5. The device according to claim 1, The one or more processors, when preventing the operating system of the device from suspending the application session in the background state, are configured to: causing the operating system to allow the application session to execute in the background state after a threshold period of time from detecting the background event, The operating system is preconfigured to suspend an ongoing application session running in the background state of the device after the threshold time period.

6. A method for wireless communication, comprising: The device initiates an application session of the application by launching the application; Initiating, by the device based on the application session, activating a continuous discovery mode to allow discovery of the device during the application session, wherein the continuous discovery mode is configured to cause the application to repeatedly transmit advertisements via a short-range wireless communication component of the device; acquiring, by the device based on the continuous discovery mode being activated, an output stream associated with the application session, wherein the output stream is a non-perceptible content stream associated with non-perceptible content; The device controls an output component to output the imperceptible content; detecting, by the device, a background event associated with executing the application session in a background state; executing, by the device, the application session in the background state based on detecting the background event; The device prevents the operating system of the device from suspending the application session in the background state based on controlling the output component according to the output stream until the continuous discovery mode is deactivated, thereby enabling the application to continue to transmit notifications via the short-range wireless communication component until the continuous discovery mode is deactivated.

7. The method of claim 6, wherein the output stream is associated with muted audio content; Wherein the control of the output component includes: controlling the output component by providing the muted audio content while the application session is executing in the background state, Wherein the muted audio content is provided to prevent an operating system of the device from pausing the application session for a threshold period of time following the background event to allow continued transmission of the announcement associated with the continuous discovery mode.

8. The method of claim 6, wherein the announcement is transmitted based on receiving a first user input associated with initiating the application session, and the continuous discovery mode is activated based on a second user input associated with the application session; The notification includes at least one of the following: a device identifier associated with the device, the device identifier allowing another device receiving the advertisement to discover the device, or A user identifier associated with a user associated with the application session, the user identifier being used to allow the other device to identify the user.

9. The method of claim 7, wherein the output stream is a first output stream, The method further comprises: determining that the output component will output audio content associated with a second output stream, wherein the second output stream is associated with an audio application session being executed on the device; mixing the first output flow and the second output flow to form a mixed flow; as well as The output component is controlled to output the mixed stream to provide both the muted audio content and the audio content.

10. The method of claim 7, wherein controlling the output component comprises: causing the operating system of the device to use a main processing thread to provide the output stream to the output component, wherein the operating system is prevented from suspending the application session in the background state based on the main processing thread being used to provide the output stream to the output component; The operating system is configured as follows: pausing an application session running in the background state after the threshold period of time unless the application session is using one or more output components of the device, The output component is one of the one or more output components.

11. The method according to claim 7, further comprising: receiving a response associated with the notification while the application session is executing in the background state, wherein the response is received from another device via a short-range wireless communication protocol; and A short-range wireless communication connection is established with the other device to support a communication session between the device and the other device.

12. A computer-readable medium storing instructions, the instructions comprising: One or more instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 6 to 11.

Citation Information

Patent Citations

  • Opportunistic Multitasking

    US20110252430A1