IP Library Granted Patent US 8,595,186
Granted Patent B1
US 8,595,186 · App. 12/135,089 · Granted Nov 26, 2013

System and method for building and delivering mobile widgets

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 8,595,186
App. No.
12/135,089
Granted
Nov 26, 2013
Kind
B1
Abstract

Systems and methods are provided for creating, publishing, sharing, and delivering mobile software applications called “mobile widgets” onto mobile devices. A system may include functionality to render a declaratory component of a widget, such as HTML, and also functionality to execute an imperative component of a widget, which may or may not be compiled and/or in a scripting or functional language. Mechanisms for providing common access to disparate device capabilities APIs are also provided, as are mechanisms for installing widgets onto mobile devices and managing those widgets.

Claims (91)

1. A mobile device, comprising:

at least one processor;

memory storing instructions, the instructions comprising:

instructions for a declaratory markup language renderer configured to instruct the at least one processor to render a declaratory markup language component of a widget application on a display of the mobile device;

instructions for a compiled programming language execution engine configured to instruct the at least one processor to execute a compiled programming language component of a widget application installed on the mobile device;

instructions for a mobile device API, adapted to be accessible to a widget application, and providing access to a device service API of the mobile device; and

instructions for a widget manager configured to instruct the at least one processor to: crawl one or more remote network resources accessible via a network for widget applications; to automatically determine one or more of the widget applications for download based on a user profile associated with the mobile device; to automatically download the one or more widget applications, from a remote network location to the mobile device, to constitute a set of downloaded widget applications; and to install the set of downloaded widget applications, wherein the downloading and installing are based on the user profile associated with the mobile device, without user interaction with the mobile device;

wherein the set of downloaded widget applications corresponds to a first set of widget applications; and

instructions for the widget manager configured to instruct the at least one processor to automatically uninstall one or both of the first set of widget applications and a second set of widget applications on the mobile device based at least in part on user preferences, without user interaction with the mobile device.

2. The mobile device of claim 1 , wherein the instructions for the widget manager are further configured to instruct the at least one processor to initiate displays of the set of downloaded widget applications or descriptions of the set of downloaded widget applications on the display of the mobile device.

3. The mobile device of claim 1 , wherein the instructions for the widget manager are further configured to instruct the at least one processor to automatically download descriptions of widget applications from a network location to the mobile device based on the user profile associated with the mobile device.

4. The mobile device of claim 1 , wherein the instructions for the widget manager are further configured to instruct the at least one processor to delete widget applications from the mobile device one or both of the first set of widget applications and a second set of widget applications on the mobile device based at least in part on user preferences, without user interaction with the mobile device.

5. The mobile device of claim 1 , wherein the instructions for the widget manager are further configured to instruct the at least one processor to:

receive a search query from a user of the mobile device; and

send the query to the network location to initiate a search for widget applications related to the query.

6. The mobile device of claim 5 , wherein the instructions for the widget manager are further configured to instruct the at least one processor to:

receive widget applications or descriptions of widget applications in response to the query, from the network location or a different network location, the received widget applications or descriptions being related to the query; and

display the received widget applications or descriptions of widget applications on the display of the mobile device.

7. The mobile device of claim 1 , wherein the instructions for the compiled programming language execution engine provide access to the device service API of the mobile device.

8. The mobile device of claim 1 , wherein the compiled programming language execution engine is a compiled scripting language execution engine.

9. The mobile device of claim 8 , wherein the instructions for the compiled scripting language execution engine instruct the at least one processor to execute compiled JavaScript.

10. The mobile device of claim 8 , wherein the instructions for the compiled scripting language execution engine instruct the at least one processor to execute bytecode.

11. The mobile device of claim 8 , wherein the instructions for the compiled scripting language execution engine instruct the at least one processor to execute object code.

12. The mobile device of claim 1 , further comprising instructions for an installation component configured to instruct the at least one processor to permanently install a widget application onto the mobile device.

13. The mobile device of claim 1 , wherein the instructions for the declaratory markup language renderer are configured to instruct the at least one processor to render images and/or video on a mobile device display.

14. The mobile device of claim 1 , wherein the device service API is an API for a camera of the mobile device.

15. The mobile device of claim 1 , wherein the device service API is an API for a video-recorder of the mobile device.

16. The mobile device of claim 1 , wherein the device service API is an API for displaying content in a home screen of the display of the mobile device.

17. The mobile device of claim 1 , wherein the device service API is an API for a touchscreen of the mobile device.

