TIME DELAYED MESSAGING SYSTEM

Method and apparatus are disclosed for time delayed messaging system. An example method to send messages includes receiving, via a touch screen of a mobile device, content of a message to send to a recipient and scheduling, via the touch screen, a time at which to send the message. In the example method, the scheduled time is after a current time. The example method also include storing, in memory of the mobile device, the message associated with the scheduled time. Additionally the example method includes providing, via the touch screen, an opportunity to edit the message before the scheduled time, and sending, via a processor of the mobile device, the message at the scheduled time.

TECHNICAL FIELD

The present disclosure generally relates to messaging systems on mobile devices and, more specifically, a time delayed messaging system.

BACKGROUND

Mobile computing devices, such as smartphone and smartwatches, are evolving rapidly. Messaging to and from these devices is more and more becoming the preferred method of communicating. People use mobile computing device message for interpersonal communication. However, organizations, such as businesses and political organizations also rely on it to send notifications to people. One such type of messaging system is short message service (SMS), often referred to as “text messaging” because it was original limited to sending relatively short message that only contained text.

SUMMARY

Example embodiments are disclosed for time delayed messaging system. An example method to send messages includes receiving, via a touch screen of a mobile device, content of a message to send to a recipient and scheduling, via the touch screen, a time at which to send the message. In the example method, the scheduled time is after a current time. The example method also include storing, in memory of the mobile device, the message associated with the scheduled time. Additionally the example method includes providing, via the touch screen, an opportunity to edit the message before the scheduled time, and sending, via a processor of the mobile device, the message at the scheduled time.

An example mobile device includes a processor coupled to memory. The processor executes an application stored in the memory to cause the mobile device to receive, via a first interface on a touch screen of the mobile device, content of a message to send to a recipient. Additionally, the application causes the mobile device to schedule, via a second interface on the touch screen, to receive a time at which to send the message, the scheduled time being after a current time. The application also causes the mobile device to store, in the memory of the mobile device, the message associated with the scheduled time, and provide, via the first interface on the touch screen, an opportunity to edit the message before the scheduled time. At the scheduled time, the application causes the mobile device to transmit, via a mobile communication network radio of the mobile device, the message.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Text messaging applications facilitate communicating to others one mobile devices through various messaging protocols, such as Short Message Service (SMS). However, the SMS protocol is limited. The SMS protocol provides a standardized method of transmitting, routing, and delivering SMS message on a telephonic network. Despite its technical limitations, one of the reasons SMS messaging endures is because it is transmitted on the telephonic network and messaging does not require a data network connection (e.g., 3G, LTE, etc.). However, barebones features of SMS need to be supplemented to expand its capabilities to reflect the technical needs of users of modern mobile devices. For example, SMS messaging is done instantly (or near instantly), or as soon as a user sends the message. However, users don't always think to messages when it is appropriate to send such messages. For example, a user may remember a siblings birthday a few days before the birthday but may forget to send a message on the day of the birthday. Existing methods of working around this involve setting a reminder in another program, such as a calendar. It is burdensome to enter a reminder in one application, receive the notification of the reminder, open a different application, and send message. For example, the notification may not be noticed or the initial motivation to send the message may be decreased at a later date. Even if the user composes the message to be sent at the later date as part of the calendar reminder, manipulating text on the relatively small touch interface of a mobile device to copy and paste that message into another application is challenging and often frustrating.

As discussed below, an application executing on a mobile device provides for a method of scheduling deliver of messages. The application provides a graphical user interface (GUI) to enable a user to interact with the application. The mobile device executing the application displays the GUI to provide a highly intuitive, user-friendly interface to facilitate a user scheduling a message to send after a specified delay. The delay may be a specific delay of the particular message. For example, a message with the contents of “Happy Birthday” may be scheduled to be sent on October 16 at 12:00 PM. In some examples, the scheduled time and/or day take into account the recipient's time zone. For example, a user in the eastern time zone may schedule a message be send to a recipient in the pacific time zone at 12:00 PM without personally knowing which time zone the recipient is in. In such an example, when the user schedules the delivery of a message for 12:00 PM in the recipient's time zone, the message may be sent at 3:00 PM in the user's time zone. Alternatively or additionally, in some examples, the delay may be based on a global user-define time delay that is applied to all message sent through the application. For example, the user may set that all messages are sent with a five minute delay after being composed. Additionally or alternatively, in some examples, the user may set a messaging blackout period during which messages will not be sent until the blackout period has expired. In some such examples, the blackout period accounts for the time zone of the recipient. For example, the user may specify that messages should not be sent between 11:00 PM and 6:00 AM in the recipient's time zone. In such an example, a message sent by a user in Chicago at 2:00 PM to a recipient in Tokyo may be delayed until 4:00 PM central time (that is, 6:00 AM in GMT +9). During these delay periods, the messages are editable and/or cancelable. In such a manner, the method provides a user with the example benefits of (i) composing messages when the user remembers, even when the message is not yet timely, (ii) preventing messages being delivered at inappropriate times, and/or (iii) allowing a user to cancel or edit messages that were, for example, drafted in a heated moment.

