The present invention relates generally to user interfaces for communication applications. More particularly, the present invention relates to improving the functionality of such a user interface for multiple applications.
Many modern communication devices are multi-functional. They may be configured to allow users to engage in, for example, electronic mail (“e-mail”), short message service (“SMS”) communications, multimedia messaging services (“MMS”) communications, personal identification number to personal identification number (“PIN to PIN”) communications and telephone communications. It is now common for a mobile device to feature different applications for some or all of these communications types.
Some email applications display a list of most recently used recipients. These lists provide “proposed” or “prospective” contact choices to the user in the hope of saving time. In some cases, these lists are updated as a user makes entries in the destination field of a communication that is being composed. For instance, email software can present a user with a list of recent destination addresses beginning with a particular letter when a user enters that letter in a destination field. An exemplary user interface for mobile devices implementing such lists is disclosed in US Patent Publication No. 2005/0188312, which is incorporated herein in its entirety by reference. Such lists may order the suggested list of recipients according to a weighting function, such as the ones described in U.S. Pat. No. 6,952,805, which is incorporated herein in its entirety by reference. Examples of such weighting functions typically include weighting based on frequency of use, or recency of use, but there has been little effort to develop other ordering schemes. This is particularly true in the case of address books shared by multiple applications, where the same ordering scheme is applied to each application, regardless of how the user uses it.
Embodiments of the present invention will now be described, by way of example only, with reference to the attached Figures, wherein:
When using a mobile device with multiple communications applications, such as e-mail, SMS, MMS, PIN to PIN and telephone, users may favor one application more than another for a particular contact. Conversely, users may favor one contact more than another for a particular application. For example, a user might text message his or her spouse more often than they email them, but might prefer to email his or her supervisor rather than text message them. Mobile devices and the systems that support them are capable of storing information about a user's past communications with particular contacts. However, such information is not presently used to help predict the list of recipients based on the application or communication format being used to send that communication. The user of a mobile communications device with multiple communications options who prefers to text message his or her spouse but more frequently emails his or her supervisor is not assisted when presented with the name of the supervisor as a first choice when entering a destination for a text message. It is therefore desirable to provide a user interface capable of providing to the user a list of proposed communication recipients based on application-specific and/or communications format-specific contact information.
An aspect of the invention provides a method of generating a list of prospective contacts for a communication by a communication device, said communication device having access to contacts which are shared between a plurality of different communication. formats, said method comprising: detecting an indication of a user-selected communication format selected from said plurality of different communication formats; generating a list of prospective contacts, the list of prospective contacts determined based on an analysis of usage information including user's past communications for the selected communication format; and providing said user with said list containing at least one prospective contact.
Another aspect of the invention provides a communication device comprising a processor, a display, a machine readable memory and at least one input device, wherein the machine readable memory stores software instructions which when executed by said processor, causes said device to perform the steps of: receiving an indication of a user-selected communication format selected from a plurality of different communications formats; generating a list of prospective contacts, the list of prospective contacts generated based on an analysis of usage information including the user's past communications for the selected communication format; and providing said user with said list containing at least one prospective contact.
Another aspect of the invention provides a computer program product having a machine-readable medium having encoded thereon computer-executable instructions for: detecting an indication of a user-selected communication format selected from said plurality of different communication formats; generating a list of prospective contacts, the list of prospective contacts determined based on an analysis of usage information including user's past communications for the selected communication format; and providing said user with said list containing at least one prospective contact.
Embodiments of the invention will be discussed with reference to examples for mobile wireless devices, to which embodiments of the invention are well suited. However it should be appreciated that the invention can be implemented in a personal computer or other device which has the capability of multiple communications formats. To aid the reader in understanding the structure of a mobile device and how it communicates with other devices, reference is made to
Referring first to
Although the wireless network associated with mobile device 100 is a GSM/GPRS wireless network in one example implementation of mobile device 100, other wireless networks may also be associated with mobile device 100 in variant implementations. Different types of wireless networks that may be employed include, for example, data-centric wireless networks, voice-centric wireless networks, and dual-mode networks that can support both voice and data communications over the same physical base stations. Combined dual-mode networks include, but are not limited to, Code Division Multiple Access (CDMA) or CDMA2000 networks, GSM/GPRS networks (as mentioned above), and future third-generation (3G) networks like EDGE and UMTS. Some older examples of data-centric networks include the Mobitex™ Radio Network and the DataTAC™ Radio Network. Examples of older voice-centric data networks include Personal Communication Systems (PCS) networks like GSM and Time Division Multiple Access (TDMA) systems.
Microprocessor 102 also interacts with additional subsystems such as a Random Access Memory (RAM) 106, flash memory 108, display 110, auxiliary input/output (I/O) subsystem 112, serial port 114, keyboard 116, speaker 118, microphone 120, short-range communications 122 and other devices 124.
Some of the subsystems of mobile device 100 perform communication-related functions, whereas other subsystems may provide “resident” or on-device functions. By way of example, display 110 and keyboard 116 may be used for both communication-related functions, such as entering a text message for transmission over network 200, and device-resident functions such as a calculator or task list. Operating system software used by microprocessor 102 is typically stored in a persistent store such as flash memory 108, which may alternatively be a read-only memory (ROM) or similar storage element (not shown). Those skilled in the art will appreciate that the operating system, specific device applications, or parts thereof, may be temporarily loaded into a volatile store such as RAM 106.
Mobile device 100 may send and receive communication signals over network 200 after required network registration or activation procedures have been completed. Network access is associated with a subscriber or user of a mobile device 100. To identify a subscriber, mobile device 100 requires a Subscriber Identity Module or “SIM” card 126 to be inserted in a SIM interface 128 in order to communicate with a network. SIM 126 is one type of a conventional “smart card” used to identify a subscriber of mobile device 100 and to personalize the mobile device 100, among other things. Without SIM 126, mobile device 100 is not fully operational for communication with network 200. By inserting SIM 126 into SIM interface 128, a subscriber can access all subscribed services. Services could include: web browsing and messaging such as e-mail, voice mail, PIN to PIN communications, SMS, and MMS. More advanced services may include: point of sale, field service and sales force automation. SIM 126 includes a processor and memory for storing information. Once SIM 126 is inserted in SIM interface 128, it is coupled to microprocessor 102. In order to identify the subscriber, SIM 126 contains some user parameters such as an International Mobile Subscriber Identity (IMSI). An advantage of using SIM 126 is that a subscriber is not necessarily bound by any single physical mobile device. SIM 126 may store additional subscriber information for a mobile device as well, including datebook (or calendar) information and recent call information.
Mobile device 100 is a battery-powered device and includes a battery interface 132 for receiving one or more rechargeable batteries 130. Battery interface 132 is coupled to a regulator (not shown), which assists battery 130 in providing power V+ to mobile device 100. Although current technology makes use of a battery, future technologies such as micro fuel cells may provide the power to mobile device 100.
Microprocessor 102, in addition to its operating system functions, enables execution of software applications on mobile device 100. A set of applications that control basic device operations, including data and voice communication applications, will normally be installed on mobile device 100 during its manufacture. Another application that may be loaded onto mobile device 100 would be a personal information manager (PIM) 142. A PIM 142 has functionality to organize and manage data items of interest to a subscriber, such as, but not limited to, e-mail, calendar events, voice mails, appointments, and task items. A PIM 142 application has the ability to send and receive data items via wireless network 200. PIM 142 data items may be seamlessly integrated, synchronized, and updated via wireless network 200 with the mobile device subscriber's corresponding data items stored and/or associated with a host computer system. This functionality creates a mirrored host computer on mobile device 100 with respect to such items. This can be particularly advantageous where the host computer system is the mobile device subscriber's office computer system.
Additional applications may also be loaded onto mobile device 100 through network 200, auxiliary I/O subsystem 112, serial port 114, short-range communications subsystem 122, or any other suitable subsystem 124. This flexibility in application installation increases the functionality of mobile device 100 and may provide enhanced on-device functions, communication-related functions, or both. For example, secure communication applications may enable electronic commerce functions and other such financial transactions to be performed using mobile device 100.
Serial port 114 enables a subscriber to set preferences through an external device or software application and extends the capabilities of mobile device 100 by providing for information or software downloads to mobile device 100 other than through a wireless communication network. The alternate download path may, for example, be used to load an encryption key onto mobile device 100 through a direct and thus reliable and trusted connection to provide secure device communication.
Short-range communications subsystem 122 provides for communication between mobile device 100 and different systems or devices, without the use of network 200. For example, subsystem 122 may include an infrared device and associated circuits and components for short-range communication. Examples of short range communication would include standards developed by the Infrared Data Association (IrDA), Bluetooth, and the 802.11 family of standards developed by IEEE.
In use, a received signal such as a text message, an MMS message, a PIN to PIN message, an e-mail message, or web page download will be processed by communication subsystem 104 and input to microprocessor 102. Microprocessor 102 will then process the received signal for output to display 110 or alternatively to auxiliary I/O subsystem 112. A subscriber may also compose data items, such as e-mail messages, for example, using keyboard 116 in conjunction with display 110 and possibly auxiliary I/O subsystem 112. Auxiliary subsystem 112 may include devices such as: a touch screen, mouse, track ball, infrared fingerprint detector, or a roller wheel with dynamic button pressing capability. Keyboard 116 is an alphanumeric keyboard and/or telephone-type keypad. A composed item may be transmitted over network 200 through communication subsystem 104.
For voice communications, the overall operation of mobile device 100 is substantially similar, except that the received signals would be output to speaker 118, and signals for transmission would be generated by microphone 120. Alternative voice or audio I/O subsystems, such as a voice message recording subsystem, may also be implemented on mobile device 100. Although voice or audio signal output is accomplished primarily through speaker 118, display 110 may also be used to provide additional information such as the identity of a calling party, duration of a voice call, or other voice call related information.
Referring now to
The particular design of communication subsystem 104 is dependent upon the network 200 in which mobile device 100 is intended to operate, thus it should be understood that the design illustrated in
The wireless link between mobile device 100 and a network 200 may contain one or more different channels, typically different RF channels, and associated protocols used between mobile device 100 and network 200. An RF channel is a limited resource that must be conserved, typically due to limits in overall bandwidth and limited battery power of mobile device 100.
When mobile device 100 is fully operational, transmitter 152 is typically keyed or turned on only when it is sending to network 200 and is otherwise turned off to conserve resources. Similarly, receiver 150 is periodically turned off to conserve power until it is needed to receive signals or information (if at all) during designated time periods.
Referring now to
In a GSM network, MSC 210 is coupled to BSC 204 and to a landline network, such as a Public Switched Telephone Network (PSTN) 222 to satisfy circuit switched requirements. The connection through PCU 208, SGSN 216 and GGSN 218 to the public or private network (Internet) 224 (also referred to herein generally as a shared network infrastructure) represents the data path for GPRS capable mobile devices. In a GSM network extended with GPRS capabilities, BSC 204 also contains a Packet Control Unit (PCU) 208 that connects to SGSN 216 to control segmentation, radio channel allocation and to satisfy packet switched requirements. To track mobile device location and availability for both circuit switched and packet switched management, HLR 212 is shared between MSC 210 and SGSN 216. Access to VLR 214 is controlled by MSC 210.
Station 206 is a fixed transceiver station. Station 206 and BSC 204 together form the fixed transceiver equipment. The fixed transceiver equipment provides wireless network coverage for a particular coverage area commonly referred to as a “cell”. The fixed transceiver equipment transmits communication signals to and receives communication signals from mobile devices within its cell via station 206. The fixed transceiver equipment normally performs such functions as modulation and possibly encoding and/or encryption of signals to be transmitted to the mobile device in accordance with particular, usually predetermined, communication protocols and parameters, under control of its controller. The fixed transceiver equipment similarly demodulates and possibly decodes and decrypts, if necessary, any communication signals received from mobile device 100 within its cell. Communication protocols and parameters may vary between different nodes. For example, one node may employ a different modulation scheme and operate at different frequencies than other nodes.
For all mobile devices 100 registered with a specific network, permanent configuration data such as a user profile is stored in HLR 212. HLR 212 also contains location information for each registered mobile device and can be queried to determine the current location of a mobile device. MSC 210 is responsible for a group of location areas and stores the data of the mobile devices currently in its area of responsibility in VLR 214. Further VLR 214 also contains information on mobile devices that are visiting other networks. The information in VLR 214 includes part of the permanent mobile device data transmitted from HLR 212 to VLR 214 for faster access. By moving additional information from a remote HLR 212 node to VLR 214, the amount of traffic between these nodes can be reduced so that voice and data services can be provided with faster response times and at the same time requiring less use of computing resources.
SGSN 216 and GGSN 218 are elements added for GPRS support; namely packet switched data support, within GSM. SGSN 216 and MSC 210 have similar responsibilities within wireless network 200 by keeping track of the location of each mobile device 100. SGSN 216 also performs security functions and access control for data traffic on network 200. GGSN 218 provides internetworking connections with external packet switched networks and connects to one or more SGSNs 216 via an Internet Protocol (IP) backbone network operated within the network 200. During normal operations, a given mobile device 100 must perform a “GPRS Attach” to acquire an IP address and to access data services. This requirement is not present in circuit switched voice channels as Integrated Services Digital Network (ISDN) addresses are used for routing incoming and outgoing calls. Currently, all GPRS capable networks use private, dynamically assigned IP addresses, thus requiring a DHCP server 220 connected to the GGSN 218. There are many mechanisms for dynamic IP assignment, including using a combination of a Remote Authentication Dial-In User Service (RADIUS) server and DHCP server. Once the GPRS Attach is complete, a logical connection is established from a mobile device 100, through PCU 208, and SGSN 216 to an Access Point Node (APN) within GGSN 218. The APN represents a logical end of an IP tunnel that can either access direct Internet compatible services or private network connections. The APN also represents a security mechanism for network 200, insofar as each mobile device 100 must be assigned to one or more APNs and mobile devices 100 cannot exchange data without first performing a GPRS Attach to an APN that it has been authorized to use. The APN may be considered to be similar to an Internet domain name such as “myconnection.wireless.com”.
Once the GPRS Attach is complete, a tunnel is created and all traffic is exchanged within standard IP packets using any protocol that can be supported in IP packets. This includes tunneling methods such as IP over IP as in the case with some IPSecurity (Ipsec) connections used with Virtual Private Networks (VPN). These tunnels are also referred to as Packet Data Protocol (PDP) Contexts and there are a limited number of these available in the network 200. To maximize use of the PDP Contexts, network 200 will run an idle timer for each PDP Context to determine if there is a lack of activity. When a mobile device 100 is not using its PDP Context, the PDP Context can be de-allocated and the IP address returned to the IP address pool managed by DHCP server 220.
Referring now to
Software applications that are loaded or stored on mobile device 100 may be implemented as functional components or modules 310. Modules 310 interact with various components of mobile device 100. For instance, as shown by way of example in
An exemplary address book module 312, which is described in greater detail below with reference to
Phone application module 316 is generally configured to facilitate voice communication between the user and other parties, including the placement of outgoing calls by the user and the reception of incoming calls on the mobile device 100.
Calls may be placed and received on a communication line specifically configured for voice communications. In certain embodiments, calls may alternatively or additionally be placed and received on other types of communication lines, including a communication line generally configured for data communications, or a communication line configured for both voice and data communications. For example, mobile device 100 may be configured to provide Voice over IP (VoIP), Enterprise Voice, and/or video phone functionality.
In one embodiment of the invention, the address book module 312 comprises an application and database, which both stores contact information, and in addition tracks and stores usage information for each contact. The usage information includes application-specific and/or format-specific information about past communications. In other embodiments the address book can be implemented in a more conventional manner and a separate application and/or database is used to track and store the usage information. Either way, it should be appreciated that the address book module 312 can be implemented either on a system external to the mobile device 100 via network 200, on the mobile device itself 100, or some combination of the mobile device 100 and an external system.
The term “application-specific information” as used herein can mean any information identifying the application which sent or received a past communication, and/or any aspect of that past communication that was determined by the application. Thus, for example, application-specific information can indicate that a past communication was sent by application A rather than by application B, received by application C rather than by application D, or that options and formatting only available in application A were used. The term “format-specific information” as used herein can mean any information identifying the format in which a past communication was sent or received, and/or any aspect of that past communication that was determined by its format. Thus, for example, format-specific information can indicate that a past communication was sent in PIN to PIN format, or that a past e-mail message was received with specific Multipurpose Internet Mail Extensions (MIME) information attached, or that a past e-mail message was sent from a given location based on SMTP-AUTH server authorization information.
The data which makes up the information content of address book module 312 is conceptually represented as a series of information stores, which can include: shared non-application specific information 320, telephone specific information 350; email application specific information 360; SMS application specific information 370; MMS application specific information 380; and PIN to PIN application specific information 390. It should be appreciated by those skilled in the art that these application types are given as examples only, and that other application types (such as a push-to-talk application, a blogging application, a social-networking application, a news aggregator for RSS feeds, an icalendar scheduling application, or any other communications application) may have their own application-specific information, accessible by the address book module 312. It is also possible that some applications may be able to communicate using more than one communications format, in which case information specific to each format is stored such that it is possible to differentiate between past communications of each format. Further, although these various information types are conceptually illustrated as being distinct from one another, it should be appreciated that they may be stored in any manner known to those skilled in the art, ranging from a single data table in a single physical location to a multiplicity of distributed, loosely connected sets of data in many different physical or electronic locations. Similarly, although the various information stores 320, 350, 360, 370, 380 or 390 are illustrated as being inter-connected, they need not be inter-connected at all, and are illustrated as such merely to emphasize that contacts and usage information can be shared with multiple communications formats and/or applications. Further, the storage of this information can be entirely on the mobile device 100, or may exist externally, such as on servers or Host PCs and made accessible through network 200.
Exemplary information stores 320, 350, 360, 370, 380 or 390 contain information which allows the user interface to generate various lists of proposed contacts when a user indicates that the user wishes to select one or more recipients for a communication of a specified communication format.
Of course, more information can be stored about any message. Once usage information for messages of a given format has been stored, it becomes possible to use this information to differentiate between the contacts, such that a comparative analysis can produce weightings to generate lists of proposed contacts, such as the lists stored in the MMS message history analysis data 630 of the MMS application-specific information 380. Such pre-computed lists can include, for example, a list of top contacts based on one or more weightings. The list can be ordered by the same weighting(s) or according to some other criteria. In one embodiment, weightings can be assigned to contacts based on the length of MMS messages sent to the contacts, which for the two exemplary messages 610, 620 listed above would give priority of place to recipients David C. and Jim B. whenever the user was selecting a contact for a lengthy MMS message, but would give priority of place to Albert E. whenever the user was selecting a contact for a short MMS message. Other types of weightings might include: weightings based on keyword analysis, which would place Albert E. at the top of a list of proposed contacts when the user was composing MMS messages about “gravity”; weightings based on the direction of communication, such as whether a contact sends communications to the user more often (Albert E.) or whether the contact receives communications from the user more often (Jim B. and David C.). Still other types of weightings can include weightings based on multimedia content preferences; for example, communications with Albert E. tend to involve pictures, so the user interface might propose Albert E. as the first entry in a list of proposed contacts when the user seeks to forward an image file such as a .JPG or .GIF. Of course other types of MMS messages and criteria can be used, for example a user of a suitably equipped mobile handheld device can record an audio file, for example a dictation. Furthermore, the system can note that the user tends to send such a dictation to the user's assistant for transcription, and displays the assistant as a first choice for such a MMS. The possible proposed contact lists that can be generated is a function of the communications format and depends on the types and quantity of information stored about past communications. Of course, lists might also be pre-configured by the user themselves, such as by establishing a “favorites” list, as illustrated in
Lists of proposed contacts, which may be generated based on a number of different analyses, shorten the amount of time it takes a user to find and/or select a contact. Various types of analyses may be employed to generate a list of proposed contacts. These analyses can incorporate any method of generating proposed contact lists, as long as the communication format and/or communications application being used is a determining factor in the analysis. For example, SMS format-specific lists of proposed contacts may be generated, Email application-specific lists of proposed contacts may be generated. By way of further example, in the case where at least one application can produce more than one format, or where at least one format can be produced by more than one application, a list proposed contacts might be based on patterns of combined application and format use. The term “analysis”, as used herein, is intended in its broadest sense, and includes everything from simple sorting and ordering operations, to statistical natural language processing of complicated texts. Furthermore, an analysis can be performed all at once, or in any number of steps, and can be performed either by the mobile device itself, or by an external system accessed via network 200. More advanced types of analysis can generate an ordered list by alphabetical ordering, or can generate an ordered list where the ordering is determined by some weighting function. Typical weighting functions include: weighting by recency of communication; weighting by frequency of communication; weighting by statistical analysis of the length of past messages; weighting by statistical analysis of keywords in past messages; weighting by statistical analysis of past exchanges of multimedia content; weighting by statistical analysis of the duration of past communications sessions (such as telephone calls or chat sessions); weighting by thread relationship (whether a message is a simple reply, or a reply to a reply, for example), weighting by font characteristics of past messages (for example, a given contact might always write in pink fonts) or any other technique according to which contacts with whom a user has exchanged communications of a given format can be differentiated from one another.
An example of a proposed contact list is illustrated in
The number of techniques and analyses that can be used to generate the proposed contact list is governed by the quantity and variety of data stored in the address book 312, as will be apparent to those skilled in the art. Because the analyses to be performed on the data depend on the specific format of past communications as well as application-specific information associated with those past communications, it is possible to create new techniques for the generation of proposed contact lists by using metrics and weightings that are dependent upon application-specific or format-specific information. For example, the technique of analyzing the frequency with which the user sends communications to a given contact can be extended in the case of MMS messaging to analyzing the frequency with which the user sends MMS messages containing a particular type of multimedia content to a given user. For example, if a user has generated an audio recording and provides an input indicating his or her desire to attach such a recording to a message, the system will display a selectable list of contacts to when the user has most recently (or frequently) sent audio files. Thus, by way of example, if a user prefers to send videos to his or her spouse, audio recordings to his or her assistant but would rather send pictures to co-workers, the interface can analyze the MMS application-specific information 380 to generate a proposed contact list listing the assistant first whenever the user is composing a message that includes an audio file. Furthermore, in such an example, the co-worker's contact information might be listed after the assistant's contact information, but a supervisor's contact information might not be listed at all if the user never sends MMS messages to them.
For example, let us assume that a user receives an audio file and listens to the audio file. The user interface can then present various options to the user, for example to delete, store or forward the file. Assume the user chooses to forward the file. The user interface will then open a compose screen, with the file attached and will then display a list of possible contacts based on the most recently used contacts to which the user has sent an audio file. Alternatively an empty address field will appear and the user interface will await input from the user before displaying contacts who begin with an input character, listed in most recently used order for contacts with whom the user has exchanged audio files (by sending them to the contact and/or receiving them from the contact).
In another embodiment of the invention, the proposed contact lists may even depend on format-specific and/or application-specific information used in combination with the past usage of the mobile device 100 itself. By way of example, let us now assume that a user's mobile device 100 has an integrated camera, which can be either a still camera or video camera. Assume that based on past use of the mobile device, an analysis of application-specific and/or format-specific information reveals that the user has previously exchanged a large number of photos from the integrated camera with friend David by email. Let us further assume that the user has previously exchanged a large number of videos from the integrated camera with friend Jim by MMS. When the user next takes a video using the mobile device 100, the user interface might propose an option of launching an MMS capable-application with a proposed contact list including Jim as the first entry and David as the second entry, based on the fact that both have been sent camera-related content. On the other hand, when the user next takes a picture using the mobile device 100, the user interface might propose an option of sending an E-mail to a contact list including David as the first entry and Jim as the second entry, but the user interface might also propose sending an MMS communication including the picture, where Jim is listed as the first entry in the contact list and David is listed as the second entry. If the mobile device has an application that can generate communications in both MMS and Email formats, such an application might display a list based not only on past video and picture messaging by Jim and David, but also recency of contact or some other scheme by which the analysis can be weighted. It should be appreciated based on the foregoing example that any number of possible combinations of past format-specific, application-specific and even mobile device-specific information can be used to generate proposed contact lists based on past use.
Device-specific information may be stored and used as a basis for generating proposed contact lists dependent upon the devices which can be either integrated with, or connected to, mobile device 100. For example, mobile devices with integrated GPS might also include information in address book 312 that indicates where past communications were sent from, such that a proposed contact list would look different in Chicago than it would in New York or Amsterdam. The proposed contact list could also vary within a small geographical area, such that the list of proposed contacts might differ during the course of a cab ride from one end of Manhattan to the other. Location-specific information can be gleaned from routing information provided by network 200, which might in turn obtain location information from the PSTN 222 or the Internet 224. Location information can also be obtained using information stored in address book 312 based on the network 200 elements with which the mobile device 100 communicated in sending previous communications, protocol-specific information, past handshake information or any other means of determining the location where a user sent or received a past communication. In the absence of a specific indication of the user's present location, such an analysis could assume that location information related to the user's most recent communication is an indication of the user's present location.
It should be noted that multiple analyses of past communications can be used simultaneously to generate proposed contact lists. For example, the user interface might combine elements of a statistical analysis of the keywords found in past messages sent in a particular format, with information about the relationship of past threads of communication to the present message. For example, as illustrated in
An exemplary method that can be used to implement the user interface according to an embodiment of the invention is illustrated in
The method of
The determination performed by step 820 may determine that the user wishes to add a recipient in many different ways, for example: the user might have just begun composing the message and have placed a cursor in the destination field of the communication composing screen, or they might have clicked a trackball or other input device. As with the proposed contact lists themselves, the number of different ways in which the user can indicate that they wish to add a recipient to the communication is at least partially dependent on the communications format. For example, it may be possible to initiate new communications during a telephone call by initiating a three-way call using a list of proposed contacts generated in response to the user's input during a pre-existing phone call. In the case where the method does not detect that the user wishes to add a recipient, the input is handled normally at step 840, at which point the method may terminate at step 860 if the method detects at step 850 that the communication is complete. A completion of the communication can occur in as many different ways as the communications format allows: for example, completion of the method can occur when the user sends an e-mail, hangs-up a phone call, or cancels the SMS message composition without sending it.
If the method detected at step 820 that the user wishes to add a recipient to the communication, it proceeds to step 830 where an application-specific list of potential recipients is generated. To generate an application-specific list of potential recipients 830, the method queries both the address book 312 and information specific to the communication format of the intended communication, in the example of
An exemplary method whereby application-specific lists of proposed-contacts is illustrated in
The exemplary method of
In the preceding description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the embodiments of the invention. However, it will be apparent to one skilled in the art that these specific details are not required in order to practice the invention. In other instances, well-known electrical structures and circuits are shown in block diagram form in order not to obscure the invention. For example, specific details are not provided as to whether the embodiments of the invention described herein are implemented as a software routine, hardware circuit, firmware, or a combination thereof.
Embodiments of the invention can be represented as a software product stored in a machine-readable medium (also referred to as a computer-readable medium, a processor-readable medium, or a computer usable medium having a computer-readable program code embodied therein). The machine-readable medium can be any suitable tangible medium, including magnetic, optical, or electrical storage medium including a diskette, compact disk read only memory (CD-ROM), memory device (volatile or non-volatile), or similar storage mechanism. The machine-readable medium can contain various sets of instructions, code sequences, configuration information, or other data, which, when executed, cause a processor to perform steps in a method according to an embodiment of the invention. Those of ordinary skill in the art will appreciate that other instructions and operations necessary to implement the described invention can also be stored on the machine-readable medium. Software running from the machine-readable medium can interface with circuitry to perform the described tasks.
The above-described embodiments of the invention are intended to be examples only. Alterations, modifications and variations can be effected to the particular embodiments by those of skill in the art without departing from the scope of the invention, which is defined solely by the claims appended hereto.