18. The mobile device of claim 1 , wherein the device service API is an API for a transceiver of the mobile device.

19. The mobile device of claim 1 , wherein the device service API is an API for a raw network connection of the mobile device.

20. The mobile device of claim 1 , wherein the device service API is an API for a network socket.

21. The mobile device of claim 1 , wherein the device service API is an API for an audio speaker of the mobile device.

22. The mobile device of claim 1 , wherein the device service API is an API for a global positioning system (GPS) device of the mobile device.

23. The mobile device of claim 1 , wherein the device service API is an API for a microphone of the mobile device.

24. The mobile device of claim 1 , wherein the device service API is an API for using an email software program on the mobile device.

25. The mobile device of claim 1 , wherein the device service API is an API for using a software calendar of the mobile device.

26. The mobile device of claim 1 , wherein the device service API is an API for accessing a data storage of the mobile device.

27. The mobile device of claim 1 , wherein the device service API is an API for using a personal information manager software program.

28. The mobile device of claim 1 , wherein the device service API is an API for an accelerometer of the mobile device.

29. The mobile device of claim 1 , wherein the device service API is an API for a software program for storing and managing personal contacts.

30. The mobile device of claim 1 , wherein the device service API is an API for a text messaging service of the mobile device.

31. The mobile device of claim 1 , wherein the device service API is an API for an instant messenger and/or chat service of the mobile device.

32. The mobile device of claim 1 , wherein the device service API is an API for a voice call service of the mobile device.

33. The mobile device of claim 1 , wherein the device service API is an API for a media player of the mobile device, the media player adapted to play at least one of audio data and video data.

34. The mobile device of claim 1 , wherein the device service API is an API for a battery level determiner of the mobile device.

35. The mobile device of claim 1 , wherein the device service API is an API for a brightness level control for the display of the mobile device.

36. The mobile device of claim 1 , wherein the device service API is an API for a vibrator of the mobile device.

37. The mobile device of claim 1 , wherein the device service API is an API for allowing a software application on a mobile device to send data to another software application on the mobile device.

38. The mobile device of claim 1 , wherein the device service API is an API for displaying customized content within a screen saver.

39. The mobile device of claim 1 , wherein the device service API is an API for displaying content on a second display of the mobile device.

40. The mobile device of claim 1 , wherein the device service API is an API for generating a popup notification on the mobile device display.

41. The mobile device of claim 1 , wherein the device service API is an API for monitoring for an event comprising one of a receipt of a text message, receipt of an email, receipt of a phone call, or activation of an alarm, the system configured to execute a widget application in response to the event.

42. The mobile device of claim 1 , wherein the device service API is an API for accessing a mobile device ID.

43. The mobile device of claim 1 , wherein the device service API is an API for a wireless signal strength determination unit.

44. The mobile device of claim 1 , further comprising instructions for a data synchronization engine configured to instruct the at least one processor to synchronize network content between a server and the mobile device, the network content being utilized by the widget application.

45. The mobile device of claim 44 , wherein the instructions for the data synchronization engine are further configured to instruct the at least one processor to prefetch content for a widget application installed on the mobile device.

46. The mobile device of claim 1 , further comprising instructions for a data access management component configured to instruct the at least one processor to allow a widget application to write data to a first storage that is inaccessible to other widget applications and software programs installed on the mobile device, and to allow a widget application to write data to a second storage that is accessible to other widget applications and software programs installed on the mobile device.

47. The mobile device of claim 1 , further comprising instructions for a data synchronization engine configured to instruct the at least one processor to synchronize widget applications between a server and the device, such that specified widget applications are sent by the server to the device during a synchronization process of the device.

48. The mobile device of claim 1 , wherein the mobile device is further configured to store network content.

49. The mobile device of claim 1 , where the execution engine comprises a virtual machine adapted to execute bytecode.

50. The mobile device of claim 49 , wherein the virtual machine is adapted to execute compiled JavaScript.

51. The mobile device of claim 1 , further comprising instructions for a widget permissions engine configured to instruct the at least one processor to preclude a widget application from accessing unauthorized functionality of the device.

52. The mobile device of claim 51 , wherein the instructions for the widget permissions engine are further configured to instruct the at least one processor to cease execution of a widget application attempting to access unauthorized functionality of the mobile device.

53. The mobile device of claim 52 , wherein the instructions the widget permissions engine are further configured to instruct the at least one processor to add additional permissions restrictions to the widget application attempting to access unauthorized functionality of the mobile device.

