IP Library › Granted Patent US 9,137,737
Granted Patent B2
US 9,137,737 · App. 13/490,408 · Granted Sep 15, 2015

Systems and methods for monitoring of background application events

Inventors: Arnaud Meylan (San Diego, CA); Liat Ben-Zur (San Diego, CA); Gerardo Giaretta (San Diego, CA); Tejash R. Shah (San Diego, CA)
Assignee: Qualcomm Incorporated
H04W48/08H04B17/26H04W52/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,137,737
App. No.
13/490,408
Granted
Sep 15, 2015
Kind
B2
Abstract

Systems, methods, and devices for implementing a communication access policy are described herein. In some aspects, a wireless device is configured to execute a plurality of applications and to communicate with a communication network. The wireless device comprises a receiver configured to receive a plurality of rules specifying how one or more of the plurality of applications should communicate with the communication network. The wireless device comprises a processor configured to delay communication by one or more of the plurality of applications in compliance with the rules. The processor is further configured to allow transmission of the communication by one or more of the plurality of applications after termination of the delay. In one aspect, the processor is configured to separately record communication statistics based on whether the device is in a background or foreground state.

Claims (135)

1. A wireless device comprising:

a network interface configured to exchange data with a communication network;

an input device configured to receive one or more inputs; and

a processor electrically connected to the network interface, the processor being configured to:

determine whether the device is in a background state or a foreground state based on the presence or absence of one or more inputs;

execute a plurality of applications configured to communicate with the communication network via the network interface;

collect one or more communication statistics, for one or more of the plurality of applications, when the device is in the background state; and

when the device is in the foreground state, either:

collect, separately from the communication statistics collected when the device is in the background state, the one or more communication statistics; or

refrain from collecting the one or more communication statistics; and

wherein the network interface is further configured to receive an instruction from a server, the instruction comprising at least one of:

a list of applications the processor should include and/or exclude when delaying communications; or

a list of application socket operations the processor should include and/or exclude when delaying communications.

2. The wireless device of claim 1 , wherein the network interface is further configured to transmit the communication statistics to the server.

3. The wireless device of claim 2 ,

wherein the processor is further configured to collect the one or more communication statistics in accordance with the instruction.

4. The wireless device of claim 2 ,

wherein the network interface is configured to report the one or more communication statistics in accordance with the instruction.

5. The wireless device of claim 1 , wherein the processor is further configured to:

intercept a communication from an application;

determine whether the application generated the intercepted communication while the device is in background state; and

separately collect the one or more communication statistics for the intercepted communication when the application generated the intercepted communication in response to a foreground state.

6. The wireless device of claim 2 ,

wherein the processor is further configured to delay one or more communications in accordance with the instruction.

7. The wireless device of claim 3 , wherein the instruction comprises a list of applications the processor should include and/or exclude when collecting the communication statistics.

8. The wireless device of claim 3 , wherein the instruction comprises a list of socket operations the processor should include and/or exclude when collecting the communication statistics.

9. The wireless device of claim 4 , wherein the instruction comprises a list of communication networks over which the network interface should transmit the communication statistics.

10. The wireless device of claim 4 , wherein the instruction comprises instructions indicating when the network interface should transmit the communication statistics.

11. The wireless device of claim 1 , wherein the communication statistics comprise a list of applications active during the background mode.

12. The wireless device of claim 1 , wherein the communication statistics comprise, for each application, a number of connections initiated by one or more applications during background mode.

13. The wireless device of claim 1 , wherein the communication statistics comprise, for each application, an amount of data transferred during the background mode, and wherein the communication statistics comprise one or more socket operations and a count of the number of socket operations performed.

14. The wireless device of claim 1 , wherein the processor is configured to classify the communication statistics by application and socket operation type.

15. The wireless device of claim 14 , wherein the socket operation type comprises at least one operation from the list of: bind( ), connect( ), accept( ), send( ), recv( ), write( ), read( ), sendto( ), recvfrom( ), close( ), gethostbyname( ), and gethostbyaddr( ).

16. The wireless device of claim 1 , wherein the communication statistics comprise a time at which the processor began collecting the communication statistics and a time at which the processor ceased collecting the communication statistics.

17. The apparatus of claim 1 , wherein the communication statistics comprise information identifying a communication interface used for one or more socket operations.

18. A method of collecting application communication statistics, the method comprising:

determining whether a device is in a foreground state or a background state based on the presence or absence of one or more inputs;

executing a plurality of applications configured to communicate with a communication network;

collecting one or more communication statistics, for one or more of the plurality of applications, when the device is in the background state;

when the device is in the foreground state, either:

collecting, separately from the communication statistics collected when the device is in the background state, the one or more communication statistics; or

