Generally described, mobile devices, such as mobile telephones and hand-held devices, can utilize communication networks, such as the Internet, to exchange data with other mobile devices and/or computer devices. In a typical embodiment, a mobile device can utilize a wireless communication network, and various network protocols, to transmit and receive data from a variety of network sources. In such an embodiment, a mobile device can maintain continuous, or semi-continuous, wireless connections to allow a user with a mobile device to receive and transmit information. As the computing device processing resources and wireless network communication bandwidth continue to increase, the use of wireless enabled mobile devices to receive/transmit information has substantially increased.
In one common application, mobile devices with wireless communication capabilities can be used to periodically connect to a communication network and retrieve information, such as electronic mail. For example, a mobile device can be configured to periodically connect to a network-based electronic mail store and retrieve new electronic mails or notifications related to new electronic mails. For application in which information retrieval is repeated, two factors can affect the performance and reliability of the information availability. In one aspect, a mobile device will be subject to the availability and quality of the wireless network connection. In another aspect, the mobile device will be subject to the interoperation of the device transmitter/receiver and network functionality with the operating system/software application directing the data retrieval.
There are a number of solutions that correlate the performance and response of a mobile device to various detected network and device conditions. Regardless of the availability and quality of a wireless connection to a communication network, these solutions do not address deficiencies associated with interoperability between software application/operating environment components and hardware-based radio communication and networking components. In one aspect, the radio communication and networking components may include specific optimizations/configurations that cause the radio communication and networking components to become unavailable, such as for saving power. Because a common software application and/or operating environment may be running of any number of hardware platforms, software providers must be required to provide and support customized software application for a variety of hardware platforms or accept application errors associated with interoperability.
A system and method for managing radio communication availability in a mobile device is provided. A mobile device includes a communication management component that interacts with radio and network layer components on the mobile device to keep communications available. The interaction can correspond to the transmittal of instructions to the radio and network layer components, which can include instructions to send communications via a communication network.
In accordance with an aspect of the present invention, a method for managing radio frequency communications in a mobile device is provided. The mobile device can include a communication management component that transmits a first data request using an application-level communication protocol. The application-level communication protocol can correspond to an HTTP information request. Prior to receiving a response corresponding to the first data request, the communication management component transmits at least one data packet using a network-level communication protocol prior. The data packet transmission can correspond to a TCP Connect data packet. If a time threshold has been exceeded prior to receiving a response corresponding to the first data request, the communication management component transmits a second data request using the application-level communication protocol. Finally, prior to receiving a response corresponding to the second data request, the communications management component transmits at least one data packet using the network-level communication protocol.
In accordance with another aspect of the present invention, a computer-readable medium having computer-executable components for managing communications in a radio device is provided. The computer-executable components include a network layer and radio layer communication component for transmitting and receiving data. Additionally, the computer-executable components include a communications management component for transmitting an instruction to the network layer and radio layer communication component to elicit an action. The instruction can correspond to an instruction to transmit a communication via various communication protocols. The instruction can also correspond to an instruction to initiate a voice call and/or to toggle a power mode.
The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
Generally described, the present invention relates to a system and method for managing radio communications in mobile devices. More specifically, the present invention relates to a system and method for managing radio communication availability in mobiles devices utilizing interactions between software/operating system components and hardware-based radio and networking components. The interactions can include the transmission of repeated application-level communications and repeated network-level communications by the mobile device. Although the present invention will be described with regard to an illustrative communications environment, illustrative communication protocols and example interactions between mobile device components, one skilled in the relevant art will appreciated that the disclosed embodiments should not be construed as limiting.
With continued reference to
With reference now to
In conjunction with any additional communication management components, such as the components described above, the operating system and software application layer components 106 can include an additional communication management component that interacts with the radio and network layer components 104 to maintain the availability of the radio transmission capabilities of the mobile device 102. More specifically, in an illustrative embodiment, the communication management component can transmit one or more instructions via standard application protocol interfaces (“APIs”) that require some type of activity/interaction by at least a portion of the radio and network layer components. In one embodiment, the instruction can correspond to an instruction for the radio and network components to power on, or otherwise, reset. In another embodiment, the instruction can correspond to an instruction for the mobile device 102 to initiate a voice communication, e.g., a telephone call, to a designated telephone number. In still a further embodiment, the instruction may correspond to an instruction for the mobile device 102 to initiate a data communication to a designated recipient via the communication network 108. In one embodiment, the communication management component can transmits a repeated series of instructions to the radio and network layer components 104. Additionally, the communication management component can transmit a combination of one or more instructions to the radio and network layer components 104.
With reference to the embodiment in which the communication management component transmits instruction related to data transmissions, an illustrative embodiment will be described. In accordance with this embodiment, the communication management component transmits an instruction for the radio and network layer components 104 to transmit a first communication request. In an illustrative embodiment, the first communication request corresponds to an application-level communication protocol, such as a hypertext transfer protocol (“HTTP”) GET request. If the first communication request fails to get a proper response, the communication management component begins transmits an instruction to the radio and network layer components 104 to transmit a network-level communication. In an illustrative embodiment, the network-level communications corresponds to a transfer control protocol (“TCP”) connect or DNS communications. The radio and network layer components 104 may continue retrying the network-level communication. Upon expiration of a retry threshold, the communication management component instructs the radio and network layer components 104 to transmit a second communication request via the application-level communication protocol. If the second communication request fails to get a proper response, the communications management components instructs the radio and network layer components 104 to transmit another network layer communication. If the application-layer and network layer communications continue to fail to generate a response, the communication management component will stop trying to establish communication.
If a successful response is not received at decision block 304, a test is conducted to determine whether to begin radio communication priming at decision block 308. In an illustrative embodiment, an unsuccessful response to an application-layer request can include an error report that identifies a potential cause of the unsuccessful request. In the event that an error can be identified as relating to radio communication unavailability, there may be a need to prime the radio and network layer components 104. If radio communication priming is not to begin, the routine 300 terminates at block 306. If radio communication priming is to begin, at block 310, the mobile device 102 obtains radio communication priming configuration parameters. In an illustrative embodiment, the radio communication priming configuration parameters can include a specification as to the number of successive HTTP GET requests to attempt and a retry threshold between each successive request.
At block 312, the communications management component instructs the radio and network layer components 104 to transmit a communication corresponding to a network-level communication protocol. In an illustrative embodiment, the series of network-level communications can correspond to TCP Connect or DNS commands that transmit a data packet from the mobile device 102 to a network computing device 110. In an illustrative embodiment, the successive data packet transmission will mitigate the likelihood that the radio communication and network components will be unavailable during routine 300. In an illustrative embodiment, in the event that the radio and network layer components 104 do receive a positive response to the network-level communication, a communication can be resent. The radio and network layer components 104 include an exponential delay between successive network-level communications.
Returning to
With reference now to
With reference now to
While illustrative embodiments of the invention have been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention.