US20110093583A1 - Triggering actions based on changes in a network connection - Google Patents

Triggering actions based on changes in a network connection Download PDF

Info

Publication number
US20110093583A1
US20110093583A1 US12/581,004 US58100409A US2011093583A1 US 20110093583 A1 US20110093583 A1 US 20110093583A1 US 58100409 A US58100409 A US 58100409A US 2011093583 A1 US2011093583 A1 US 2011093583A1
Authority
US
United States
Prior art keywords
state
subsystem
information
processing subsystem
network connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/581,004
Inventor
Patrick S. Piemonte
Augustin Prats
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Priority to US12/581,004 priority Critical patent/US20110093583A1/en
Assigned to APPLE INC. reassignment APPLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PIEMONTE, PATRICK S., Prats, Augustin
Priority to EP10775967.2A priority patent/EP2488955B1/en
Priority to CN201510148099.4A priority patent/CN104836894B/en
Priority to CN2010800526727A priority patent/CN102667746A/en
Priority to PCT/US2010/052841 priority patent/WO2011047260A2/en
Priority to JP2012534392A priority patent/JP5612108B2/en
Publication of US20110093583A1 publication Critical patent/US20110093583A1/en
Priority to US14/021,902 priority patent/US8972573B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72484User interfaces specially adapted for cordless or mobile telephones wherein functions are triggered by incoming communication events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/60Substation equipment, e.g. for use by subscribers including speech amplifiers
    • H04M1/6033Substation equipment, e.g. for use by subscribers including speech amplifiers for providing handsfree use or a loudspeaker mode in telephone sets
    • H04M1/6041Portable telephones adapted for handsfree use
    • H04M1/6075Portable telephones adapted for handsfree use adapted for handsfree use in a vehicle
    • H04M1/6083Portable telephones adapted for handsfree use adapted for handsfree use in a vehicle by interfacing with the vehicle audio system
    • H04M1/6091Portable telephones adapted for handsfree use adapted for handsfree use in a vehicle by interfacing with the vehicle audio system including a wireless interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72412User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72457User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to geographic location
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/10Details of telephonic subscriber devices including a GPS signal receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/12Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/20Manipulation of established connections
    • H04W76/27Transitions between radio resource control [RRC] states