refraining from collecting the one or more communication statistics; and

receive an instruction from a server, the instruction comprising at least one of:

a list of applications the processor should include and/or exclude when delaying communications; or

a list of application socket operations the processor should include and/or exclude when delaying communications.

19. The method of claim 18 , further comprising transmitting the communication statistics to the server.

20. The method of claim 19 , further comprising

collecting the one or more communication statistics in accordance with the instruction.

21. The method of claim 19 , further comprising

transmitting the one or more communication statistics in accordance with the instruction.

22. The method of claim 18 , further comprising:

intercepting a communication from an application;

determining whether the application generated the intercepted communication in response to a user interface input; and

separately collecting the one or more communication statistics for the intercepted communication when the application generated the intercepted communication in response to a user interface input.

23. The method of claim 19 , further comprising

delaying one or more communications in accordance with the instruction.

24. The method of claim 20 , wherein the instruction comprises a list of applications to include and/or exclude when collecting the communication statistics.

25. The method of claim 20 , wherein the instruction comprises a list of socket operations to include and/or exclude when collecting the communication statistics.

26. The method of claim 21 , wherein the instruction comprises a list of communication networks over which the communication statistics should be transmitted.

27. The method of claim 21 , wherein the instruction comprises instructions indicating when the communication statistics should be transmitted.

28. The method of claim 18 , wherein the communication statistics comprise a list of applications active during the background mode.

29. The method of claim 18 , wherein the communication statistics comprise, for each application, a number of connections initiated by one or more applications during the background mode.

30. The method of claim 18 , wherein the communication statistics comprise, for each application, an amount of data transferred during the background mode, and wherein the communication statistics comprise one or more socket operations and a count of the number of socket operations performed.

31. The method of claim 18 , further comprising classifying the communication statistics by application and socket operation type.

32. The method of claim 31 , wherein the socket operation type comprises at least one operation from the list of: bind( ), connect( ), accept( ), send( ), recv( ), write( ), read( ), sendto( ), recvfrom( ), close( ) gethostbyname( ), and gethostbyaddr( ).

33. The method of claim 18 , wherein the communication statistics comprise a time at which collection of the communication statistics and a time at which collection of the communication statistics.

34. The method of claim 18 , wherein the communication statistics comprise information identifying a communication interface used for one or more socket operations.

35. An apparatus for collecting application communication statistics, the apparatus comprising:

means for determining whether the apparatus is in a foreground state or a background state based on the presence or absence of one or more inputs;

means for executing a plurality of applications configured to communicate with a communication network;

means for collecting one or more communication statistics, for one or more of the plurality of applications, when the apparatus is in the background state;

either:

means for collecting, separately from the communication statistics collected when the device is in the background state, the one or more communication statistics when the device is in the foreground state; or

means for refraining from collecting the one or more communication statistics when the device is in the foreground state: and

means for receiving an instruction from a server, the instruction comprising at least one of:

a list of applications the processor should include and/or exclude when delaying communications; or

a list of application socket operations the processor should include and/or exclude when delaying communications.

36. The apparatus of claim 35 , further comprising means for transmitting the communication statistics to the server.

37. The apparatus of claim 36 , further comprising

means for collecting the one or more communication statistics in accordance with the instruction.

38. The apparatus of claim 36 , further comprising

means for transmitting the one or more communication statistics in accordance with the instruction.

39. The apparatus of claim 35 , further comprising:

means for intercepting a communication from an application;

means for determining whether the application generated the intercepted communication in response to a user interface input; and

means for separately collecting the one or more communication statistics for the intercepted communication when the application generated the intercepted communication in response to a user interface input.

40. The apparatus of claim 36 , further comprising

means for delaying one or more communications in accordance with the instruction.

41. The apparatus of claim 37 , wherein the instruction comprises a list of applications to include and/or exclude when collecting the communication statistics.

42. The apparatus of claim 37 , wherein the instruction comprises a list of socket operations to include and/or exclude when collecting the communication statistics.

43. The apparatus of claim 38 , wherein the instruction comprises a list of communication networks over which the communication statistics should be transmitted.

44. The apparatus of claim 38 , wherein the instruction comprises instructions indicating when the communication statistics should be transmitted.

45. The apparatus of claim 35 , wherein the communication statistics comprise a list of applications active during the background mode.

46. The apparatus of claim 35 , wherein the communication statistics comprise, for each application, a number of connections initiated by one or more applications during the background mode.

47. The apparatus of claim 35 , wherein the communication statistics comprise, for each application, an amount of data transferred during the background mode, and wherein the communication statistics comprise one or more socket operations and a count of the number of socket operations performed.

48. The apparatus of claim 35 , further comprising means for classifying the communication statistics by application and socket operation type.