FIGS. 1A, 1B, and 1Cillustrate an application100executing on a mobile device102to delay transmission of messages. As discussed below, the application100sends messages via the Short Messaging System (SMS) protocol. However, the application100may use any and/or more than one one-to-one messaging protocol. The application100includes interfaces to facilitate managing messages to recipients. The application includes a contact interface (not shown) that provides a selectable list of recipients. In some examples, the contact interface also includes a summary of interactions with the recipients on the list of recipients (e.g., the most recent received/sent message, etc.). In the illustrated example ofFIG. 1A, the application100provides a messaging interface104that displays messages106between a user and a recipient. The messaging interface104includes selectable controls108,110,112,114, and116that facilitate the user entering messages106to be send to the recipient. An emoji control108provides a list of emojis and/or other pictographs (e.g., a gif, an animated gif, etc.) be inserted into a message to be sent. A file control110facilitates inserting a picture stored on the mobile device102into the message to be sent. The voice control112provides an interface to enter the message to be sent via voice-to-text transcription. The text control114provides a textbox in which to enter text through a keyboard (e.g., a hardware keyboard, a soft keyboard, etc.) into the message to be sent. The scheduler control116provides a scheduling interface118that facilitates scheduling the message to be sent.

FIG. 1Billustrates the scheduling interface118. The scheduling interface118facilitates the user entering and/or scheduling the message to be sent. In the illustrated example, the scheduling interface118includes the controls108,110,112,114, and116that facilitate the user entering messages106to be send to the recipient. In some examples, when the application100transitions to the scheduling interface118, any information (e.g., text, pictures, emojis, etc.) entered via the controls108,110,112,114, and116on the messaging interface104ofFIG. 1Aare copied into the text control114of the scheduling interface118. Additionally, the scheduling interface118includes a scheduler control120that facilitates entering information regarding a future time of delivery. In the illustrated example, the scheduler control120includes date and time information122wherein the user selects (e.g., by individually scrolling through each element of the information) a date and time for the message to be delivered. Alternatively or additionally, in some examples, the scheduler control120includes time selections to facilitate the user selecting an amount of time for the application100to delay sending the message. Alternatively, in some examples, the scheduling interface118does not include the scheduler control120. Rather, the application100sends the messages based on globally set preferences for time delays and blackout periods. In the illustrated example, the scheduling interface118includes a repeat control124. The repeat control124facilitates the user entering a period in which to resent the message. For example, the repeat control124may include options to repeat the message every day, every week, every month, every year, every specific day of the week, and/or every occurrence of an event (e.g., the phone restarting, the phone proximate a particular set of global positioning system (GPS) coordinates, etc.) etc. For example, the user may schedule the message “Happy Birthday!” to be sent every year on October 16.

FIG. 1Cillustrates the messaging interface104that includes a scheduled message control126while a message has been scheduled but has not yet been sent. When selected, the scheduled message control126displays the pending scheduled message(s) and provides information (e.g., contents of the message, scheduled timed time to send, time until the message is sent, etc.) regarding the pending scheduled message(s) and an option to edit the pending scheduled message(s) via the scheduling interface118.

When a message is scheduled via the scheduling interface118, the application100determines when to send the message. The actual time at which to send the message is based on (i) the scheduled time to send, (ii) the time zone of the recipient, (iii) any time delay preference, and/or (iv) any blackout preference, etc. For example, a message scheduled for delivery at 6:00 PM in the time zone of the recipient may be actually scheduled for delivery at 1:00 PM in the time zone of the user. As another example, a message entered into the application without any particular time scheduled may be delayed by the global delay preference. In some examples, the application100may apply more than one timing condition on when the send the message. For example, the application100may apply the global blackout preference to a message scheduled for a particular time.

In some examples, the application100determines the time zone of the recipient. In some such examples, the application requests that the user enter the time zone of the recipient when the recipient is entered into the list of recipients. Alternatively or additionally, the application100receives that time zone of the recipient in a message from the recipients (e.g., as part of the messaging protocol). In such examples, the application100determines the time zone of the recipient without input from the user. In such examples, when the application100receives a message from the recipient, the application100stores the time zone in associated with the recipient in memory.

In some examples, when the application100creates a time-delayed message, the application100appends time-delay attributes to the message data (e.g., the phone number of the recipient, the text of the message, etc.) and stores the appended message data in memory (e.g., the memory222ofFIG. 2below). From time-to-time, the application100executing in a background mode or a foreground mode, reads the time-delay attributes in memory to determine whether a message is to be sent. In some such examples, the application stores the appended message data in a linear data structure organized by time order to minimize the resources used to search through the memory assigned to the application to determine whether there are message to be sent at a particular time. For example, if the first appended message (or the next appended message) is for a time later than the current time, the application can stop searching the data structure.

FIG. 2is a block diagram of electronic components200of the mobile device102ofFIGS. 1A, 1B, and 1C. In the illustrated example, the electronic components includes application hardware202, a screen204, cellular hardware206, a cellular transceiver208, a SIM card210, a personal area network (PAN) module212, a wireless local area network (WLAN) module214, a GPS receiver216, and a data bus218.