54. The mobile device of claim 52 , wherein the instructions for the widget permissions engine are further configured to instruct the at least one processor to mark a widget application attempting to access unauthorized functionality of the mobile device with a warning.

55. The mobile device of claim 1 , further comprising instructions for an advertisements engine configured to instruct the at least one processor to:

receive advertisements from a server;

store the advertisements in a storage of the mobile device; and

respond to an execution of a widget application on the mobile device by retrieving at least one of the advertisements from the storage and showing the at least one advertisement on the display of the mobile device.

56. The mobile device of claim 55 , wherein the instructions for the advertisements engine are configured to instruct the at least one processor to receive advertisements that define actions for the advertisements engine to initiate if a user of the mobile device selects an advertisement shown on the display.

57. The mobile device of claim 56 , wherein the instructions for the advertisements engine are configured to instruct the at least one processor to initiate one or more of the following actions in response to a user's selection of an advertisement shown on the display:

initiate a telephone call to an advertised service or company;

show, on the display, additional text and/or image content related to the selected advertisement;

play audio data related to the selected advertisement; and

play video data related to the selected advertisement.

58. The mobile device of claim 56 , wherein the instructions for the advertisements engine are further configured to instruct the at least one processor to:

log data comprising one or more of: (1) an amount of times each of the advertisements are displayed on the display, (2) user selections of advertisements shown on the display, and (3) actions initiated by the advertisements engine in response to said user selections; and

send said logged data to a server over a network.

59. The mobile device of claim 1 , further comprising:

instructions for a location module configured to instruct the at least one processor to determine a current location of the mobile device.

60. A method comprising:

rendering, on a mobile device, a declaratory markup language component of a widget application;

executing, on the mobile device, a compiled programming language component of the widget application;

automatically crawling, by the mobile device, one or more remote network resources accessible via a network for widget applications and determining one or more of the widget applications for download based on a user profile associated with the mobile device, without user interaction with the mobile device; and

automatically downloading and installing, by the mobile device, the one or more widget applications to constitute a set of downloaded widget applications from a remote network location to the mobile device, without user interaction with the mobile device;

wherein the set of downloaded widget applications corresponds to a first set of widget applications; and

automatically uninstalling, by the mobile device, one or both of the first set of widget applications and a second set of widget applications on the mobile device based at least in part on user preferences, without user interaction with the mobile device; and

wherein executing the compiled programming language component comprises making available to the widget application an API to access a device service of the mobile device.

61. The method of claim 60 , wherein the compiled programming language component comprises a compiled scripting language component.

62. The method of claim 60 , where the device service is one of the group consisting of: a camera, a video-recorder, a user interface for a home screen of a display of the mobile device, a touchscreen, a transceiver, a raw network connection, a network socket, an audio speaker, a GPS device, a microphone, an email software program, a software calendar, a data store, a personal information manager software program, an accelerometer, a software program for storing and managing personal contacts, a text messaging service, an instant messenger service, a chat service, a voice call service, a media player, a battery level determiner, a brightness level control for the mobile device display, and a vibrator.