Definitions

  • the described embodiments relate to techniques for improving the performance of electronic devices. More specifically, the described embodiments relate to a method and apparatus for triggering actions based on changes in a network connection for an electronic device.
  • portable electronic devices such as smart phones, laptops, and netbooks. Consequently, despite their being relatively small, many of today's portable electronic devices provide many of the features of desktop computers from just a few years ago, yet also provide additional features that are unique to portable electronic devices. For example, many portable electronic devices provide network connectivity (e.g., BluetoothTM (from the Bluetooth SIG, Inc. of Bellevue, Wash., USA), WiFi, 3G/4G networks, USB, Ethernet, etc.), full-featured Internet browsers, location-sensing services (e.g., global positioning systems, etc.), still and video cameras, media players, pressure/temperature/direction sensors, and many other features. These features enable portable devices to provide a number of different services, including email, phone, text messaging, instant messaging, communicating on social networks, location-based services such as travel route planning, Internet browsing, playing back media, and many others.
  • network connectivity e.g., BluetoothTM (from the Bluetooth SIG, Inc. of Bellevue, Wash., USA), WiFi, 3G/4G
  • the described embodiments provide a system (e.g., system 100 ) for performing an action based on a change in a status of a wired or wireless network connection for the system.
  • the system detects the change in the status of the network connection.
  • the system determines a state of the system. The system then performs one or more actions using the determined state.
  • the system when detecting the change in status of the network connection, detects at least one of: (1) a disconnection from or a reconnection to the network connection; (2) a change in a signal strength of the network connection; (3) a change in a bandwidth of the network connection; or (4) the ability or inability to communicate with a predetermined second system on the network connection.
  • the system when determining the state of the system, requests one or more subsystems in the system to return information about the state of the system. In response to the request, the system receives information about the state of the system from the subsystems. The system then records the information about the state of the system.
  • the system when requesting the one or more subsystems to return information about the state of the system, the system requests the one or more subsystems to return information about one or more of a past, current, or projected future state of the system.
  • the state of the system includes an internal state of the system.
  • the requested information includes information sampled from at least one of internal hardware or software monitors in the system.
  • the state of the system includes an external state of the system.
  • the requested information includes information sampled by one or more sensors in the system about at least one of: (1) a geographical or physical location of the system; (2) a linear or angular velocity or acceleration of the system; (3) a directional heading of the system; (4) a temperature external to the system; (5) a tilt or rotation of the system; (6) an atmospheric pressure external to the system; (7) an intensity of light external to the system; (8) a level of sound external to the system; or (9) a time.
  • the system when returning information about a projected future state of the system, acquires one or more current or prior samples of information about a state of the system. The system then generates a projected future state of the system from the acquired samples.
  • recording the information includes storing the information in at least one of a volatile memory or a non-volatile memory.
  • the system when performing the action using the determined state, is configured to cause one or more subsystems in the system or one or more applications in the system to perform one or more operations using the determined state.
  • the system when performing the action using the determined state, is configured to cause one or more other systems or one or more applications in the other systems to perform one or more operations using the determined state.
  • the system is configured to wait a predetermined time before determining the state of the system.
  • the system is configured to wait a predetermined time before performing at least one of the one or more actions.
  • FIG. 1 presents a block diagram of a system in accordance with the described embodiments.
  • FIG. 2 presents a flowchart illustrating a process for performing an action based on a network status change in accordance with the described embodiments.
  • FIG. 3 presents a flowchart illustrating a process for using location information to perform an action based on a change in a status of a network connection in accordance with the described embodiments.
  • FIG. 4 presents a flowchart illustrating a process for using location information along with other information to perform an action based on a change in a status of a network connection in accordance with the described embodiments.
  • FIG. 5 presents a flowchart illustrating a process for performing an action based on the formation of a PAN with another device in accordance with the described embodiments.
  • FIG. 6 presents a flowchart illustrating a process for performing an action a predetermined time after a disconnection from a network in accordance with the described embodiments.
  • a computer-readable storage medium which may be any device or medium that can store code and/or data for use by a computer system.
  • the computer-readable storage medium can include, but is not limited to, volatile memory (e.g., synchronous dynamic random access memory (SDRAM)/double data-rate synchronous dynamic random access memory (DDR SDRAM), dynamic random access memory (DRAM), etc.), non-volatile memory (e.g., flash memory, solid-state drives, etc.), magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing code and/or data.
  • volatile memory e.g., synchronous dynamic random access memory (SDRAM)/double data-rate synchronous dynamic random access memory (DDR SDRAM), dynamic random access memory (DRAM), etc.
  • non-volatile memory e.g., flash memory, solid-state drives, etc.
  • magnetic and optical storage devices such as disk drives, magnetic tape, CDs (comp
  • the methods and processes herein described can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above.
  • a computer system reads and executes the code and/or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium.
  • the methods and processes herein described can be included in hardware modules.
  • the hardware modules can include, but are not limited to, application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs), and other programmable-logic devices.
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate arrays
  • the hardware modules When the hardware modules are activated, the hardware modules perform the methods and processes included within the hardware modules.
  • FIG. 1 presents a block diagram of system 100 in accordance with the described embodiments.
  • System 100 includes processing subsystem 102 , memory subsystem 104 , networking subsystem 106 , and service subsystem 108 .
  • Processing subsystem 102 can include one or more devices configured to perform computational operations.
  • processing subsystem 102 can include, but is not limited to, one or more microprocessors, ASICs, microcontrollers, or programmable-logic devices.
  • Memory subsystem 104 can include one or more devices for storing data and/or instructions for processing subsystem 102 , networking subsystem 106 , and/or service subsystem 108 .
  • memory subsystem 104 can include DRAM, flash memory, and/or other types of memory.
  • memory subsystem 104 can include mechanisms for controlling access to the memory.
  • memory subsystem 104 includes a memory hierarchy that includes an arrangement of one or more caches coupled to a memory for system 100 .
  • memory subsystem 104 is coupled to one or more high-capacity mass-storage devices (not shown).
  • memory subsystem can be coupled to a magnetic or optical drive, a solid-state drive, or another type of mass-storage device.
  • memory subsystem 104 can be used by system 100 as fast-access storage for often-used data, while the mass-storage device is used to store less frequently used data.
  • Networking subsystem 106 can include one or more devices configured to couple to and communicate on a wired and/or wireless network (i.e., to perform network operations).
  • networking subsystem 106 can include, but is not limited to, a BluetoothTM networking system, a cellular networking system (e.g., a 3G/4G network), a universal serial bus (USB) networking system, a networking system based on the standards described in Institute for Electrical and Electronic Engineers (IEEE) 802.11 (interchangeably called “an 802.11 network”), an Ethernet networking system, or a wired or wireless personal-area networking (PAN) system (e.g., an infrared data association (IrDA), ultra-wideband (UWB), Z-Wave, or a network based on the standards described in IEEE 802.15).
  • networking subsystem 106 can include one or more hard-wired electrical connections (e.g., a 30-pin connector) that can be used for networking (and possibly for other purposes, such as providing external power to
  • Networking subsystem 106 can include controllers, radios/antennas, sockets/plugs for hard-wired electrical connections, and/or other devices used for coupling to, communicating on, and handling data and events on a wired and/or wireless network.
  • networking subsystem 106 can include one or more mechanisms for forming an ad hoc network connection (e.g., an ad-hoc wireless PAN) with other devices.
  • Service subsystem 108 can include any device configured to perform one or more services within system 100 .
  • service subsystem 108 includes one or more functional blocks, components, circuits, elements, transducers, monitors, and/or sensors that can be used to perform the services. (Note that, although in the following paragraphs we describe several services that can be provided by service subsystem 108 , in alternative embodiments, service subsystem 108 can provide more and/or different services.)
  • service subsystem 108 can include one or more location-sensing systems.
  • the location-sensing systems can include, but are not limited to, global positioning systems (GPS), cellular-phone-system-based location systems (e.g., cell-identification (cell-ID), cell-ID++, enhanced observable time difference (E-OTD), and/or 3G positioning), and/or WiFi position systems for determining a geographical location of system 100 .
  • GPS global positioning systems
  • cellular-phone-system-based location systems e.g., cell-identification (cell-ID), cell-ID++, enhanced observable time difference (E-OTD), and/or 3G positioning
  • WiFi position systems for determining a geographical location of system 100 .
  • the location-sensing systems can be used separately, or can be used in combination to sense a location of system 100 .
  • service subsystem 108 can include one or more sensing systems, each coupled to one or more sensors for sensing external and/or internal conditions for tracking a current, past, or projected future state for system 100 (i.e., for processing subsystem 102 , memory subsystem 104 , networking subsystem 106 , and/or service subsystem 108 within system 100 ).
  • service subsystem 108 can include sensors such as accelerometers, compasses, tilt/rotation detectors, thermometers, ambient light sensors, atmospheric pressure sensors (barometers), cameras, microphones, and/or timers/clocks.
  • service subsystem 108 can include one or more monitoring systems coupled to internal hardware and/or software monitors for tracking a current, past, or projected future state for system 100 .
  • service subsystem 108 can include, but is not limited to, monitors for tracking processing subsystem 102 's workload, temperature, application profile (i.e., what applications are executing on processing subsystem 102 ), and/or I/O activity.
  • service subsystem 108 can include, but is not limited to, monitors for tracking the networks available to networking subsystem 106 , or networking subsystem 106 's connectivity and/or bandwidth usage.
  • service subsystem 108 can include one or more logging services for logging a state of system 100 .
  • each logging service can be configured to record events and data from one or more of the services provided by service subsystem 108 .
  • the logging service can be configured to capture location information from the location-sensing system and log the information.
  • the service subsystem 108 can be configured to store the logged state in memory subsystem 104 (including storing the logged state in non-volatile storage, so that the state is maintained if a power supply for system 100 is turned off or lost).
  • service subsystem 108 can automatically sample a state of system 100 at a predetermined interval. Service subsystem 108 can then project a future state for system 100 based on a predetermined number of prior samples. For example, if a temperature of system 100 has been 75° F. over a prior 12 samples at 10-minute intervals, service subsystem 108 can project that the temperature of system 100 will remain 75° for a next sample.
  • Bus 110 is an electrical connection between the subsystems that the separate subsystems can use to communicate commands and data among one another. Note that, although we show only one bus 110 for clarity, different embodiments can include a different number or configuration of electrical connections between the subsystems.
  • bus 110 is a packet bus and communication among the subsystems involves sending command and data packets in predetermined formats on bus 110 .
  • bus 110 includes one or more dedicated signal lines and communication between the subsystems involves signaling the subsystems on the one or more dedicated signal lines.
  • service subsystem 108 can be partially integrated into processing subsystem 102 , networking subsystem 106 , and/or memory subsystem 104 .
  • each of the subsystems may contain functional block(s), circuits, etc., for performing some or all of one or more services.
  • alternative embodiments can be configured in this way, for clarity we describe embodiments where each of the subsystems is separate from the other subsystems.
  • System 100 can be incorporated into many different types of electronic devices. Generally, these electronic devices include any device that can perform an action based on a change in a network status.
  • system 100 can be part of a desktop computer, a laptop computer, a server, a media player, an appliance, a subnotebook/netbook, a cellular phone, a piece of testing equipment, a network appliance, a personal digital assistant (PDA), a smart phone, a toy, a controller, or another device.
  • PDA personal digital assistant
  • system 100 may include one or more additional processing subsystems 102 , memory subsystems 104 , networking subsystems 106 , and/service subsystems 108 .
  • system 100 may include one or more additional processing subsystems 102 , memory subsystems 104 , networking subsystems 106 , and/service subsystems 108 .
  • one or more of the subsystems may not be present in system 100 .
  • system 100 may include one or more additional subsystems that are not shown in FIG. 1 .
  • system 100 can include, but is not limited to, a display subsystem for displaying information on an included display, a data collection subsystem for collecting data from an external system, an audio subsystem, an alarm subsystem, a media processing subsystem, and/or an input/output (I/O) subsystem to enable a user (or another system) to input data and commands into system 100 and to receive information from system 100 .
  • I/O input/output
  • networking subsystem 106 can include a BluetoothTM networking system, a USB networking system, an 802.11 networking system, an Ethernet networking system, a wired or wireless PAN system, and/or another type of wired or wireless networking system.
  • networking subsystem 106 uses well-known operations for a given network type to couple (i.e., connect) to the network, to send data on the network, and to uncouple (i.e., disconnect) from the network.
  • networking subsystem 106 can detect when a change has occurred in a status of an associated network connection and send an event notification or signal to one or more of the other subsystems to indicate the change. For example, when a network connection is established, terminated, or lost, networking subsystem 106 can signal one or more of the other subsystems that the change has occurred.
  • networking subsystem 106 when a given network connection changes status in other predetermined ways, such as bandwidth availability, network provider, or signal strength, networking subsystem 106 can detect the change and signal one or more of the other subsystems that the status change has occurred. For example, if the bandwidth for a network connection transitions from full availability to restricted availability, networking subsystem 106 can detect the transition and signal the transition to the other subsystems. In addition, in some of these embodiments, networking subsystem 106 can detect an ability or inability to communicate with a particular other system on the network connection.
  • networking subsystem 106 forwards event notifications or signals associated with status change for a given network type to the other subsystem(s) to signal the change in status. For example, assuming that networking subsystem 106 is coupled to a BluetoothTM network, upon losing the BluetoothTM network connection (e.g., upon moving too far from the BluetoothTM network to remain coupled to the network), a BluetoothTM disconnection event can be generated by networking subsystem 106 and forwarded to one or more of the other subsystems to signal that the BluetoothTM connection was lost.
  • networking subsystem 106 includes a hard-wired connection (e.g., a 30-pin connector or an Ethernet connection) that can be used for coupling to a network.
  • a hard-wired connection e.g., a 30-pin connector or an Ethernet connection
  • a signal can be generated from networking subsystem 106 to one or more of the other subsystems to indicate that the hard-wired connection is no longer functional. For example, assuming an embodiment where system 100 is coupled to a 30-pin connector, upon system 100 detecting that the 30-pin connector has lost power (e.g., has been disconnected or remains connected, but has lost electrical power), networking subsystem 106 can send a signal to notify one or more of the other subsystems of the power loss.
  • the described embodiments can perform one or more actions based on a status change in a network connection.
  • this can involve networking subsystem 106 detecting a change in the status of a given network connection and then sending a signal to one or more of the subsystems in system 100 to notify the subsystems of the status change.
  • one or more of the subsystems can perform the one or more actions.
  • performing the actions can involve recording information about a past, current, or predicted future state of system 100 and then using the recorded information to perform the one or more actions.
  • system 100 generally as performing network operations and actions. Although we describe the embodiments in this way, one or more of the subsystems shown in FIG. 1 can be performing some or all of the network operations and/or the actions.
  • FIG. 2 presents a flowchart illustrating a process for performing an action based on a network status change in accordance with the described embodiments. The process starts when networking subsystem 106 in system 100 determines that a status change has occurred for a network connection (step 200 ).
  • networking subsystem 106 includes one or more mechanisms for coupling to and communicating on a WiFi network and a BluetoothTM network, and also includes a 30-pin hard-wired connector for coupling system 100 to a network
  • networking subsystem 106 can determine that a WiFi, BluetoothTM, or 30-pin connection has been established, lost, terminated, interrupted, has changed in signal strength a predetermined amount, or has otherwise changed in status.
  • Networking subsystem 106 then signals one or more of the subsystems in system 100 that the change in status for the network connection has occurred. For example, using the embodiment described with respect to step 200 (which we will use in describing all the operations in FIG. 2 ), networking subsystem 106 can signal a change in the status of the WiFi, BluetoothTM, or 30-pin connector to processing subsystem 102 , memory subsystem 104 , networking subsystem 106 , and/or service subsystem 108 .
  • one or more of the subsystems can record state information about system 100 (step 202 ).
  • the state information can include information about a past, current, or projected future internal and/or external state of system 100 .
  • the internal state information can include any state information regarding a state of system 100 , including state information gathered from hardware or software monitors in system 100 .
  • the external state information can include any state information external to system 100 , such as information gathered by one or more location-sensing devices, sensors, network devices, or transducers.
  • the information can include information received from other systems (i.e., systems external to system 100 ).
  • the recorded state information can be gathered by one of the subsystems from one or more of the other subsystems.
  • processing subsystem 102 can query service subsystem 108 for information about an internal or external state of system 100 .
  • processing subsystem 102 can query memory subsystem 104 , networking subsystem 106 , and/or internal structures in processing subsystem 102 for stored information about an internal or external state of system 100 .
  • the information can include information about a current, a prior, or a projected future state of system 100 .
  • processing subsystem 102 can generate a projected future state of system 100 using a combination of recorded state information from memory subsystem 104 and current state information.
  • system 100 can use sampled state information to keep a projected future state available (i.e., in memory).
  • the subsystems then perform one or more actions using the recorded state information (step 204 ). For example, assuming an embodiment where networking subsystem 106 signals processing subsystem 102 upon detecting a WiFi, BluetoothTM, or 30-pin connector coupling event, processing subsystem 102 can request internal and/or external state information from service subsystem 108 . Using the state information, processing subsystem 102 can then perform the one or more actions.
  • one or more of the subsystems can record information about a past, current, or predicted future state of system 100 and then can use the recorded information to perform the one or more actions.
  • system 100 is part of a smart phone in which service subsystem 108 includes one or more location-sensing systems (i.e., the smart phone is “location-aware”), and in which networking subsystem 106 supports a BluetoothTM network connection.
  • networking subsystem 106 upon losing a connection to a BluetoothTM network (i.e., a “status change” in the BluetoothTM network connection), networking subsystem 106 can signal processing subsystem 102 that the network connection has been lost. Processing subsystem 102 can then use external and/or internal state information from system 100 to perform an action associated with losing the BluetoothTM network connection.
  • processing subsystem 102 upon receiving notice of a change in network status, can query service subsystem 108 for a current location of the smart phone. Upon receiving information about the location from service subsystem 108 , processing subsystem 102 can record the location. Processing subsystem 102 can then use the recorded information for performing an action such as placing a pin on a map using a map application. For an embodiment where system 100 was coupled to a BluetoothTM network in a car until the car was parked/turned off and the BluetoothTM connection was lost, this embodiment can potentially assist a user in later finding the location where the car was parked, can send location information to roadside assistance, or can perform another operation.
  • FIG. 3 presents a flowchart illustrating a process for using location information to perform an action based on a change in a status of a network connection in accordance with the described embodiments.
  • a location-aware portable electronic device e.g., a laptop, a smart phone, etc.
  • a system 100 that wirelessly connects to a BluetoothTM wireless network in a user's car.
  • the process starts when the portable electronic device wirelessly connects to the BluetoothTM network in the user's car (step 300 ).
  • a notification of the connection is passed from networking subsystem 106 to processing subsystem 102 , and processing subsystem 102 begins to monitor the BluetoothTM connection (i.e., the connection to the BluetoothTM wireless network) for a disconnect event.
  • processing subsystem 102 does not monitor the BluetoothTM connection, but instead detects disconnection events for the BluetoothTM connection as they occur.
  • the portable electronic device determines that the BluetoothTM connection has been disconnected or otherwise lost (step 302 ).
  • networking subsystem 106 in the portable electronic device detects that the BluetoothTM connection has been disconnected or otherwise lost.
  • networking subsystem 106 forwards a signal to processing subsystem 102 to notify processing subsystem 102 that the BluetoothTM connection has been lost.
  • Processing subsystem 102 then sends a request to service subsystem 108 to provide a current location for the portable electronic device (step 304 ).
  • service subsystem 108 captures a current location of the portable electronic device using a GPS system, a position tracking system, or another location sensing mechanism. The captured location is then forwarded to processing subsystem 102 and recorded (step 306 ).
  • Processing subsystem 102 then uses the recorded location information to place a pin on a map using a map application (step 308 ).
  • processing subsystem 102 can record the location where the connection was lost.
  • the recorded information can be used to inform a user that he or she is leaving an area of the network (which can have been defined by the user or system 100 earlier). For an embodiment where system 100 was coupled to a BluetoothTM network in a laptop, this can help to remind a user to secure the laptop before traveling too far from the laptop.
  • system 100 is part of a smart phone in which service subsystem 108 includes one or more location-sensing systems and one or more accelerometers, and in which networking subsystem 106 supports a BluetoothTM network connection and a hard-wired connection (e.g., a 30-pin connection).
  • system 100 can detect that a hard-wired connection has lost power or that a BluetoothTM network connection has been lost, and that a velocity at which system 100 was traveling has fallen from 65 mph to zero in a few seconds (using recorded current and prior state information for system 100 ). From this, system 100 can determine that a car accident may have occurred.
  • System 100 can then perform actions such as sounding an alarm to a user that system 100 has determined that an accident may have happened to give the user a chance to cancel the action before system 100 alerts an outside party (e.g., a roadside assistance service or the authorities).
  • an outside party e.g., a roadside assistance service or the authorities.
  • other information recorded about the state of system 100 such as time, traveling speed over a previous time interval, and/or location (i.e., on a highway) can be used to corroborate the determination.
  • FIG. 4 presents a flowchart illustrating a process for using location information along with other information to perform an action based on a change in a status of a network connection in accordance with the described embodiments.
  • a location-aware portable electronic device e.g., a laptop, a smart phone, etc.
  • a system 100 that electrically connects to a hard-wired connector in a user's car for recharging a battery in the electronic device and for networking
  • the process starts when the portable electronic device is electrically connected to the hard-wired connection in the user's car (step 400 ).
  • a notification of the connection is passed from networking subsystem 106 to processing subsystem 102 , and processing subsystem 102 begins to monitor the hard-wired connection for a disconnect event. More specifically, processing subsystem 102 can monitor the delivery of electrical power through the hard-wired connection for possible losses of power. In other embodiments, processing subsystem 102 does not monitor the hard-wired connection, but instead detects losses of power for the hard-wired connection as they occur.
  • the portable electronic device determines that the hard-wired connection has been disconnected or otherwise lost power (step 402 ).
  • networking subsystem 106 in the portable electronic device detects that the hard-wired connection has been disconnected or otherwise lost power. Upon detecting that the hard-wired connection has lost power, networking subsystem 106 forwards a signal to processing subsystem 102 to notify processing subsystem 102 that the hard-wired connection has lost power.
  • Processing subsystem 102 then signals service subsystem 108 to provide a current location for the portable electronic device (step 404 ).
  • service subsystem 108 captures a current location of the portable electronic device using a GPS system, a position tracking system, or another location sensing mechanism and forwards the location information to processing subsystem 102 .
  • processing subsystem 102 signals service subsystem 108 to provide acceleration information for a predetermined time period around the time when the electrical connection for the hard-wired connection was lost (step 406 ).
  • these embodiments can periodically record acceleration and/or velocity and/or can detect acceleration or deceleration, including changes in velocity of greater than a predetermined amount in a given time (i.e., a change in velocity from 65 mph to 0 mph in less than 2 seconds).
  • Providing the acceleration information can involve providing information about any deceleration for a short time before the loss of power until a short time after the loss of power. For example, 1-2 seconds before the loss of power to 1-2 seconds after the loss of power.
  • processing subsystem 102 determines if the recorded location information and acceleration information indicate that a car accident may have occurred (step 410 ).
  • System 100 can then sound or display an alarm to a user that system 100 has determined that an accident may have happened to give the user a chance to cancel the action before system 100 alerts an outside party (e.g., a roadside assistance service or the authorities) (step 412 ).
  • an outside party e.g., a roadside assistance service or the authorities
  • other information recorded about the state of system 100 such as time, traveling speed over a previous time interval, and/or location (i.e., on a highway) can be used to corroborate the determination.
  • system 100 is part of a netbook in which service subsystem 108 and/or processing subsystem 102 includes one or more mechanisms for providing location-sensing and personal contact management (i.e., phone/address contacts in memory subsystem 104 ), and that networking subsystem 106 includes one or more mechanisms for forming an ad hoc PAN with other nearby similarly equipped devices.
  • networking subsystem 106 upon encountering another device that supports forming a PAN, networking subsystem 106 can form a PAN with the other device. Networking subsystem 106 can then signal processing subsystem 102 that the PAN has been formed.
  • Processing subsystem 102 can then use information returned from one of the other subsystems (e.g., service subsystem 108 or memory subsystem 104 ) to perform associated actions. For example, processing subsystem 102 can upload or download predetermined information (i.e., public contact or identity information, schedule information, etc.) to or from the other device, can provide location-based information to the other device, or can perform another service.
  • predetermined information i.e., public contact or identity information, schedule information, etc.
  • system 100 can perform further actions based on the identity of the user of a device with which the PAN is formed and/or based on the internal or external state of system 100 or the other device. For example, system 100 can determine that a PAN has been formed with another device and can retrieve public identity information from that device. If the device belongs to a known contact, system 100 can perform actions such as alerting the user to the presence of the person, turning down music, exchanging files intended for that person, or performing another operation.
  • FIG. 5 presents a flowchart illustrating a process for performing an action based on the formation of a PAN with another electronic device in accordance with the described embodiments.
  • a portable electronic device e.g., a laptop, a smart phone, etc.
  • system 100 that forms ad hoc PANs with other similarly-equipped electronic devices.
  • a portable electronic device that can be configured to exchange selected information about the identity of the user of the portable electronic device and the identity of the user for other devices with which the portable electronic device forms PANs.
  • the process starts when the portable electronic device forms a PAN with another similarly-equipped electronic device (step 500 ).
  • a smart phone can form a PAN with a second smart phone, a kiosk in the mall, a laptop or desktop computer, a security system, etc.
  • the PAN can be formed by networking subsystem 106 using techniques known in the art.
  • networking subsystem 106 Upon detecting that the PAN has been formed, networking subsystem 106 forwards a notification to processing subsystem 102 .
  • Processing subsystem 102 then retrieves identity information from the other electronic device (step 502 ).
  • one or both devices can be smart phones that are configured to provide selected user identity information to devices with which PANs are formed.
  • a processing subsystem 102 in each device can cause the devices to exchange the user identity information with one another (or can cause the electronic device to receive identity information from the other device without sending identity information to the other device).
  • Processing subsystem 102 then records the identity information from the other device (step 504 ).
  • Processing subsystem 102 determines if the user is a user for which an action is associated or for which processing subsystem 102 is configured to perform an action. For example, processing subsystem 102 can be configured to alert the user to the presence of the other person, turn down music when someone is at the door, exchange files intended for that person, or perform another operation. If so, based on the recorded identity information, processing subsystem 102 performs the action associated with the user (step 506 ).
  • system 100 performs one or more actions immediately upon receiving the notification of the change in status of the network connection from networking subsystem 106 .
  • system 100 is in a location-aware cellular phone that includes a service (e.g., an application) for determining street traffic levels.
  • a service e.g., an application
  • a BluetoothTM network connection to a user's car can be determined to have been made by system 100 (using a network for the car, a time of coupling, etc.).
  • System 100 can then immediately perform the action of checking a volume of traffic on a predetermined route (e.g., to work) to determine if an alarm should be signaled to the user to enable the user to take an alternate route due to heavy traffic on the route.
  • a predetermined route e.g., to work
  • system 100 performs one or more actions a predetermined time after receiving the notification of the change in status of the network connection from networking subsystem 106 .
  • the information can be recorded immediately, but the action can be performed later.
  • system 100 can detect the disconnect event from the home wireless network then and perform a check for a connection to the work wireless network 30 minutes later. If a connection to the work network is not made by the time the check occurs, system 100 can perform actions such as enabling a predetermined locking sequence (e.g., setting a predetermined password), securing sensitive data, locking hard drives, and/or disabling or otherwise limiting system capabilities.
  • a predetermined locking sequence e.g., setting a predetermined password
  • securing sensitive data e.g., locking hard drives, and/or disabling or otherwise limiting system capabilities.
  • system 100 can periodically check to see if a connection to, or a disconnection from, a given network has occurred in a predetermined amount of time (e.g., 1 hour, 1 day, 1 week, etc.). If not, one or more associated actions can be performed.
  • a predetermined amount of time e.g., 1 hour, 1 day, 1 week, etc.
  • FIG. 6 presents a flowchart illustrating a process for performing an action a predetermined time after a disconnection from a network in accordance with the described embodiments.
  • a laptop computer that includes a system 100 that can be configured to form wireless (e.g., IEEE 802.11 or BluetoothTM) network connections with wireless networks in a home and at work.
  • wireless e.g., IEEE 802.11 or BluetoothTM
  • networking subsystem 106 determines that a wireless connection to the home wireless connection has been lost and forwards a notification to processing subsystem 102 .
  • processing subsystem 102 queries networking subsystem 106 to determine if a wireless network connection has been formed with a wireless network at work (step 602 ).
  • processing subsystem 102 can be configured to make the connectivity query to networking subsystem 106 one week later, one day later, one hour later, or a different time later. (Note that in these embodiments, the laptop computer detects a disconnection event for the home wireless network, but does not perform the resulting action of checking for the connection to the work wireless network until the predetermined time later.)
  • processing subsystem 102 can perform one or more operations for securing the computer against possible theft or loss (step 604 ).
  • processing subsystem 102 can secure hard drives, I/O devices (e.g., monitor, mouse, or keyboard), the operating system, or selected programs using a predetermined password or a physical key, can encrypt, conceal, or destroy sensitive data, can send an email/text message/instant message to inform security personnel or the user that the laptop may be stolen or lost, and/or can perform another action.
  • processing subsystem 102 can alert the user that these operations will be performed unless a particular password is entered and/or unless the laptop is connected to one of the wireless systems before a certain time has passed.
  • system 100 can perform one or more actions immediately upon receiving a notification of a change in network status and can then perform one or more additional actions a predetermined time after receiving the notification.
  • system 100 upon detecting a connection to a given network, can perform actions using or in combination with another device that is coupled to the network. For example, assuming that a home wireless system is coupled to a system that controls a heating system in the home, upon determining that a connection has been established with the home wireless network, system 100 can query the system that controls the heating system to find out a temperature of the home. If the temperature falls outside a preferred range, system 100 can prompt a user to activate the heating system, or can automatically activate the heating system.
  • a user can manually configure system 100 to perform a given action when a predetermined network change in status occurs. For example, assuming that system 100 is used in a location-aware netbook, a user can configure system 100 so that when a BluetoothTM network connection is lost at a given time and/or location, or when a connection to a given network is established or lost, system 100 awakes from a low-power state, records a current location, makes selected personal contact information available to other devices via the network, opens a number of user applications (email, remote login, etc.), and/or performs one or more other actions.
  • a BluetoothTM network connection is lost at a given time and/or location, or when a connection to a given network is established or lost
  • system 100 awakes from a low-power state, records a current location, makes selected personal contact information available to other devices via the network, opens a number of user applications (email, remote login, etc.), and/or performs one or more other actions.
  • system 100 can dynamically configure actions to be performed based on changes in network status.
  • system 100 can record user behavior or other operations associated with changes in network status and can use the recorded behavior or operations to determine actions to be performed when a similar change occurs in the future.
  • system 100 can configure the actions automatically.
  • system 100 can prompt a user to configure the actions.
  • system 100 can record an internal and external state of system 100 , and can record actions taken by a user using system 100 for a predetermined time. For example, upon disconnecting from a BluetoothTM network connection, system 100 can determine a current time, a temperature, a set of applications accessed by the user on system 100 , a location of system 100 , and other internal or external states for the system 100 . System 100 can then analyze the recorded user behavior to determine actions to be taken if the same change in the network status occurs in the future.
  • system 100 can determine that a user in a particular location always sets a ringer volume to a higher level and/or silences the ringer upon disconnecting from a BluetoothTM network in his or her car at location A (e.g., work) at 8:00 AM each morning. Based on this determination, system 100 can configure an action to occur each time the same network change in status occurs.
  • location A e.g., work

Abstract

The described embodiments provide a system for performing an action based on a change in a status of a wired or wireless network connection for the system. During operation, the system detects the change in the status of the network connection. In response to detecting the change, the system determines a state of the system. The system then performs one or more actions using the determined state.

Description

    BACKGROUND
  • 1. Field
  • The described embodiments relate to techniques for improving the performance of electronic devices. More specifically, the described embodiments relate to a method and apparatus for triggering actions based on changes in a network connection for an electronic device.
  • 2. Related Art
  • Designers have continually increased the number of features which are available in portable electronic devices such as smart phones, laptops, and netbooks. Consequently, despite their being relatively small, many of today's portable electronic devices provide many of the features of desktop computers from just a few years ago, yet also provide additional features that are unique to portable electronic devices. For example, many portable electronic devices provide network connectivity (e.g., Bluetooth™ (from the Bluetooth SIG, Inc. of Bellevue, Wash., USA), WiFi, 3G/4G networks, USB, Ethernet, etc.), full-featured Internet browsers, location-sensing services (e.g., global positioning systems, etc.), still and video cameras, media players, pressure/temperature/direction sensors, and many other features. These features enable portable devices to provide a number of different services, including email, phone, text messaging, instant messaging, communicating on social networks, location-based services such as travel route planning, Internet browsing, playing back media, and many others.
  • Unfortunately, because this large number of features has only recently become available in portable electronic devices, designers have not yet taken advantage of many of the functions that could be performed using combinations of features in the devices.
  • SUMMARY
  • The described embodiments provide a system (e.g., system 100) for performing an action based on a change in a status of a wired or wireless network connection for the system. During operation, the system detects the change in the status of the network connection. In response to detecting the change, the system determines a state of the system. The system then performs one or more actions using the determined state.
  • In some embodiments, when detecting the change in status of the network connection, the system detects at least one of: (1) a disconnection from or a reconnection to the network connection; (2) a change in a signal strength of the network connection; (3) a change in a bandwidth of the network connection; or (4) the ability or inability to communicate with a predetermined second system on the network connection.
  • In some embodiments, when determining the state of the system, the system requests one or more subsystems in the system to return information about the state of the system. In response to the request, the system receives information about the state of the system from the subsystems. The system then records the information about the state of the system.
  • In some embodiments, when requesting the one or more subsystems to return information about the state of the system, the system requests the one or more subsystems to return information about one or more of a past, current, or projected future state of the system.
  • In some embodiments, the state of the system includes an internal state of the system. In these embodiments, the requested information includes information sampled from at least one of internal hardware or software monitors in the system.
  • In some embodiments, the state of the system includes an external state of the system. In these embodiments, the requested information includes information sampled by one or more sensors in the system about at least one of: (1) a geographical or physical location of the system; (2) a linear or angular velocity or acceleration of the system; (3) a directional heading of the system; (4) a temperature external to the system; (5) a tilt or rotation of the system; (6) an atmospheric pressure external to the system; (7) an intensity of light external to the system; (8) a level of sound external to the system; or (9) a time.
  • In some embodiments, when returning information about a projected future state of the system, the system acquires one or more current or prior samples of information about a state of the system. The system then generates a projected future state of the system from the acquired samples.
  • In some embodiments, recording the information includes storing the information in at least one of a volatile memory or a non-volatile memory.
  • In some embodiments, when performing the action using the determined state, the system is configured to cause one or more subsystems in the system or one or more applications in the system to perform one or more operations using the determined state.
  • In some embodiments, when performing the action using the determined state, the system is configured to cause one or more other systems or one or more applications in the other systems to perform one or more operations using the determined state.
  • In some embodiments, the system is configured to wait a predetermined time before determining the state of the system.
  • In some embodiments, the system is configured to wait a predetermined time before performing at least one of the one or more actions.
  • BRIEF DESCRIPTION OF THE FIGURES
  • FIG. 1 presents a block diagram of a system in accordance with the described embodiments.
  • FIG. 2 presents a flowchart illustrating a process for performing an action based on a network status change in accordance with the described embodiments.
  • FIG. 3 presents a flowchart illustrating a process for using location information to perform an action based on a change in a status of a network connection in accordance with the described embodiments.
  • FIG. 4 presents a flowchart illustrating a process for using location information along with other information to perform an action based on a change in a status of a network connection in accordance with the described embodiments.
  • FIG. 5 presents a flowchart illustrating a process for performing an action based on the formation of a PAN with another device in accordance with the described embodiments.
  • FIG. 6 presents a flowchart illustrating a process for performing an action a predetermined time after a disconnection from a network in accordance with the described embodiments.
  • In the figures, like reference numerals refer to the same figure elements.
  • DETAILED DESCRIPTION
  • The following description is presented to enable any person skilled in the art to make and use the described embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the described embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the described embodiments. Thus, the described embodiments are not limited to the embodiments shown, but are to be accorded the widest scope consistent with the principles and features disclosed herein.
  • The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. For example, in some embodiments the computer-readable storage medium can include, but is not limited to, volatile memory (e.g., synchronous dynamic random access memory (SDRAM)/double data-rate synchronous dynamic random access memory (DDR SDRAM), dynamic random access memory (DRAM), etc.), non-volatile memory (e.g., flash memory, solid-state drives, etc.), magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing code and/or data.
  • The methods and processes herein described can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium.
  • Furthermore, the methods and processes herein described can be included in hardware modules. For example, the hardware modules can include, but are not limited to, application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs), and other programmable-logic devices. When the hardware modules are activated, the hardware modules perform the methods and processes included within the hardware modules.
  • System
  • FIG. 1 presents a block diagram of system 100 in accordance with the described embodiments. System 100 includes processing subsystem 102, memory subsystem 104, networking subsystem 106, and service subsystem 108.
  • Processing subsystem 102 can include one or more devices configured to perform computational operations. For example, processing subsystem 102 can include, but is not limited to, one or more microprocessors, ASICs, microcontrollers, or programmable-logic devices.
  • Memory subsystem 104 can include one or more devices for storing data and/or instructions for processing subsystem 102, networking subsystem 106, and/or service subsystem 108. For example, memory subsystem 104 can include DRAM, flash memory, and/or other types of memory. In addition, memory subsystem 104 can include mechanisms for controlling access to the memory. In some embodiments, memory subsystem 104 includes a memory hierarchy that includes an arrangement of one or more caches coupled to a memory for system 100.
  • In some embodiments, memory subsystem 104 is coupled to one or more high-capacity mass-storage devices (not shown). For example, memory subsystem can be coupled to a magnetic or optical drive, a solid-state drive, or another type of mass-storage device. In these embodiments, memory subsystem 104 can be used by system 100 as fast-access storage for often-used data, while the mass-storage device is used to store less frequently used data.
  • Networking subsystem 106 can include one or more devices configured to couple to and communicate on a wired and/or wireless network (i.e., to perform network operations). For example, networking subsystem 106 can include, but is not limited to, a Bluetooth™ networking system, a cellular networking system (e.g., a 3G/4G network), a universal serial bus (USB) networking system, a networking system based on the standards described in Institute for Electrical and Electronic Engineers (IEEE) 802.11 (interchangeably called “an 802.11 network”), an Ethernet networking system, or a wired or wireless personal-area networking (PAN) system (e.g., an infrared data association (IrDA), ultra-wideband (UWB), Z-Wave, or a network based on the standards described in IEEE 802.15). In some embodiments, networking subsystem 106 can include one or more hard-wired electrical connections (e.g., a 30-pin connector) that can be used for networking (and possibly for other purposes, such as providing external power to system 100).
  • Networking subsystem 106 can include controllers, radios/antennas, sockets/plugs for hard-wired electrical connections, and/or other devices used for coupling to, communicating on, and handling data and events on a wired and/or wireless network. In some of these embodiments, networking subsystem 106 can include one or more mechanisms for forming an ad hoc network connection (e.g., an ad-hoc wireless PAN) with other devices.
  • Service subsystem 108 can include any device configured to perform one or more services within system 100. Generally, service subsystem 108 includes one or more functional blocks, components, circuits, elements, transducers, monitors, and/or sensors that can be used to perform the services. (Note that, although in the following paragraphs we describe several services that can be provided by service subsystem 108, in alternative embodiments, service subsystem 108 can provide more and/or different services.)
  • For example, service subsystem 108 can include one or more location-sensing systems. The location-sensing systems can include, but are not limited to, global positioning systems (GPS), cellular-phone-system-based location systems (e.g., cell-identification (cell-ID), cell-ID++, enhanced observable time difference (E-OTD), and/or 3G positioning), and/or WiFi position systems for determining a geographical location of system 100. In embodiments where service subsystem 108 includes two or more location-sensing systems, the location-sensing systems can be used separately, or can be used in combination to sense a location of system 100.
  • As another example, service subsystem 108 can include one or more sensing systems, each coupled to one or more sensors for sensing external and/or internal conditions for tracking a current, past, or projected future state for system 100 (i.e., for processing subsystem 102, memory subsystem 104, networking subsystem 106, and/or service subsystem 108 within system 100). For example, service subsystem 108 can include sensors such as accelerometers, compasses, tilt/rotation detectors, thermometers, ambient light sensors, atmospheric pressure sensors (barometers), cameras, microphones, and/or timers/clocks.
  • As yet another example, service subsystem 108 can include one or more monitoring systems coupled to internal hardware and/or software monitors for tracking a current, past, or projected future state for system 100. For example, service subsystem 108 can include, but is not limited to, monitors for tracking processing subsystem 102's workload, temperature, application profile (i.e., what applications are executing on processing subsystem 102), and/or I/O activity. As another example, service subsystem 108 can include, but is not limited to, monitors for tracking the networks available to networking subsystem 106, or networking subsystem 106's connectivity and/or bandwidth usage.
  • As still another example, service subsystem 108 can include one or more logging services for logging a state of system 100. In some embodiments, each logging service can be configured to record events and data from one or more of the services provided by service subsystem 108. For example, assuming that service subsystem 108 includes a location-sensing system, the logging service can be configured to capture location information from the location-sensing system and log the information. In some embodiments, the service subsystem 108 can be configured to store the logged state in memory subsystem 104 (including storing the logged state in non-volatile storage, so that the state is maintained if a power supply for system 100 is turned off or lost).
  • In the embodiments that track a projected future state for system 100, service subsystem 108 can automatically sample a state of system 100 at a predetermined interval. Service subsystem 108 can then project a future state for system 100 based on a predetermined number of prior samples. For example, if a temperature of system 100 has been 75° F. over a prior 12 samples at 10-minute intervals, service subsystem 108 can project that the temperature of system 100 will remain 75° for a next sample.
  • Within system 100, processing subsystem 102, memory subsystem 104, networking subsystem 106, and service subsystem 108 are coupled together using bus 110. Bus 110 is an electrical connection between the subsystems that the separate subsystems can use to communicate commands and data among one another. Note that, although we show only one bus 110 for clarity, different embodiments can include a different number or configuration of electrical connections between the subsystems.
  • In some embodiments, bus 110 is a packet bus and communication among the subsystems involves sending command and data packets in predetermined formats on bus 110. In alternative embodiments, bus 110 includes one or more dedicated signal lines and communication between the subsystems involves signaling the subsystems on the one or more dedicated signal lines.
  • Although shown as separate subsystems in FIG. 1, in some embodiments, some or all of a given subsystem can be integrated into one or more of the other subsystems in system 100. For example, in some embodiments, service subsystem 108 can be partially integrated into processing subsystem 102, networking subsystem 106, and/or memory subsystem 104. In other words, in these embodiments, each of the subsystems may contain functional block(s), circuits, etc., for performing some or all of one or more services. Although alternative embodiments can be configured in this way, for clarity we describe embodiments where each of the subsystems is separate from the other subsystems.
  • System 100 can be incorporated into many different types of electronic devices. Generally, these electronic devices include any device that can perform an action based on a change in a network status. For example, system 100 can be part of a desktop computer, a laptop computer, a server, a media player, an appliance, a subnotebook/netbook, a cellular phone, a piece of testing equipment, a network appliance, a personal digital assistant (PDA), a smart phone, a toy, a controller, or another device.
  • Although we use specific components to describe system 100, in alternative embodiments, different components and/or subsystems may be present in system 100. For example, system 100 may include one or more additional processing subsystems 102, memory subsystems 104, networking subsystems 106, and/service subsystems 108. Alternatively, one or more of the subsystems may not be present in system 100.
  • In some embodiments, system 100 may include one or more additional subsystems that are not shown in FIG. 1. For example, system 100 can include, but is not limited to, a display subsystem for displaying information on an included display, a data collection subsystem for collecting data from an external system, an audio subsystem, an alarm subsystem, a media processing subsystem, and/or an input/output (I/O) subsystem to enable a user (or another system) to input data and commands into system 100 and to receive information from system 100.
  • Detecting a Status Change for a Network Connection
  • Recall that in the described embodiments, networking subsystem 106 can include a Bluetooth™ networking system, a USB networking system, an 802.11 networking system, an Ethernet networking system, a wired or wireless PAN system, and/or another type of wired or wireless networking system. In the described embodiments, networking subsystem 106 uses well-known operations for a given network type to couple (i.e., connect) to the network, to send data on the network, and to uncouple (i.e., disconnect) from the network.
  • More specifically, in these embodiments, using events and/or signals associated with a given network type, networking subsystem 106 can detect when a change has occurred in a status of an associated network connection and send an event notification or signal to one or more of the other subsystems to indicate the change. For example, when a network connection is established, terminated, or lost, networking subsystem 106 can signal one or more of the other subsystems that the change has occurred.
  • In addition, in some embodiments, when a given network connection changes status in other predetermined ways, such as bandwidth availability, network provider, or signal strength, networking subsystem 106 can detect the change and signal one or more of the other subsystems that the status change has occurred. For example, if the bandwidth for a network connection transitions from full availability to restricted availability, networking subsystem 106 can detect the transition and signal the transition to the other subsystems. In addition, in some of these embodiments, networking subsystem 106 can detect an ability or inability to communicate with a particular other system on the network connection.
  • In some embodiments, networking subsystem 106 forwards event notifications or signals associated with status change for a given network type to the other subsystem(s) to signal the change in status. For example, assuming that networking subsystem 106 is coupled to a Bluetooth™ network, upon losing the Bluetooth™ network connection (e.g., upon moving too far from the Bluetooth™ network to remain coupled to the network), a Bluetooth™ disconnection event can be generated by networking subsystem 106 and forwarded to one or more of the other subsystems to signal that the Bluetooth™ connection was lost.
  • Recall also that in some embodiments networking subsystem 106 includes a hard-wired connection (e.g., a 30-pin connector or an Ethernet connection) that can be used for coupling to a network. In these embodiments, upon the hard-wired connection being disconnected or the signal on the hard-wired connection being lost, a signal can be generated from networking subsystem 106 to one or more of the other subsystems to indicate that the hard-wired connection is no longer functional. For example, assuming an embodiment where system 100 is coupled to a 30-pin connector, upon system 100 detecting that the 30-pin connector has lost power (e.g., has been disconnected or remains connected, but has lost electrical power), networking subsystem 106 can send a signal to notify one or more of the other subsystems of the power loss.
  • Performing an Action Based on a Network Status Change
  • The described embodiments can perform one or more actions based on a status change in a network connection. Generally, this can involve networking subsystem 106 detecting a change in the status of a given network connection and then sending a signal to one or more of the subsystems in system 100 to notify the subsystems of the status change. Upon receiving the signal indicating the status change of the network connection, one or more of the subsystems can perform the one or more actions. In some embodiments, performing the actions can involve recording information about a past, current, or predicted future state of system 100 and then using the recorded information to perform the one or more actions.
  • Note that in the following description, for clarity and brevity, we sometimes describe system 100 generally as performing network operations and actions. Although we describe the embodiments in this way, one or more of the subsystems shown in FIG. 1 can be performing some or all of the network operations and/or the actions.
  • FIG. 2 presents a flowchart illustrating a process for performing an action based on a network status change in accordance with the described embodiments. The process starts when networking subsystem 106 in system 100 determines that a status change has occurred for a network connection (step 200).
  • For example, assuming an embodiment where networking subsystem 106 includes one or more mechanisms for coupling to and communicating on a WiFi network and a Bluetooth™ network, and also includes a 30-pin hard-wired connector for coupling system 100 to a network, networking subsystem 106 can determine that a WiFi, Bluetooth™, or 30-pin connection has been established, lost, terminated, interrupted, has changed in signal strength a predetermined amount, or has otherwise changed in status.
  • Networking subsystem 106 then signals one or more of the subsystems in system 100 that the change in status for the network connection has occurred. For example, using the embodiment described with respect to step 200 (which we will use in describing all the operations in FIG. 2), networking subsystem 106 can signal a change in the status of the WiFi, Bluetooth™, or 30-pin connector to processing subsystem 102, memory subsystem 104, networking subsystem 106, and/or service subsystem 108.
  • Based on the received signal, one or more of the subsystems can record state information about system 100 (step 202). In the described embodiments the state information can include information about a past, current, or projected future internal and/or external state of system 100. The internal state information can include any state information regarding a state of system 100, including state information gathered from hardware or software monitors in system 100. The external state information can include any state information external to system 100, such as information gathered by one or more location-sensing devices, sensors, network devices, or transducers. In some embodiments, the information can include information received from other systems (i.e., systems external to system 100).
  • In the described embodiments, the recorded state information can be gathered by one of the subsystems from one or more of the other subsystems.
  • For example, assuming that networking subsystem 106 signaled a WiFi, Bluetooth™, or 30-pin connector disconnect event to processing subsystem 102, processing subsystem 102 can query service subsystem 108 for information about an internal or external state of system 100. Moreover, processing subsystem 102 can query memory subsystem 104, networking subsystem 106, and/or internal structures in processing subsystem 102 for stored information about an internal or external state of system 100.
  • As described above, in some embodiments, the information can include information about a current, a prior, or a projected future state of system 100. In some embodiments, processing subsystem 102 can generate a projected future state of system 100 using a combination of recorded state information from memory subsystem 104 and current state information. In alternative embodiments, system 100 can use sampled state information to keep a projected future state available (i.e., in memory).
  • The subsystems then perform one or more actions using the recorded state information (step 204). For example, assuming an embodiment where networking subsystem 106 signals processing subsystem 102 upon detecting a WiFi, Bluetooth™, or 30-pin connector coupling event, processing subsystem 102 can request internal and/or external state information from service subsystem 108. Using the state information, processing subsystem 102 can then perform the one or more actions.
  • Exemplary Embodiments
  • As described above, upon receiving a signal indicating a status change of a network connection, one or more of the subsystems can record information about a past, current, or predicted future state of system 100 and then can use the recorded information to perform the one or more actions. For example, assume an embodiment where system 100 is part of a smart phone in which service subsystem 108 includes one or more location-sensing systems (i.e., the smart phone is “location-aware”), and in which networking subsystem 106 supports a Bluetooth™ network connection. In this embodiment, upon losing a connection to a Bluetooth™ network (i.e., a “status change” in the Bluetooth™ network connection), networking subsystem 106 can signal processing subsystem 102 that the network connection has been lost. Processing subsystem 102 can then use external and/or internal state information from system 100 to perform an action associated with losing the Bluetooth™ network connection.
  • For example, in some of these embodiments, upon receiving notice of a change in network status, processing subsystem 102 can query service subsystem 108 for a current location of the smart phone. Upon receiving information about the location from service subsystem 108, processing subsystem 102 can record the location. Processing subsystem 102 can then use the recorded information for performing an action such as placing a pin on a map using a map application. For an embodiment where system 100 was coupled to a Bluetooth™ network in a car until the car was parked/turned off and the Bluetooth™ connection was lost, this embodiment can potentially assist a user in later finding the location where the car was parked, can send location information to roadside assistance, or can perform another operation.
  • FIG. 3 presents a flowchart illustrating a process for using location information to perform an action based on a change in a status of a network connection in accordance with the described embodiments. For the example shown in FIG. 3, we assume a location-aware portable electronic device (e.g., a laptop, a smart phone, etc.) including a system 100 that wirelessly connects to a Bluetooth™ wireless network in a user's car.
  • As shown in FIG. 3, the process starts when the portable electronic device wirelessly connects to the Bluetooth™ network in the user's car (step 300). In some embodiments, a notification of the connection is passed from networking subsystem 106 to processing subsystem 102, and processing subsystem 102 begins to monitor the Bluetooth™ connection (i.e., the connection to the Bluetooth™ wireless network) for a disconnect event. In other embodiments, processing subsystem 102 does not monitor the Bluetooth™ connection, but instead detects disconnection events for the Bluetooth™ connection as they occur.
  • The portable electronic device then determines that the Bluetooth™ connection has been disconnected or otherwise lost (step 302). In some embodiments, networking subsystem 106 in the portable electronic device detects that the Bluetooth™ connection has been disconnected or otherwise lost. Upon detecting that the Bluetooth™ connection has been lost, networking subsystem 106 forwards a signal to processing subsystem 102 to notify processing subsystem 102 that the Bluetooth™ connection has been lost.
  • Processing subsystem 102 then sends a request to service subsystem 108 to provide a current location for the portable electronic device (step 304). In response, service subsystem 108 captures a current location of the portable electronic device using a GPS system, a position tracking system, or another location sensing mechanism. The captured location is then forwarded to processing subsystem 102 and recorded (step 306). Processing subsystem 102 then uses the recorded location information to place a pin on a map using a map application (step 308).
  • As another example, in some of these embodiments, upon receiving an indication from networking subsystem 106 that the Bluetooth™ connection has been lost, processing subsystem 102 can record the location where the connection was lost. The recorded information can be used to inform a user that he or she is leaving an area of the network (which can have been defined by the user or system 100 earlier). For an embodiment where system 100 was coupled to a Bluetooth™ network in a laptop, this can help to remind a user to secure the laptop before traveling too far from the laptop.
  • As yet another example, assume an embodiment where system 100 is part of a smart phone in which service subsystem 108 includes one or more location-sensing systems and one or more accelerometers, and in which networking subsystem 106 supports a Bluetooth™ network connection and a hard-wired connection (e.g., a 30-pin connection). In this embodiment, system 100 can detect that a hard-wired connection has lost power or that a Bluetooth™ network connection has been lost, and that a velocity at which system 100 was traveling has fallen from 65 mph to zero in a few seconds (using recorded current and prior state information for system 100). From this, system 100 can determine that a car accident may have occurred. System 100 can then perform actions such as sounding an alarm to a user that system 100 has determined that an accident may have happened to give the user a chance to cancel the action before system 100 alerts an outside party (e.g., a roadside assistance service or the authorities). In this embodiment, other information recorded about the state of system 100, such as time, traveling speed over a previous time interval, and/or location (i.e., on a highway) can be used to corroborate the determination.
  • FIG. 4 presents a flowchart illustrating a process for using location information along with other information to perform an action based on a change in a status of a network connection in accordance with the described embodiments. For the example shown in FIG. 4, we assume a location-aware portable electronic device (e.g., a laptop, a smart phone, etc.) including a system 100 that electrically connects to a hard-wired connector in a user's car for recharging a battery in the electronic device and for networking
  • As shown in FIG. 4, the process starts when the portable electronic device is electrically connected to the hard-wired connection in the user's car (step 400). In some embodiments, a notification of the connection is passed from networking subsystem 106 to processing subsystem 102, and processing subsystem 102 begins to monitor the hard-wired connection for a disconnect event. More specifically, processing subsystem 102 can monitor the delivery of electrical power through the hard-wired connection for possible losses of power. In other embodiments, processing subsystem 102 does not monitor the hard-wired connection, but instead detects losses of power for the hard-wired connection as they occur.
  • The portable electronic device then determines that the hard-wired connection has been disconnected or otherwise lost power (step 402). In some embodiments, networking subsystem 106 in the portable electronic device detects that the hard-wired connection has been disconnected or otherwise lost power. Upon detecting that the hard-wired connection has lost power, networking subsystem 106 forwards a signal to processing subsystem 102 to notify processing subsystem 102 that the hard-wired connection has lost power.
  • Processing subsystem 102 then signals service subsystem 108 to provide a current location for the portable electronic device (step 404). In response, service subsystem 108 captures a current location of the portable electronic device using a GPS system, a position tracking system, or another location sensing mechanism and forwards the location information to processing subsystem 102.
  • In addition, processing subsystem 102 signals service subsystem 108 to provide acceleration information for a predetermined time period around the time when the electrical connection for the hard-wired connection was lost (step 406). Note that these embodiments can periodically record acceleration and/or velocity and/or can detect acceleration or deceleration, including changes in velocity of greater than a predetermined amount in a given time (i.e., a change in velocity from 65 mph to 0 mph in less than 2 seconds). Providing the acceleration information can involve providing information about any deceleration for a short time before the loss of power until a short time after the loss of power. For example, 1-2 seconds before the loss of power to 1-2 seconds after the loss of power.
  • The captured location information and acceleration information is then recorded (step 408). Next, processing subsystem 102 determines if the recorded location information and acceleration information indicate that a car accident may have occurred (step 410). System 100 can then sound or display an alarm to a user that system 100 has determined that an accident may have happened to give the user a chance to cancel the action before system 100 alerts an outside party (e.g., a roadside assistance service or the authorities) (step 412). As described above, in this embodiment, other information recorded about the state of system 100, such as time, traveling speed over a previous time interval, and/or location (i.e., on a highway) can be used to corroborate the determination.
  • As a further example, assume an embodiment where system 100 is part of a netbook in which service subsystem 108 and/or processing subsystem 102 includes one or more mechanisms for providing location-sensing and personal contact management (i.e., phone/address contacts in memory subsystem 104), and that networking subsystem 106 includes one or more mechanisms for forming an ad hoc PAN with other nearby similarly equipped devices. In these embodiments, upon encountering another device that supports forming a PAN, networking subsystem 106 can form a PAN with the other device. Networking subsystem 106 can then signal processing subsystem 102 that the PAN has been formed. Processing subsystem 102 can then use information returned from one of the other subsystems (e.g., service subsystem 108 or memory subsystem 104) to perform associated actions. For example, processing subsystem 102 can upload or download predetermined information (i.e., public contact or identity information, schedule information, etc.) to or from the other device, can provide location-based information to the other device, or can perform another service.
  • In some embodiments, system 100 can perform further actions based on the identity of the user of a device with which the PAN is formed and/or based on the internal or external state of system 100 or the other device. For example, system 100 can determine that a PAN has been formed with another device and can retrieve public identity information from that device. If the device belongs to a known contact, system 100 can perform actions such as alerting the user to the presence of the person, turning down music, exchanging files intended for that person, or performing another operation.
  • FIG. 5 presents a flowchart illustrating a process for performing an action based on the formation of a PAN with another electronic device in accordance with the described embodiments. For the example shown in FIG. 5, we assume a portable electronic device (e.g., a laptop, a smart phone, etc.) including system 100 that forms ad hoc PANs with other similarly-equipped electronic devices. In addition, we assume a portable electronic device that can be configured to exchange selected information about the identity of the user of the portable electronic device and the identity of the user for other devices with which the portable electronic device forms PANs.
  • As shown in FIG. 5, the process starts when the portable electronic device forms a PAN with another similarly-equipped electronic device (step 500). For example, a smart phone can form a PAN with a second smart phone, a kiosk in the mall, a laptop or desktop computer, a security system, etc. In these embodiments, the PAN can be formed by networking subsystem 106 using techniques known in the art.
  • Upon detecting that the PAN has been formed, networking subsystem 106 forwards a notification to processing subsystem 102. Processing subsystem 102 then retrieves identity information from the other electronic device (step 502). For example, one or both devices can be smart phones that are configured to provide selected user identity information to devices with which PANs are formed. In these embodiments, when the PAN is formed, a processing subsystem 102 in each device can cause the devices to exchange the user identity information with one another (or can cause the electronic device to receive identity information from the other device without sending identity information to the other device). Processing subsystem 102 then records the identity information from the other device (step 504).
  • Processing subsystem 102 then determines if the user is a user for which an action is associated or for which processing subsystem 102 is configured to perform an action. For example, processing subsystem 102 can be configured to alert the user to the presence of the other person, turn down music when someone is at the door, exchange files intended for that person, or perform another operation. If so, based on the recorded identity information, processing subsystem 102 performs the action associated with the user (step 506).
  • In some embodiments, system 100 performs one or more actions immediately upon receiving the notification of the change in status of the network connection from networking subsystem 106. For example, assume that system 100 is in a location-aware cellular phone that includes a service (e.g., an application) for determining street traffic levels. In this embodiment, a Bluetooth™ network connection to a user's car can be determined to have been made by system 100 (using a network for the car, a time of coupling, etc.). System 100 can then immediately perform the action of checking a volume of traffic on a predetermined route (e.g., to work) to determine if an alarm should be signaled to the user to enable the user to take an alternate route due to heavy traffic on the route.
  • In some embodiments, system 100 performs one or more actions a predetermined time after receiving the notification of the change in status of the network connection from networking subsystem 106. In some of these embodiments, the information can be recorded immediately, but the action can be performed later.
  • For example, assume that the system 100 is in a laptop computer that the user typically disconnects from a first wireless network at home and wirelessly connects to a second wireless network at work 30 minutes later. In this embodiment, system 100 can detect the disconnect event from the home wireless network then and perform a check for a connection to the work wireless network 30 minutes later. If a connection to the work network is not made by the time the check occurs, system 100 can perform actions such as enabling a predetermined locking sequence (e.g., setting a predetermined password), securing sensitive data, locking hard drives, and/or disabling or otherwise limiting system capabilities. As another example, assuming the same laptop, system 100 can periodically check to see if a connection to, or a disconnection from, a given network has occurred in a predetermined amount of time (e.g., 1 hour, 1 day, 1 week, etc.). If not, one or more associated actions can be performed.
  • FIG. 6 presents a flowchart illustrating a process for performing an action a predetermined time after a disconnection from a network in accordance with the described embodiments. For the example shown in FIG. 6, we assume a laptop computer that includes a system 100 that can be configured to form wireless (e.g., IEEE 802.11 or Bluetooth™) network connections with wireless networks in a home and at work.
  • As shown in FIG. 6, the process starts when the laptop computer is disconnected from a home wireless network (step 600). In some embodiments, networking subsystem 106 determines that a wireless connection to the home wireless connection has been lost and forwards a notification to processing subsystem 102.
  • A predetermined time after receiving the notification that the wireless connection was lost, processing subsystem 102 queries networking subsystem 106 to determine if a wireless network connection has been formed with a wireless network at work (step 602). For example, processing subsystem 102 can be configured to make the connectivity query to networking subsystem 106 one week later, one day later, one hour later, or a different time later. (Note that in these embodiments, the laptop computer detects a disconnection event for the home wireless network, but does not perform the resulting action of checking for the connection to the work wireless network until the predetermined time later.)
  • If networking subsystem 106 returns an affirmation that the wireless connection has been formed with the wireless network at work, the process is complete. Otherwise, if networking subsystem 106 indicates that the wireless connection has not been formed with the wireless network at work, processing subsystem can perform one or more operations for securing the computer against possible theft or loss (step 604). For example, in these embodiments, processing subsystem 102 can secure hard drives, I/O devices (e.g., monitor, mouse, or keyboard), the operating system, or selected programs using a predetermined password or a physical key, can encrypt, conceal, or destroy sensitive data, can send an email/text message/instant message to inform security personnel or the user that the laptop may be stolen or lost, and/or can perform another action. Alternatively, processing subsystem 102 can alert the user that these operations will be performed unless a particular password is entered and/or unless the laptop is connected to one of the wireless systems before a certain time has passed.
  • Note that although we refer to particular networks in these examples, alternative embodiments use different types of networks. For example, some embodiments use Ethernet networks or other wired or wireless networks.
  • In addition to performing the action a predetermined time later in these embodiments, in some embodiments, system 100 can perform one or more actions immediately upon receiving a notification of a change in network status and can then perform one or more additional actions a predetermined time after receiving the notification.
  • In some embodiments, upon detecting a connection to a given network, system 100 can perform actions using or in combination with another device that is coupled to the network. For example, assuming that a home wireless system is coupled to a system that controls a heating system in the home, upon determining that a connection has been established with the home wireless network, system 100 can query the system that controls the heating system to find out a temperature of the home. If the temperature falls outside a preferred range, system 100 can prompt a user to activate the heating system, or can automatically activate the heating system.
  • In some embodiments, the above-described network connection status change detection and performance of actions is achieved using functional blocks in one or more of the subsystems in system 100. In other words, the status change can be detected and the actions can be performed by hardware blocks, circuits, and/or elements. In these embodiments, system 100 does not interact with an operating system or applications that may be running on processing subsystem 102 when performing the action(s). In some of these embodiments, errors in the operating system and/or applications (including maliciously generated errors) do not prevent the action from being taken.
  • Note that although we describe a number of network status changes, information that is recorded in response, and actions to be taken by a given electronic device, persons of skill in the art can use the herein described principles with different network status changes, information recorded in response, and actions taken without departing from the spirit of the disclosed embodiments.
  • Configuring Actions
  • In some embodiments, a user can manually configure system 100 to perform a given action when a predetermined network change in status occurs. For example, assuming that system 100 is used in a location-aware netbook, a user can configure system 100 so that when a Bluetooth™ network connection is lost at a given time and/or location, or when a connection to a given network is established or lost, system 100 awakes from a low-power state, records a current location, makes selected personal contact information available to other devices via the network, opens a number of user applications (email, remote login, etc.), and/or performs one or more other actions.
  • In some embodiments, system 100 can dynamically configure actions to be performed based on changes in network status. In these embodiments, system 100 can record user behavior or other operations associated with changes in network status and can use the recorded behavior or operations to determine actions to be performed when a similar change occurs in the future. In some of these embodiments, system 100 can configure the actions automatically. In other embodiments, system 100 can prompt a user to configure the actions.
  • For example, upon detecting disconnection from a wireless network or from a hard-wired connection, system 100 can record an internal and external state of system 100, and can record actions taken by a user using system 100 for a predetermined time. For example, upon disconnecting from a Bluetooth™ network connection, system 100 can determine a current time, a temperature, a set of applications accessed by the user on system 100, a location of system 100, and other internal or external states for the system 100. System 100 can then analyze the recorded user behavior to determine actions to be taken if the same change in the network status occurs in the future.
  • For example, assuming that system 100 is used in a cellular phone, system 100 can determine that a user in a particular location always sets a ringer volume to a higher level and/or silences the ringer upon disconnecting from a Bluetooth™ network in his or her car at location A (e.g., work) at 8:00 AM each morning. Based on this determination, system 100 can configure an action to occur each time the same network change in status occurs.
  • The foregoing descriptions of embodiments have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the embodiments to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the embodiments. The scope of the embodiments is defined by the appended claims.

