Privacy and anonymity are desired by users with respect to their mobile communications, e.g., telephone calls, SMS/MMS (text or other such messages), emails, instant messages, social networking communications and so forth. For example, some people do not want others (even someone who is intimately close with them) to know who they have called or have been called by, how often, and/or at what times. Users similarly do not want others to see the content or other information regarding text messages and other communications.
Erasing the data as soon as it is no longer needed is possible in some instances, but is not a desirable solution, nor is it possible when the device is not accessible. Password protection on a mobile device is another such solution, however keeping a device password protected at all times is not always feasible. For example, there are times when it is necessary to provide another person (a non-owner) such as a spouse or co-worker with working access to a mobile device, such as when the other person needs to borrow the mobile phone, the device owner is driving, and so on. At such times it is necessary to give the other person the password or give them the phone in an unlocked state.
Once another person has the mobile device unlocked, that person generally has access to the device's saved data. This includes phone logs, text messages, emails and so forth. Thus, the person in possession of the device can read messages, as well as see who has called, how often and when. Even when the device is locked, unless explicitly configured otherwise, current incoming communications in the form of rings and caller ID text, or audible sounds and SMS text, for example, can be heard and/or read by anyone close to the device.
This Summary is provided to introduce a selection of representative concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used in any way that would limit the scope of the claimed subject matter.
Briefly, various aspects of the subject matter described herein are directed towards a technology by which one or more privacy-related actions with respect to an incoming or outgoing communication are performed to assist users in maintaining privacy and/or anonymity. The action or actions may be performed based upon contact-related data associated with the communication, such as a privacy attribute set for a contact, or based upon the device operating in a private operating mode.
In one aspect, a privacy-related action comprises determining whether to store information related to a communication in a general data store or a private data store, or to not store the information. For private communications such as a telephone call or message to or from an entity (e.g., person, group or organization) corresponding to a private contact, the information is stored to a private, protected storage, e.g., logged to a password-protected phone log or saved as message content to as password protected data store, or discarded. For non-private communications, the information is saved in general unprotected storage.
In one aspect, a privacy-related action comprises not allowing a notification (e.g., visibly or audibly) for a private incoming communication. For non-private communications, the notification is allowed with respect to privacy (although it remains subject to other device notification rules). An outgoing communication may be blocked or modified (e.g., caller ID automatically turned off, changing the source of a text message to a generic sender, and so on) based upon privacy settings.
Other advantages may become apparent from the following detailed description when taken in conjunction with the drawings.
The present invention is illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
Various aspects of the technology described herein are generally directed towards automatically hiding and/or not logging selected communications information in mobile devices, as well as not notifying and/or automatically rejecting incoming communications from specified contacts. In one implementation, this is accomplished by marking selected contacts in the device's contact list (including address book or such other data store) as private, or operating the device in a private mode. The communication history (e.g., social networking discussions, incoming/outgoing/missed calls, SMS, MMS, e-mail) of private contacts, or the communication history that occurred while operating in the private mode, are not logged or saved to a general data store, but (optionally) may be saved to a private data store for later private viewing.
It should be understood that any of the examples herein are non-limiting. For example, while the technology described herein provides benefits with mobile devices, any device that receives and sends communications may similarly benefit. As such, the present invention is not limited to any particular embodiments, aspects, concepts, structures, functionalities or examples described herein. Rather, any of the embodiments, aspects, concepts, structures, functionalities or examples described herein are non-limiting, and the present invention may be used various ways that provide benefits and advantages in privacy and device communications in general.
In one implementation, when the user sets up the contacts list 104, the user is able to set (or clear) the privacy attribute for each contact. The user is also able to set (or clear) the privacy attribute for each contact when editing this information, or for any contact that is added. A private application and/or private operating mode within the contacts application, which may have protected access (e.g. require a password to operate), may be provided to allow such interaction; for example, the contacts application will not display any private contacts unless running in a private-access mode. This may be accomplished by modifying an existing contacts application to recognize the privacy attribute and act accordingly, or by having a separate store for private contacts, which may be merged with non-private contacts by a separate, private contacts application. For example, contacts may be maintained in a ‘black’ or ‘white’ list or the like, with such a list examined upon an incoming/outgoing communication to determine whether to take a privacy-related action. In
In general and as described below, a communications handling program 106 (such as a telephony application, SMS application, email application, instant messaging application, social networking application and so forth) handles incoming communications according to the privacy attribute. For example, as represented in
In this manner, no one can see the communications from a private contact by accessing the program's general storage 108 via the program's general user interface 116. To view the private storage, a separate, private user interface is used, which in general is protected, e.g., via a password. Note that the private user interface 118 may read the general storage 108 as well, such as to provide a merged call history or set of merged messages (e.g., sorted by timestamp, contact and so forth) if desired.
In one implementation, the user can control the privacy level and settings on a per-application basis. For example, a user may choose to not log calls or save SMS messages to their respective general storage, but may allow email messages to be saved to general email folders regardless of the contact's privacy setting. Note that this may be accomplished by a setting in each application, although it is also feasible to have a separate contact privacy attribute for each such application.
Also represented in
Turning to another aspect, a device may be operated in a privacy mode in which communications with any contacts while in this mode are treated as if each contact had the privacy attribute set. To this end, the user may turn on or turn off a device privacy mode setting 124, e.g., via a device setting, application or in some other way (e.g., via a button or key combination). Access to this setting 124 may be protected (e.g., by a password). In this mode, any calls regardless of the contact attribute are logged to the private log, any SMS messages are saved in the private SMS storage, and so forth (if allowed), if the respective application is configured to do so for private contacts.
When an incoming communication 210 is received, the communication handling program 206 checks the setting 230 to determine whether the feature is on or off, and if on, checks the privacy attribute of the contact and/or the device privacy mode setting 124 to determine whether to reject the incoming communication and provide no notification of it. If not private, the usual operations occur, e.g., an audible/visible notification is provided, as represented in
In addition to blocking notifications for private communications, one or more other actions may be taken. For example, a telephone call from a private caller, when notifications are off, may be given a different (or no) voice mail message; a text message may be automatically sent in response to a call or another text message, and so forth.
Another way to use privacy attributes or a private device operating mode is with outgoing communications. For example, redialing to a private contact may be blocked, so that a non-owner cannot call the last number dialed to find out who answers. Any regular (e.g., non-password protected) communications to a private contact may be blocked so that a non-owner sender cannot pretend to be the owner that is calling or sending a message. The outgoing communication may be allowed but with modified data, e.g., caller ID may be automatically turned off, a text message can be sent with an anonymous sender (by routing through the email system instead of SMS, or other means) and so forth.
When a call is detected, step 302 represents reading the privacy attribute corresponding to the contact for that call, if any corresponding contact exists; (note that a call may be to or from a number that does not have a saved contact). For an incoming call, or an outgoing call which was not made via the contacts list, step 302 generally includes using the telephone number to look up the contacts data.
Step 304 represents evaluating the privacy attribute of the contact (if any exists) to determine whether the corresponding contact of the caller or callee is marked private. If not found or not private, step 306 represents evaluating the device attribute to determine whether the device has been set to the private mode. If neither, step 308 logs the call information to the general log, and this processing part of the telephone application ends. Note that steps 304 and 306 may be performed in the reverse order, e.g., if it is more efficient to check the privacy mode before looking up a contact.
If the contact is determined to exist and is set to private (step 304), or the device is determined to be in the private mode (step 306), then the call will not be logged in the general log. Step 310 determines whether private logging is allowed; if so the call is logged into the private log at step 312, otherwise it is not logged at all.
When a message is detected, step 402 represents reading the privacy attribute corresponding to the contact for that message, if any corresponding contact exists; (note that a communication may be to or from an entity that does not have a saved contact). For an email or instant message, for example, step 402 generally includes using the address of the sender (if incoming) or recipient (if outgoing) to look up the contacts data. For an incoming SMS message, or an outgoing SMS message which was not made via the contacts list, step 402 generally includes using the telephone number to look up the contacts data.
Step 404 represents evaluating the privacy attribute of the contact (if any exists) to determine whether the corresponding contact is private. If not private or not found, step 406 represents evaluating the device attribute to determine whether the device has been set to the private mode. If neither, step 408 saves the message in the application's general message store, and this processing part of the messaging application ends. Note that steps 404 and 406 may be performed in the reverse order, e.g., if it is more efficient to check the privacy mode before looking up a contact.
If the contact is determined to exist and is set to private (step 404), or the device is determined to be in the private mode (step 406), then the message will not be stored in the general message storage for this application. Step 410 determines whether private storage is allowed; if so the message is stored into the private messaging storage for this application.
When an incoming communication is detected, the steps of
To this end, step 502 checks the device privacy mode On/Off setting 230 represented in
If the notification privacy feature is on at step 502, step 504 looks up to determine whether there is a contact associated with the caller or message sender, including reading the privacy attribute corresponding to the contact if a contact exists. For an SMS message or phone call, for example, this generally includes using the sender's/caller's telephone number to look up the contacts data. For an email or instant message, for example, this generally includes using the sender's address to look up the contacts data.
Step 506 represents evaluating whether the contact attribute exists and is set as private. If not, step 508 represents evaluating the device privacy mode setting 124 to determine whether the device has been set to the private mode. If neither, step 510 allows the notification of the communication to pass privacy-based blocking, as generally described above.
If the contact is determined to exist and is set to private (step 506), or the device is determined to be in the private mode (step 508), then the notification will be prevented, as generally represented via step 512. Step 514 represents further processing, such as to perform private storage/logging or not, to change voice mail, send an automated reply, and so forth as generally exemplified above.
As can be seen, numerous benefits and advantages are provided by protecting privacy with respect to communications. Other ways to protect privacy include marking applications and content as private, (e.g., bought or acquired while in the private mode or later designated as private). Purchases and purchase history of applications, downloads, goods, services and so forth may be likewise marked as private so they do not appear visible to a user with non-elevated privileges, for example. Rules such as to automatically mark private certain purchases (e.g., any purchase over $5.00) also may be used.
With reference to
Components of the mobile device 600 may include, but are not limited to, a processing unit 605, system memory 610, and a bus 615 that couples various system components including the system memory 610 to the processing unit 605. The bus 615 may include any of several types of bus structures including a memory bus, memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures, and the like. The bus 615 allows data to be transmitted between various components of the mobile device 600.
The mobile device 600 may include a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the mobile device 600 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the mobile device 600.
Communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, Bluetooth®, Wireless USB, infrared, WiFi, WiMAX, and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
The system memory 610 includes computer storage media in the form of volatile and/or nonvolatile memory and may include read only memory (ROM) and random access memory (RAM). On a mobile device such as a cell phone, operating system code 620 is sometimes included in ROM although, in other embodiments, this is not required. Similarly, application programs 625 are often placed in RAM although again, in other embodiments, application programs may be placed in ROM or in other computer-readable memory. The heap 630 provides memory for state associated with the operating system 620 and the application programs 625. For example, the operating system 620 and application programs 625 may store variables and data structures in the heap 630 during their operations.
The mobile device 600 may also include other removable/non-removable, volatile/nonvolatile memory. By way of example,
In some embodiments, the hard disk drive 636 may be connected in such a way as to be more permanently attached to the mobile device 600. For example, the hard disk drive 636 may be connected to an interface such as parallel advanced technology attachment (PATA), serial advanced technology attachment (SATA) or otherwise, which may be connected to the bus 615. In such embodiments, removing the hard drive may involve removing a cover of the mobile device 600 and removing screws or other fasteners that connect the hard drive 636 to support structures within the mobile device 600.
The removable memory devices 635-637 and their associated computer storage media, discussed above and illustrated in
A user may enter commands and information into the mobile device 600 through input devices such as a key pad 641 and the microphone 642. In some embodiments, the display 643 may be touch-sensitive screen and may allow a user to enter commands and information thereon. The key pad 641 and display 643 may be connected to the processing unit 605 through a user input interface 650 that is coupled to the bus 615, but may also be connected by other interface and bus structures, such as the communications module(s) 632 and wired port(s) 640. Motion detection 652 can be used to determine gestures made with the device 600.
A user may communicate with other users via speaking into the microphone 642 and via text messages that are entered on the key pad 641 or a touch sensitive display 643, for example. The audio unit 655 may provide electrical signals to drive the speaker 644 as well as receive and digitize audio signals received from the microphone 642.
The mobile device 600 may include a video unit 660 that provides signals to drive a camera 661. The video unit 660 may also receive images obtained by the camera 661 and provide these images to the processing unit 605 and/or memory included on the mobile device 600. The images obtained by the camera 661 may comprise video, one or more images that do not form a video, or some combination thereof.
The communication module(s) 632 may provide signals to and receive signals from one or more antenna(s) 665. One of the antenna(s) 665 may transmit and receive messages for a cell phone network. Another antenna may transmit and receive Bluetooth® messages. Yet another antenna (or a shared antenna) may transmit and receive network messages via a wireless Ethernet network standard.
Still further, an antenna provides location-based information, e.g., GPS signals to a GPS interface and mechanism 672. In turn, the GPS mechanism 672 makes available the corresponding GPS data (e.g., time and coordinates) for processing.
In some embodiments, a single antenna may be used to transmit and/or receive messages for more than one type of network. For example, a single antenna may transmit and receive voice and packet messages.
When operated in a networked environment, the mobile device 600 may connect to one or more remote devices. The remote devices may include a personal computer, a server, a router, a network PC, a cell phone, a media playback device, a peer device or other common network node, and typically includes many or all of the elements described above relative to the mobile device 600.
Aspects of the subject matter described herein are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with aspects of the subject matter described herein include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microcontroller-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
Aspects of the subject matter described herein may be described in the general context of computer-executable instructions, such as program modules, being executed by a mobile device. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. Aspects of the subject matter described herein may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
Furthermore, although the term server is often used herein, it will be recognized that this term may also encompass a client, a set of one or more processes distributed on one or more computers, one or more stand-alone storage devices, a set of one or more other devices, a combination of one or more of the above, and the like.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.