The application hardware202includes a processor or controller220and memory222. In the illustrated example, the application hardware202is structured to include application100. The processor or controller220may be any suitable processing device or set of processing devices such as, but not limited to: a microprocessor, a microcontroller-based platform, a suitable integrated circuit, one or more field programmable gate arrays (FPGAs), and/or one or more application-specific integrated circuits (ASICs). The memory222may be volatile memory (e.g., RAM, which can include non-volatile RAM, magnetic RAM, ferroelectric RAM, and any other suitable forms); non-volatile memory (e.g., disk memory, FLASH memory, EPROMs, EEPROMs, non-volatile solid-state memory, etc.), unalterable memory (e.g., EPROMs), and/or read-only memory. In some examples, the memory222includes multiple kinds of memory, particularly volatile memory and non-volatile memory.

The memory222is computer readable media on which one or more sets of instructions, such as the software for operating the methods of the present disclosure can be embedded. The instructions may embody one or more of the methods or logic as described herein. In a particular embodiment, the instructions may reside completely, or at least partially, within any one or more of the memory222, the computer readable medium, and/or within the processor220during execution of the instructions.

The screen204receives input from the user(s) and display information. In the illustrated example, the screen204is a touch screen. The user interacts with the interfaces104and118, and the controls108,110,112,114, and116via the screen204. The screen204may include a Liquid Crystal Display (LCD), a Thin Film Transistor LCD (TFT-LCD) display, an In Plane Switching LCD (IPS-LCD) display, an Organic Light-Emitting Diode (OLED) display, an Active Matrix OLED (AMOLED) display, or a “Super AMOLED” display, etc.

The cellular hardware206includes hardware (e.g., processors, digital signal processing circuitry, memory, etc.) to communicate with a cellular network via the cellular transceiver208. The cellular hardware206handles the cellular protocols (e.g., authentication, signal processing, transmission and reception, etc.). In some examples, the application hardware202and the cellular hardware206are combined into one hardware package. The cellular hardware206uses information stored on the subscriber identity module (SIM) card210to communicate with the cellular network, such as an international mobile subscriber identity (IMSI) number and a corresponding authentication key.

The PAN module212includes hardware (e.g., processors, memory, storage, antenna, etc.) to communicate with other devices (e.g., a vehicle, a headset, headphones, a smart watch etc.) using a personal area network protocol (e.g., Bluetooth®, Zigbee®, etc.). The WLAN module214212includes hardware (e.g., processors, memory, storage, antenna, etc.) to communicate with external networks (e.g., the Internet, etc.) using a wireless local area network protocol (including IEEE 802.11 a/b/g/n/ac or others). The GPS receiver216receives signals from GPS satellites (and, in some example, the cellular network) and calculates the position of the mobile device102.

The data bus218is one or more electrical connections that communicatively couple the application hardware202, the cellular hardware206, the PAN module212, the WLAN module214and/or the GPS receiver216. The data bus(s)218may include, for example, Serial Peripheral Interface (SPI) bus(s), Inter-Integrated Circuit (I2C) bus(es), Universal Asynchronous (UART) bus(es), and/or Secure Digital Input/Output (SDIO) bus(es), etc.

FIG. 3is a flowchart of a method to delay transmission of message, which may be implemented by the electronic components200ofFIG. 2. Initially, at block302, the application100receives a selection of a contact from a contact list (e.g., the list of recipients). At block304, the application100receives, via the controls108,110,112, and114, input of a message (e.g., text, images, emojis, etc.) to send to the contact selected at block302. At block306, the application100determines whether a indication to schedule a delayed message is received. For example, the user may selected, on the screen204, the scheduler control120to indicate a desire to schedule a delayed message. If the indication to schedule the delayed message is not received, the method continues at block308. Otherwise, when the indication to schedule the delayed message is received, the method continues at block310.

At block308, the application100sends the message (e.g., via the cellular hardware206, via the WLAN module214, etc.). At block310, the application receives, via the scheduling interface118, a selection of a date and/or time at which to send the message received at block304. At block312, the application determines whether it is currently the date and/or time to send the message. When it is the date and/or time to send the message, the method continues at block308. Otherwise, when it is not the date and/or time to send the message, the method continues at block314. At block314, the application100determines whether it has received an indication to edit the message that is scheduled to be delivered at a later date and/or time. When an indication to edit the scheduled message has be received, the method continues to block316. Otherwise, when the indication to edit the scheduled message has not been received, the method returns to block312. At block316, the application100receives edits to the message (e.g., via the controls108,110,112, and114).

The flowchart ofFIG. 3is representative of machine readable instructions stored in memory (such as the memory222ofFIG. 2) that comprise one or more programs that, when executed by a processor (such as the processor220ofFIG. 2), cause the mobile device102to implement the example application100ofFIGS. 1A, 1B, 1C and 2. Further, although the example program(s) is/are described with reference to the flowchart illustrated inFIG. 3, many other methods of implementing the example application100may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.