Claims (32)

1. A method for performing an action based on a change in a status of a wired or wireless network connection for a system, comprising:
detecting the change in the status of the network connection; and
in response to detecting the change in the status:
determining a state of the system; and
performing one or more actions using the determined state.
2. The method of claim 1, wherein detecting the change in status includes detecting at least one of:
a disconnection from or a reconnection to the network connection;
a change in a signal strength of the network connection;
a change in a bandwidth of the network connection; or
an ability or inability to communicate with a predetermined second system on the network connection.
3. The method of claim 1, wherein determining the state of the system involves:
requesting one or more subsystems in the system to return information about the state of the system;
in response to the request, receiving information about the state of the system from the subsystems; and
recording the information about the state of the system.
4. The method of claim 3, wherein requesting the one or more subsystems to return information about the state of the system includes requesting the one or more subsystems to return information about one or more of a past, current, or projected future state of the system.
5. The method of claim 3, wherein the state of the system includes an internal state of the system, and wherein the requested information includes information sampled from at least one of internal hardware or software monitors in the system.
6. The method of claim 3, wherein the state of the system includes an external state of the system, and wherein the requested information includes information sampled by one or more sensors in the system about at least one of:
a geographical or physical location of the system;
a linear or angular velocity or acceleration of the system;
a directional heading of the system;
a temperature external to the system;
a tilt or rotation of the system;
an atmospheric pressure external to the system;
an intensity of light external to the system;
a level of sound external to the system; or
a time.
7. The method of claim 3, wherein returning information about a projected future state of the system involves:
acquiring one or more current or prior samples of information about a state of the system; and
generating a projected future state of the system from the acquired samples.
8. The method of claim 3, wherein recording the information includes storing the information in at least one of a volatile memory or a non-volatile memory.
9. The method of claim 1, wherein performing the action using the determined state includes at least one of:
causing one or more subsystems in the system or one or more applications in the system to perform one or more operations using the determined state; or
causing one or more other systems or one or more applications in the other systems to perform one or more operations using the determined state.
10. The method of claim 1, wherein determining the state of the system further comprises waiting a predetermined time after detecting the change in the status of the network connection before determining the state of the system.
11. The method of claim 1, wherein performing the one or more actions using the determined state further comprises waiting a predetermined time after determining a state of the system before performing at least one of the one or more actions.
12. The method of claim 1, wherein:
detecting the change in the status of the network connection comprises detecting a loss of a connection to a wired or wireless network;
determining a state of the system comprises determining a physical location of the system; and
performing one or more actions using the determined state comprises:
recording the determined physical location; and
using the recorded location to place a marker on a map in a map application.
13. The method of claim 1, wherein:
detecting the change in the status of the network connection comprises detecting a loss of a connection to a wired or wireless network;
determining a state of the system comprises determining:
a physical location of the system, and
an acceleration of the system within a predetermined time of the loss of the connection to the wired or wireless network; and
performing one or more actions using the determined state comprises:
recording the determined physical location and acceleration; and
using the recorded location and acceleration to determine if the system may have been involved in an accident.
14. The method of claim 1, wherein:
detecting the change in the status of the network connection comprises detecting a formation of a personal area network with another system;
determining a state of the system comprises:
receiving user identity information from the other system, and
determining that the system is to perform one or more actions associated with the identified user of the other system; and
performing one or more actions using the determined state comprises performing the one or more actions associated with the identified user of the other system.
15. The method of claim 1, wherein:
detecting the change in the status of the network connection comprises detecting a loss of a connection to a first wired or wireless network;
determining a state of the system comprises waiting a predetermined time and then determining whether a wired or wireless connection has been made to a second wired or wireless network; and
when a wired or wireless connection has not been made to the second wired or wireless network, performing one or more actions using the determined state comprises performing one or more operations to notify a user that the wired or wireless connection has not been made or to secure the system against theft.
16. An apparatus for performing an action based on a change in a status of a wired or wireless network connection in a system, comprising:
a networking subsystem coupled to the network connection;
a processing subsystem coupled to the networking subsystem; and
a service subsystem coupled to the processing subsystem;
wherein upon detecting the change in the status of the network connection, the networking subsystem is configured to send a signal to the processing subsystem to notify the processing subsystem that the change has occurred;
wherein upon receiving the signal from the networking subsystem, the processing subsystem is configured to request state information for the system from the service subsystem; and
wherein upon receiving the requested state information from the service subsystem, the processing subsystem is configured to perform one or more actions using the state information.
17. The apparatus of claim 16, wherein when detecting the change in the status of the network connection, the networking subsystem is configured to detect at least one of:
an establishment, loss, or termination of the network connection; or
a change in a signal strength or bandwidth of the network connection.
18. The apparatus of claim 16, wherein when requesting state information from the service subsystem, the processing subsystem is configured to request information about at least one of a prior, current, or estimated future state of the system.
19. The apparatus of claim 18, further comprising one or more hardware or software monitors coupled to the service subsystem, wherein the one or more hardware or software monitors are configured to monitor an internal state of the system;
wherein when requesting state information, the processing subsystem is configured to request internal state information acquired from one or more of the hardware or software monitors.
20. The apparatus of claim 18, further comprising one or more sensors coupled to the service subsystem, wherein the one or more sensors are configured to monitor an external state of the system including at least one of:
a geographical or physical location of the system;
a linear or angular velocity or acceleration of the system;
a directional heading of the system;
a temperature external to the system;
a tilt or rotation of the system;
an atmospheric pressure external to the system;
an intensity of light external to the system;
a level of sound external to the system; or
a time; and
wherein when requesting state information, the processing subsystem is configured to request external state information acquired from the one or more sensors.
21. The apparatus of claim 16, wherein when performing the action using the state information, the processing subsystem is configured to at least one of:
perform one or more operations using the state information;
cause one or more of the other subsystems to perform one or more operations using the state information; or
cause one or more other systems to perform one or more operations using the state information.
22. The apparatus of claim 16, wherein the processing subsystem is configured to wait a predetermined time after receiving the signal from the networking subsystem before requesting state information for the system.
23. The apparatus of claim 12, wherein the processing subsystem is configured to wait a predetermined time after receiving the state information before performing at least one of the one or more actions.
24. An electronic device for performing an action based on a change in a status of a wired or wireless network connection, comprising:
a networking subsystem coupled to the network connection;
a processing subsystem coupled to the networking subsystem;
a service subsystem coupled to the processing subsystem; and
a memory subsystem coupled to the processing subsystem, wherein the processing subsystem is configured to store data using the memory subsystem;
wherein upon detecting the change in the status of the network connection, the networking subsystem is configured to send a signal to the processing subsystem to notify the processing subsystem that the change has occurred;
wherein upon receiving the signal from the networking subsystem, the processing subsystem is configured to request state information for the system from the service subsystem; and
wherein upon receiving the requested state information from the service subsystem, the processing subsystem is configured to perform one or more actions using the state information.
25. The electronic device of claim 24, wherein when detecting the change in the status of the network connection, the networking subsystem is configured to detect at least one of:
an establishment, loss, or termination of the network connection; or
a change in a signal strength or bandwidth of the network connection.
26. The electronic device of claim 24, wherein when requesting state information from the service subsystem, the processing subsystem is configured to request information about at least one of a prior, current, or estimated future state of the system.
27. The electronic device of claim 26, further comprising one or more hardware or software monitors coupled to the service subsystem, wherein the one or more hardware or software monitors are configured to monitor an internal state of the system;
wherein when requesting state information, the processing subsystem is configured to request internal state information acquired from one or more of the hardware or software monitors.
28. The electronic device of claim 26, further comprising one or more sensors coupled to the service subsystem, wherein the one or more sensors are configured to monitor an external state of the system including at least one of:
a geographical or physical location of the system;
a linear or angular velocity or acceleration of the system;
a directional heading of the system;
a temperature external to the system;
a tilt or rotation of the system;
an atmospheric pressure external to the system;
an intensity of light external to the system;
a level of sound external to the system; or
a time; and
wherein when requesting state information, the processing subsystem is configured to request external state information acquired from the one or more sensors.
29. The electronic device of claim 24, wherein the processing subsystem is configured to record the state information in at least one of a volatile memory or a non-volatile memory in the memory subsystem.
30. The electronic device of claim 24, wherein when performing the action using the state information, the processing subsystem is configured to at least one of:
perform one or more operations using the state information;
cause one or more of the other subsystems to perform one or more operations using the state information; or
cause one or more other systems to perform one or more operations using the state information.
31. The electronic device of claim 24, wherein the processing subsystem is configured to wait a predetermined time after receiving the signal from the networking subsystem before requesting state information for the system.
32. The electronic device of claim 24, wherein the processing subsystem is configured to wait a predetermined time after receiving the state information before performing at least one of the one or more actions.
US12/581,004 2009-10-16 2009-10-16 Triggering actions based on changes in a network connection Abandoned US20110093583A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US12/581,004 US20110093583A1 (en) 2009-10-16 2009-10-16 Triggering actions based on changes in a network connection
EP10775967.2A EP2488955B1 (en) 2009-10-16 2010-10-15 Triggering actions based on changes in a network connection
CN201510148099.4A CN104836894B (en) 2009-10-16 2010-10-15 based on the change trigger action in network connection
CN2010800526727A CN102667746A (en) 2009-10-16 2010-10-15 Triggering actions based on changes in a network connection
PCT/US2010/052841 WO2011047260A2 (en) 2009-10-16 2010-10-15 Triggering actions based on changes in a network connection
JP2012534392A JP5612108B2 (en) 2009-10-16 2010-10-15 Trigger actions based on changes in network connections
US14/021,902 US8972573B2 (en) 2009-10-16 2013-09-09 Triggering actions based on changes in a network connection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/581,004 US20110093583A1 (en) 2009-10-16 2009-10-16 Triggering actions based on changes in a network connection

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/021,902 Continuation US8972573B2 (en) 2009-10-16 2013-09-09 Triggering actions based on changes in a network connection