49. The apparatus of claim 48 , wherein the socket operation type comprises at least one operation from the list of: bind( ), connect( ), accept( ), send( ), recv( ), write( ), read( ), sendto( ), recvfrom( ), close( ), gethostbyname( ), and gethostbyaddr( ).

50. The apparatus of claim 35 , wherein the communication statistics comprise a time at which the means for collecting began collecting the communication statistics and a time at which the means for collecting ceased collecting the communication statistics.

51. The apparatus of claim 35 , wherein the communication statistics comprise information identifying a communication interface used for one or more socket operations.

52. A non-transitory computer-readable medium comprising code that, when executed, causes an apparatus to:

determine whether the apparatus is in a foreground state or a background state based on the presence or absence of one or more inputs;

execute a plurality of applications configured to communicate with a communication network;

collect one or more communication statistics, for one or more of the plurality of applications, when the apparatus is in the background state;

when the apparatus is in the foreground state, either:

collect, separately from the communication statistics collected when the apparatus is in the background state, the one or more communication statistics; or

refrain from collecting the communication statistics: and

receive an instruction from a server, the instruction comprising at least one of:

a list of applications the processor should include and/or exclude when delaying communications; or

a list of application socket operations the processor should include and/or exclude when delaying communications.

53. The medium of claim 52 , further comprising code that, when executed, causes the apparatus to transmit the communication statistics to the server.

54. The medium of claim 53 , further comprising code that, when executed, causes the apparatus to

collect the one or more communication statistics in accordance with the instruction.

55. The medium of claim 53 , further comprising code that, when executed, causes the apparatus to

transmit the one or more communication statistics in accordance with the instruction.

56. The medium of claim 52 , further comprising code that, when executed, causes the apparatus to:

intercept a communication from an application;

determine whether the application generated the intercepted communication in response to a user interface input; and

separately collect the one or more communication statistics for the intercepted communication when the application generated the intercepted communication in response to a user interface input.

57. The medium of claim 53 , further comprising code that, when executed, causes the apparatus to

delay one or more communications in accordance with the instruction.

58. The medium of claim 54 , wherein the instruction comprises a list of applications to include and/or exclude when collecting the communication statistics.

59. The medium of claim 55 , wherein the instruction comprises a list of socket operations to include and/or exclude when collecting the communication statistics.

60. The medium of claim 55 , wherein the instruction comprises a list of communication networks over which the communication statistics should be transmitted.

61. The medium of claim 55 , wherein the instruction comprises instructions indicating when the communication statistics should be transmitted.

62. The medium of claim 52 , wherein the communication statistics comprise a list of applications active during the background mode.

63. The medium of claim 52 , wherein the communication statistics comprise, for each application, a number of connections initiated by one or more applications during the background mode.

64. The medium of claim 52 , wherein the communication statistics comprise, for each application, an amount of data transferred during the background mode, and wherein the communication statistics comprise one or more socket operations and a count of the number of socket operations performed.

65. The medium of claim 52 , further comprising code that, when executed, causes the apparatus to classify the communication statistics by application and socket operation type.

66. The apparatus medium of claim 65 , wherein the socket operation type comprises at least one operation from the list of: bind( ), connect( ), accept( ), send( ), recv( ), write( ), read( ), sendto( ), recvfrom( ), close( ), gethostbyname( ), and gethostbyaddr( ).

67. The medium of claim 52 , wherein the communication statistics comprise a time at which the apparatus began collecting the communication statistics and a time at which the means for collecting ceased collecting the communication statistics.

68. The medium of claim 52 , wherein the communication statistics comprise a information identifying a communication interface used for one or more socket operations.

69. The medium of claim 52 , further comprising code that, when executed, causes the apparatus to classify the communication statistics by application and socket operation type.

70. The medium of claim 69 , wherein the socket operation type comprises at least one operation from the list of: bind( ), connect( ), accept( ), send( ), recv( ), write( ), read( ), sendto( ), recvfrom( ), close( ), gethostbyname( ), and gethostbyaddr( ).

71. The medium of claim 52 , wherein the communication statistics comprise a time at which collection of the communication statistics and a time at which collection of the communication statistics.

72. The medium of claim 52 , wherein the communication statistics comprise information identifying a communication interface used for one or more socket operations.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2012
From: MEYLAN, ARNAUD; BEN-ZUR, LIAT; GIARETTA, GERARDO; SHAH, TEJASH R
To: QUALCOMM INCORPORATED
Reel/Frame 028331/0471 →
Continuity (3)
Provisional Application 61543701 · Oct 5, 2011
Provisional Application 61528628 · Aug 29, 2011
Related Publication 20130052965A1 · Feb 28, 2013