Assignments (26)
RELEASE OF SECURITY INTEREST Recorded Jan 7, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: PLUSMO LLC
Reel/Frame 069764/0453 →
RELEASE OF SECURITY INTEREST Recorded Jan 7, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: YELLOWPAGES.COM LLC
Reel/Frame 069830/0826 →
RELEASE OF SECURITY INTEREST Recorded May 10, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: DEX MEDIA, INC.; YP LLC; YELLOWPAGES.COM LLC; YP ADVERTISING & PUBLISHING LLC; PRINT MEDIA LLC; CERBERUS YP DIGITAL BLOCKER LLC; CERBERUS YP BLOCKER LLC; YP HOLDINGS LLC; PRINT MEDIA HOLDINGS LLC; YP INTERMEDIATE HOLDINGS CORP.; YP WESTERN HOLDINGS CORP.; YP SOUTHEAST HOLDINGS CORP.; YP MIDWEST HOLDINGS CORP.; YP CONNECTICUT HOLDINGS CORP.; PLUSMO HOLDINGS CORP.; INGENIO HOLDINGS CORP.
Reel/Frame 067381/0745 →
RELEASE OF SECURITY INTEREST Recorded May 7, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: THRYV, INC.
Reel/Frame 067341/0434 →
SECURITY INTEREST Recorded May 3, 2024
From: THRYV, INC.
To: CITIZENS BANK, N.A.
Reel/Frame 067310/0627 →
SECURITY INTEREST Recorded May 1, 2024
From: THRYV, INC.
To: CITIZENS BANK, N.A.
Reel/Frame 067287/0759 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Mar 2, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION., AS ADMINISTRATIVE AGENT
To: THRYV, INC. (FORMERLY KNOWN AS DEX MEDIA, INC.); THRYV HOLDINGS, INC. (FORMERLY KNOWN AS DEX MEDIA HOLDINGS, INC.)
Reel/Frame 055472/0592 →
SECURITY INTEREST Recorded Mar 1, 2021
From: THRYV, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 055452/0258 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2020
From: YELLOWPAGES.COM, LLC
To: THRYV, INC.
Reel/Frame 052071/0589 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 042987 FRAME: 0318. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 10, 2017
From: PNC BANK, NATIONAL ASSOCIATION
To: PLUSMO LLC
Reel/Frame 043511/0859 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 043183 FRAME: 0734. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 9, 2017
From: PNC BANK, NATIONAL ASSOCIATION
To: YELLOWPAGES.COM LLC
Reel/Frame 043493/0648 →
SECURITY INTEREST Recorded Jul 28, 2017
From: YELLOWPAGES.COM LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 043363/0518 →
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2017
From: JPMORGAN CHASE BANK, N.A.
To: PLUSMO LLC
Reel/Frame 043028/0987 →
SECURITY INTEREST Recorded Jul 13, 2017
From: PNC BANK, NATIONAL ASSOCIATION
To: YELLOWPAGES.COM LLC
Reel/Frame 043183/0734 →
SECURITY INTEREST Recorded Jul 12, 2017
From: PNC BANK, NATIONAL ASSOCIATION
To: PLUSMO LLC
Reel/Frame 042987/0318 →
SECURITY AGREEMENT Recorded Jul 3, 2017
From: YP LLC; YELLOWPAGES.COM LLC; YP ADVERTISING & PUBLISHING LLC; PRINT MEDIA LLC; DEX MEDIA HOLDINGS, INC.; CERBERUS YP DIGITAL BLOCKER LLC; CERBERUS YP BLOCKER LLC; YP HOLDINGS LLC; PRINT MEDIA HOLDINGS LLC; YP INTERMEDIATE HOLDINGS CORP.; YP WESTERN HOLDINGS CORP.; YP SOUTHEAST HOLDINGS CORP.; YP MIDWEST HOLDINGS CORP.; YP CONNECTICUT HOLDINGS CORP.; PLUSMO HOLDINGS CORP.; INGENIO HOLDINGS CORP.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 043074/0794 →
SECURITY AGREEMENT Recorded Dec 1, 2016
From: YELLOWPAGES.COM LLC
To: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 040540/0948 →
MERGER Recorded Jan 6, 2015
From: PLUSMO LLC
To: YELLOWPAGES.COM LLC
Reel/Frame 034647/0650 →
SECURITY AGREEMENT Recorded Jul 2, 2013
From: PLUSMO LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 030746/0461 →
RELEASE OF GRANT OF SECURITY INTEREST -- PATENTS Recorded Jun 5, 2013
From: CERBERUS YP ARRANGER, LLC
To: PLUSMO LLC (FORMERLY KNOWN AS PLUSMO, INC.)
Reel/Frame 030571/0938 →
SECURITY INTEREST Recorded Nov 19, 2012
From: PLUSMO LLC
To: PNC BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 029384/0264 →
RELEASE OF SECURITY INTEREST Recorded Nov 16, 2012
From: FORTRESS CREDIT CO LLC, AS COLLATERAL AGENT
To: PLUSMO, INC.
Reel/Frame 029370/0307 →
CHANGE OF NAME Recorded Nov 9, 2012
From: PLUSMO, INC.
To: PLUSMO LLC
Reel/Frame 029274/0821 →
GRANT OF SECURITY INTEREST - PATENTS Recorded May 8, 2012
From: PLUSMO, INC.
To: CERBERUS YP ARRANGER, LLC, AS COLLATERAL AGENT
Reel/Frame 028177/0520 →
GRANT OF SECURITY INTEREST - PATENTS Recorded May 8, 2012
From: PLUSMO, INC.
To: FORTRESS CREDIT CO LLC, AS COLLATERAL AGENT
Reel/Frame 028177/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2012
From: MANDYAM, SRINIVAS A.; VEDATI, KRISHNA; CHONG, KELVIN VOON-KIT
To: PLUSMO, INC.
Reel/Frame 027902/0534 →