Publications (1)

Publication Number Publication Date
US20110093583A1 true US20110093583A1 (en) 2011-04-21

Family

ID=43413957

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/581,004 Abandoned US20110093583A1 (en) 2009-10-16 2009-10-16 Triggering actions based on changes in a network connection
US14/021,902 Active US8972573B2 (en) 2009-10-16 2013-09-09 Triggering actions based on changes in a network connection

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/021,902 Active US8972573B2 (en) 2009-10-16 2013-09-09 Triggering actions based on changes in a network connection

Country Status (5)

Country Link
US (2) US20110093583A1 (en)
EP (1) EP2488955B1 (en)
JP (1) JP5612108B2 (en)
CN (2) CN104836894B (en)
WO (1) WO2011047260A2 (en)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120052870A1 (en) * 2010-08-24 2012-03-01 Research In Motion Limited Mobile Tracking
US20130331098A1 (en) * 2012-06-08 2013-12-12 Apple Inc. Automatically Determining and Alerting Users to Available Wireless Networks
US8612582B2 (en) 2008-12-19 2013-12-17 Openpeak Inc. Managed services portals and method of operation of same
US8615581B2 (en) 2008-12-19 2013-12-24 Openpeak Inc. System for managing devices and method of operation of same
US8650290B2 (en) 2008-12-19 2014-02-11 Openpeak Inc. Portable computing device and method of operation of same
US8650658B2 (en) 2010-10-25 2014-02-11 Openpeak Inc. Creating distinct user spaces through user identifiers
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US8713173B2 (en) 2008-12-19 2014-04-29 Openpeak Inc. System and method for ensuring compliance with organizational policies
US20140122589A1 (en) * 2012-11-01 2014-05-01 Research In Motion Limited System and method of transferring control of media playback between electronic devices
US8745213B2 (en) 2008-12-19 2014-06-03 Openpeak Inc. Managed services platform and method of operation of same
WO2014089435A1 (en) * 2012-12-06 2014-06-12 Miami International Securities Exchange, LLC Systems and methods for testing a financial trading system
US8788655B2 (en) 2008-12-19 2014-07-22 Openpeak Inc. Systems for accepting and approving applications and methods of operation of same
US8856322B2 (en) 2008-12-19 2014-10-07 Openpeak Inc. Supervisory portal systems and methods of operation of same
US20140351367A1 (en) * 2011-10-27 2014-11-27 Telefonaktiebolaget L M Ericsson (Publ) Caching in wireless communication networks
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9019129B2 (en) 2013-02-21 2015-04-28 Apple Inc. Vehicle location in weak location signal scenarios
US9080878B2 (en) 2013-02-21 2015-07-14 Apple Inc. Automatic identification of vehicle location
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US9106538B1 (en) 2014-09-05 2015-08-11 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US9753746B2 (en) 2008-12-19 2017-09-05 Paul Krzyzanowski Application store and intelligence system for networked telephony and digital media services devices
US20170371391A1 (en) * 2015-01-15 2017-12-28 Nec Corporation Information-processing device, control method, and program
US10121374B2 (en) 2016-06-10 2018-11-06 Apple Inc. Parking event detection and location estimation
US10168190B2 (en) 2014-04-10 2019-01-01 Samsung Electronics Co., Ltd. Electronic device and method for providing external environment information
US10182316B1 (en) 2013-08-15 2019-01-15 Apple Inc. Determining location of parked vehicle
US10841736B1 (en) * 2019-12-18 2020-11-17 Tile, Inc. Notifications in a tracking device environment
US11310135B2 (en) * 2019-06-13 2022-04-19 Toyota Motor North America, Inc. Managing transport network data access
US11792873B2 (en) 2019-06-13 2023-10-17 Toyota Motor North America, Inc. Managing transport network data access

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6057144B2 (en) * 2012-03-26 2017-01-11 パナソニックIpマネジメント株式会社 Portable terminal control device
US9674779B2 (en) 2012-10-16 2017-06-06 Telefonaktiebolaget L M Ericsson Methods for deciding when to switch between communication channel states, and network nodes therefor
JP6719946B2 (en) * 2016-03-31 2020-07-08 キヤノン株式会社 Display device
CN107547743B (en) * 2017-08-30 2020-01-21 山东恒明信息科技有限公司 Method and equipment for acquiring information content in electronic ticket
CN110213787A (en) * 2019-05-30 2019-09-06 北京小米移动软件有限公司 Wireless control method and device

Citations (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246376B1 (en) * 2000-06-28 2001-06-12 Texas Instruments Incorporated Wireless location and direction indicator for multiple devices
US20020133600A1 (en) * 2001-03-13 2002-09-19 Brian Williams Method and apparatus for establishing a protocol proxy for a mobile host terminal in a multimedia session
US6470464B2 (en) * 1999-02-23 2002-10-22 International Business Machines Corporation System and method for predicting computer system performance and for making recommendations for improving its performance
US6513120B2 (en) * 1998-03-10 2003-01-28 Fujitsu Limited Security system for transmission device
US20030191836A1 (en) * 2002-04-05 2003-10-09 Steve Murtha Projector device management system
US20030224749A1 (en) * 2002-05-31 2003-12-04 Toshiya Uozumi Semiconductor integrated circuit device for communication
US20040053591A1 (en) * 2002-09-13 2004-03-18 Tsung-Hsien Lin Calibration of a phase locked loop
US6725285B2 (en) * 2000-04-04 2004-04-20 Koninklijke Philips Electronics N.V. Communication system, controlling device and controlled device
US20040209593A1 (en) * 2003-04-17 2004-10-21 Alberth William P. Wireless mobile station loss prevention in multi-network communication systems
US20040214616A1 (en) * 2003-04-24 2004-10-28 International Business Machines Corporation Power saving system and method for mobile wireless network device
US20040259572A1 (en) * 2003-03-31 2004-12-23 Aoki Norihiro Edwin Apparatus and method to provide current location information services in a network
US20050033511A1 (en) * 2002-04-30 2005-02-10 Telmap Ltd. Dynamic navigation system
US20050079873A1 (en) * 2003-09-26 2005-04-14 Rami Caspi System and method for centrally-hosted presence reporting
US20050193100A1 (en) * 2004-03-01 2005-09-01 Woolf Susan D. System and method for configuring a computer according to a detected network
US20050223115A1 (en) * 1998-10-09 2005-10-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US20050223114A1 (en) * 1998-10-09 2005-10-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7020881B2 (en) * 1993-07-30 2006-03-28 Canon Kabushiki Kaisha System for receiving description information from a network device and automatically generate a control panel at a controller for controlling the device
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US20060258313A1 (en) * 2002-05-31 2006-11-16 Toshiya Uozumi Circuit having a multi-band oscillator and compensating oscillation frequency
US7155518B2 (en) * 2001-01-08 2006-12-26 Interactive People Unplugged Ab Extranet workgroup formation across multiple mobile virtual private networks
US7158811B2 (en) * 2004-01-24 2007-01-02 Samsung Electronics Co., Ltd. Circuit for supplying ear-microphone bias power for ear/microphone in mobile terminal
US20070135091A1 (en) * 2005-12-08 2007-06-14 Wassingbo Tomas K Electronic equipment with call key lock and program for providing the same
US7260835B2 (en) * 2001-06-19 2007-08-21 Intel Corporation Bluetooth™ based security system
US20070275709A1 (en) * 2006-05-24 2007-11-29 Nec Corporation Unauthorized device-use prevention system and device
US7336929B2 (en) * 2004-07-05 2008-02-26 Sony Ericsson Mobile Communications Japan, Inc. Short range wireless communication system, portable terminal apparatus, and wireless communication apparatus
US20080058031A1 (en) * 2006-08-31 2008-03-06 Lg Electronics Inc. Apparatus and method of optimizing the power saving in a handset with wlan and bluetooth™
US20080091347A1 (en) * 2006-10-16 2008-04-17 Eric Tashiro Map matching method and apparatus for navigation system
US20080100706A1 (en) * 2002-06-11 2008-05-01 Intelligent Technologies International, Inc. Asset Monitoring System Using Multiple Imagers
US7387607B2 (en) * 2005-06-06 2008-06-17 Intel Corporation Wireless medical sensor system
US20080228395A1 (en) * 2006-07-25 2008-09-18 Toyota Jidosha Kabushiki Kaisha Positioning Device, and Navigation System
US20090207014A1 (en) * 2008-02-20 2009-08-20 Mourad Ben Ayed Systems for monitoring proximity to prevent loss or to assist recovery
US20090210532A1 (en) * 2006-01-31 2009-08-20 Matsushita Electric Industrial Co., Ltd. Method for selective service updates for communication networks
US20100022217A1 (en) * 2008-07-22 2010-01-28 Nissaf Ketari Proximity access and/or alarm apparatus
US7668556B2 (en) * 2004-06-30 2010-02-23 Sony Ericsson Mobile Communications Japan, Inc. Communication system, communication terminal apparatus and wireless key apparatus
US8266296B2 (en) * 1998-10-07 2012-09-11 East Texas Technology Partners, Lp Application-layer evaluation of communications received by a mobile device

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2761837B1 (en) * 1997-04-08 1999-06-11 Sophie Sommelet NAVIGATION AID DEVICE HAVING A DISTRIBUTED INTERNET-BASED ARCHITECTURE
US6463298B1 (en) * 1997-09-29 2002-10-08 Qualcomm Incorporated Method of acquiring an alternate communication system upon failure of reverse link communications
WO2000079218A1 (en) * 1999-06-22 2000-12-28 Mitsubishi Denki Kabushiki Kaisha Mobile terminal and server in navigation system
WO2002087152A1 (en) * 2001-04-18 2002-10-31 Caveo Technology, Llc Universal, customizable security system for computers and other devices
US20020187804A1 (en) * 2001-04-27 2002-12-12 Murali Narasimha Wireless terminals and methods that can acquire a CDMA system while continuing to receive paging messages from an AMPS system
US20030151478A1 (en) * 2001-10-02 2003-08-14 Dejan Radosavljevic Protection device with lockout test
US7277705B2 (en) * 2002-12-23 2007-10-02 Qualcomm Incorporated Method, apparatus, and system for selecting a service provider system
JP2005223518A (en) * 2004-02-04 2005-08-18 Seiko Epson Corp Image supplying apparatus, image storing apparatus, automatic storing system and image storing method
KR100687195B1 (en) * 2004-12-02 2007-02-27 엘지전자 주식회사 Apparatus and method for using of map information in mobile communication station equipped with traffic card
JP2006171868A (en) * 2004-12-13 2006-06-29 Canon Inc Printing device
CN1916569A (en) * 2005-08-19 2007-02-21 佛山市顺德区顺达电脑厂有限公司 Self-sensing positioning system
JP2008293208A (en) * 2007-05-23 2008-12-04 Fuji Heavy Ind Ltd Vehicular emergency reporting apparatus
JP4626643B2 (en) * 2007-11-12 2011-02-09 株式会社デンソー Information distribution system, information management server, and information distribution apparatus
US20140028477A1 (en) * 2012-07-24 2014-01-30 Apple Inc. Vehicle location system

Patent Citations (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020881B2 (en) * 1993-07-30 2006-03-28 Canon Kabushiki Kaisha System for receiving description information from a network device and automatically generate a control panel at a controller for controlling the device
US6513120B2 (en) * 1998-03-10 2003-01-28 Fujitsu Limited Security system for transmission device
US8266296B2 (en) * 1998-10-07 2012-09-11 East Texas Technology Partners, Lp Application-layer evaluation of communications received by a mobile device
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7574208B2 (en) * 1998-10-09 2009-08-11 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8078727B2 (en) * 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US20050223115A1 (en) * 1998-10-09 2005-10-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US20050223114A1 (en) * 1998-10-09 2005-10-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6470464B2 (en) * 1999-02-23 2002-10-22 International Business Machines Corporation System and method for predicting computer system performance and for making recommendations for improving its performance
US6725285B2 (en) * 2000-04-04 2004-04-20 Koninklijke Philips Electronics N.V. Communication system, controlling device and controlled device
US6246376B1 (en) * 2000-06-28 2001-06-12 Texas Instruments Incorporated Wireless location and direction indicator for multiple devices
US7155518B2 (en) * 2001-01-08 2006-12-26 Interactive People Unplugged Ab Extranet workgroup formation across multiple mobile virtual private networks
US20020133600A1 (en) * 2001-03-13 2002-09-19 Brian Williams Method and apparatus for establishing a protocol proxy for a mobile host terminal in a multimedia session
US7260835B2 (en) * 2001-06-19 2007-08-21 Intel Corporation Bluetooth™ based security system
US20030191836A1 (en) * 2002-04-05 2003-10-09 Steve Murtha Projector device management system
US20050033511A1 (en) * 2002-04-30 2005-02-10 Telmap Ltd. Dynamic navigation system
US7103337B2 (en) * 2002-05-31 2006-09-05 Hitachi, Ltd. PLL circuit having a multi-band oscillator and compensating oscillation frequency
US20060258313A1 (en) * 2002-05-31 2006-11-16 Toshiya Uozumi Circuit having a multi-band oscillator and compensating oscillation frequency
US20030224749A1 (en) * 2002-05-31 2003-12-04 Toshiya Uozumi Semiconductor integrated circuit device for communication
US20080100706A1 (en) * 2002-06-11 2008-05-01 Intelligent Technologies International, Inc. Asset Monitoring System Using Multiple Imagers
US20040053591A1 (en) * 2002-09-13 2004-03-18 Tsung-Hsien Lin Calibration of a phase locked loop
US7024192B2 (en) * 2003-03-31 2006-04-04 America Online, Incorported Apparatus and method to provide current location information services in a network
US20040259572A1 (en) * 2003-03-31 2004-12-23 Aoki Norihiro Edwin Apparatus and method to provide current location information services in a network
US20040209593A1 (en) * 2003-04-17 2004-10-21 Alberth William P. Wireless mobile station loss prevention in multi-network communication systems
US20040214616A1 (en) * 2003-04-24 2004-10-28 International Business Machines Corporation Power saving system and method for mobile wireless network device
US20050079873A1 (en) * 2003-09-26 2005-04-14 Rami Caspi System and method for centrally-hosted presence reporting
US7158811B2 (en) * 2004-01-24 2007-01-02 Samsung Electronics Co., Ltd. Circuit for supplying ear-microphone bias power for ear/microphone in mobile terminal
US20050193100A1 (en) * 2004-03-01 2005-09-01 Woolf Susan D. System and method for configuring a computer according to a detected network
US7668556B2 (en) * 2004-06-30 2010-02-23 Sony Ericsson Mobile Communications Japan, Inc. Communication system, communication terminal apparatus and wireless key apparatus
US7336929B2 (en) * 2004-07-05 2008-02-26 Sony Ericsson Mobile Communications Japan, Inc. Short range wireless communication system, portable terminal apparatus, and wireless communication apparatus
US7387607B2 (en) * 2005-06-06 2008-06-17 Intel Corporation Wireless medical sensor system
US20070135091A1 (en) * 2005-12-08 2007-06-14 Wassingbo Tomas K Electronic equipment with call key lock and program for providing the same
US20090210532A1 (en) * 2006-01-31 2009-08-20 Matsushita Electric Industrial Co., Ltd. Method for selective service updates for communication networks
US20070275709A1 (en) * 2006-05-24 2007-11-29 Nec Corporation Unauthorized device-use prevention system and device
US20080228395A1 (en) * 2006-07-25 2008-09-18 Toyota Jidosha Kabushiki Kaisha Positioning Device, and Navigation System
US20080058031A1 (en) * 2006-08-31 2008-03-06 Lg Electronics Inc. Apparatus and method of optimizing the power saving in a handset with wlan and bluetooth™
US20080091347A1 (en) * 2006-10-16 2008-04-17 Eric Tashiro Map matching method and apparatus for navigation system
US20090207014A1 (en) * 2008-02-20 2009-08-20 Mourad Ben Ayed Systems for monitoring proximity to prevent loss or to assist recovery
US20100022217A1 (en) * 2008-07-22 2010-01-28 Nissaf Ketari Proximity access and/or alarm apparatus

Cited By (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788655B2 (en) 2008-12-19 2014-07-22 Openpeak Inc. Systems for accepting and approving applications and methods of operation of same
US9753746B2 (en) 2008-12-19 2017-09-05 Paul Krzyzanowski Application store and intelligence system for networked telephony and digital media services devices
US8612582B2 (en) 2008-12-19 2013-12-17 Openpeak Inc. Managed services portals and method of operation of same
US8615581B2 (en) 2008-12-19 2013-12-24 Openpeak Inc. System for managing devices and method of operation of same
US8650290B2 (en) 2008-12-19 2014-02-11 Openpeak Inc. Portable computing device and method of operation of same
US8713173B2 (en) 2008-12-19 2014-04-29 Openpeak Inc. System and method for ensuring compliance with organizational policies
US8856322B2 (en) 2008-12-19 2014-10-07 Openpeak Inc. Supervisory portal systems and methods of operation of same
US8745213B2 (en) 2008-12-19 2014-06-03 Openpeak Inc. Managed services platform and method of operation of same
US20120052870A1 (en) * 2010-08-24 2012-03-01 Research In Motion Limited Mobile Tracking
US8886212B2 (en) * 2010-08-24 2014-11-11 Blackberry Limited Mobile tracking
US9122885B1 (en) 2010-10-25 2015-09-01 Openpeak, Inc. Creating distinct user spaces through user identifiers
US8650658B2 (en) 2010-10-25 2014-02-11 Openpeak Inc. Creating distinct user spaces through user identifiers
US9836616B2 (en) 2010-10-25 2017-12-05 Openpeak Llc Creating distinct user spaces through user identifiers
US8856959B2 (en) 2010-10-25 2014-10-07 Openpeak Inc. Creating distinct user spaces through user identifiers
US9135418B2 (en) 2011-10-10 2015-09-15 Openpeak Inc. System and method for creating secure applications
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US9165139B2 (en) 2011-10-10 2015-10-20 Openpeak Inc. System and method for creating secure applications
US20140351367A1 (en) * 2011-10-27 2014-11-27 Telefonaktiebolaget L M Ericsson (Publ) Caching in wireless communication networks
US10791194B2 (en) 2011-10-27 2020-09-29 Telefonaktiebolaget Lm Ericsson (Publ) Caching in wireless communication networks
US9967362B2 (en) * 2011-10-27 2018-05-08 Telefonaktiebolaget Lm Ericsson (Publ) Caching in wireless communication networks
US20130331098A1 (en) * 2012-06-08 2013-12-12 Apple Inc. Automatically Determining and Alerting Users to Available Wireless Networks
US9843607B2 (en) * 2012-11-01 2017-12-12 Blackberry Limited System and method of transferring control of media playback between electronic devices
US20140122589A1 (en) * 2012-11-01 2014-05-01 Research In Motion Limited System and method of transferring control of media playback between electronic devices
WO2014089435A1 (en) * 2012-12-06 2014-06-12 Miami International Securities Exchange, LLC Systems and methods for testing a financial trading system
US8874479B2 (en) 2012-12-06 2014-10-28 Miami International Securities Exchange, LLC Systems and methods for testing a financial trading system
US9019129B2 (en) 2013-02-21 2015-04-28 Apple Inc. Vehicle location in weak location signal scenarios
US9080878B2 (en) 2013-02-21 2015-07-14 Apple Inc. Automatic identification of vehicle location
US10182316B1 (en) 2013-08-15 2019-01-15 Apple Inc. Determining location of parked vehicle
US10168190B2 (en) 2014-04-10 2019-01-01 Samsung Electronics Co., Ltd. Electronic device and method for providing external environment information
US10410154B2 (en) 2014-09-05 2019-09-10 Vmware, Inc. Method and system for enabling data usage accounting through a relay
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9106538B1 (en) 2014-09-05 2015-08-11 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9232012B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for data usage accounting in a computing device
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US10943198B2 (en) 2014-09-05 2021-03-09 Vmware, Inc. Method and system for enabling data usage accounting through a relay
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US11150713B2 (en) * 2015-01-15 2021-10-19 Nec Corporation Information-processing device, control method, and program
US20170371391A1 (en) * 2015-01-15 2017-12-28 Nec Corporation Information-processing device, control method, and program
US10121374B2 (en) 2016-06-10 2018-11-06 Apple Inc. Parking event detection and location estimation
US11310135B2 (en) * 2019-06-13 2022-04-19 Toyota Motor North America, Inc. Managing transport network data access
US11792873B2 (en) 2019-06-13 2023-10-17 Toyota Motor North America, Inc. Managing transport network data access
WO2021126669A1 (en) * 2019-12-18 2021-06-24 Tile, Inc. Notifications in a tracking device environment
US10841736B1 (en) * 2019-12-18 2020-11-17 Tile, Inc. Notifications in a tracking device environment
US11272319B2 (en) 2019-12-18 2022-03-08 Tile, Inc. Notifications in a tracking device environment
US11812332B2 (en) 2019-12-18 2023-11-07 Tile, Inc. Notifications in a tracking device environment

Also Published As

Publication number Publication date
WO2011047260A2 (en) 2011-04-21
EP2488955B1 (en) 2015-11-25
US20140082181A1 (en) 2014-03-20
CN104836894A (en) 2015-08-12
WO2011047260A3 (en) 2011-07-14
CN102667746A (en) 2012-09-12
EP2488955A2 (en) 2012-08-22
JP5612108B2 (en) 2014-10-22
US8972573B2 (en) 2015-03-03
JP2013509038A (en) 2013-03-07
CN104836894B (en) 2018-02-27

Similar Documents

Publication Publication Date Title
US8972573B2 (en) Triggering actions based on changes in a network connection
US11375349B2 (en) Electronic-device detection and activity association
TWI566210B (en) Tracking a mobile device
US9198155B2 (en) Task management based on travel distance
WO2018192129A1 (en) Positioning method and device for carsharing and terminal device
US11070934B2 (en) Tracking device location identification
JP6452250B2 (en) System and method for measuring congestion of people in one place
US20120129545A1 (en) Systems and methods for selectively invoking positioning systems for mobile device control applications using multiple sensing modalities
US20120129460A1 (en) Systems and methods for selectively invoking positioning systems for mobile device control applications using wireless network measurements
US11610470B1 (en) Systems and methods for crowdsourcing detected events
JP2015520462A (en) Method, apparatus and system for remote login control
US8633818B2 (en) Mobile and automated emergency service provider contact system
WO2014200706A1 (en) Non-intrusive region notification
WO2017045295A1 (en) Security state identifying and alarming method and system for intelligent terminal, and intelligent terminal
WO2014121742A1 (en) Cable for implementing loss prevention of mobile device
US9801013B2 (en) Electronic-device association based on location duration
US20170134653A1 (en) Software-enabled dual-mode security device
US20170131758A1 (en) Security device without power-saving transitions
CN103843372A (en) Authenticating a user's location in a femtocell-based network
Lee et al. Smart insulating container with anti-theft features by M2M tracking
US9021101B2 (en) Using a property of a received signal to determine a device for forming a network connection
CN111758283B (en) Method for determining relative proximity of wireless networking devices
WO2017079407A2 (en) Software-enabled dual-mode security device
CN116264584A (en) Equipment monitoring method and electronic equipment
WO2016177932A1 (en) Positioning arrangement

Legal Events

Date Code Title Description
AS Assignment

Owner name: APPLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PIEMONTE, PATRICK S.;PRATS, AUGUSTIN;REEL/FRAME:023516/0805

Effective date: 20091016

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION