Method for integrated management of messages and electronic device implementing same

Various embodiments provide an electronic device and method therefor, the electronic device including: a display; at least one communication circuit configured to perform wireless communication with an external electronic device using one of a plurality of communication protocols; a processor electrically connected to the display and the communication circuit; and a memory electrically connected to the processor, wherein the memory stores a plurality of messaging applications for providing one of a plurality of messaging services, and the memory stores instructions which, when executed by a processor, cause the processor to perform operations comprising: displaying a user interface on the display, in which the user interface is configured to provide, to one message thread, the plurality of messaging applications or outgoing and incoming messages associated with the plurality of messaging services; storing, in the memory, a plurality of first identifications (IDs) identifying communication with the external electronic device and/or an account associated with the external electronic device, using one of each of the plurality of messaging applications and the plurality of messaging services; storing, in the memory, at least one second ID identifying a message thread associated with communication with the external electronic device and/or an account associated with the external electronic device; receiving a new incoming message using the at least one communication circuit; and selecting a message thread for the new incoming message at least partially based on at least one of the first IDs and the second ID.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based on and claims priority under 35 U.S.C. § 119 to Korean Application Serial No. 10-2016-0001959, which was filed in the Korean Intellectual Property Office on Jan. 7, 2016, the disclosure of which is incorporated by reference herein in its entirety.

TECHNICAL FIELD

The present disclosure relates generally to a method and apparatus for integrated management of messages.

BACKGROUND

Recently, with the development of digital technology, various types of electronic devices such as a mobile communication terminal, a Personal Digital Assistant (PDA), an electronic scheduler, a smart phone, a tablet Personal Computer (PC), a wearable device, etc. have been widely used. The electronic device has various functions such as a voice call, message transmission like a Short Message Service (SMS)/Multimedia Message Service (MMS), a video call, an electronic organizer, photography, email transmission/reception, broadcast reproduction, Internet, music reproduction, schedule management, Social Networking Service (SNS), messenger, dictionary, game, and the like.

The electronic device may use an SMS or MMS as a message transmitting means when transmitting a message, and provide various Instant Messenger (hereinafter, referred to as IM) services through various applications. Therefore, a user may subscribe to a desired messaging service among various instant messaging services and use the same, so that range of selection of messaging service has widened.

Although the range of selection of messaging services is widened as messaging services have become diverse, there is an inconvenience in that the user must select a messaging service to be used each time a message is transmitted. Although various integrated messaging services are provided in order to reduce the inconvenience, there is a disadvantage in that an application for substantially integrated management of messages is required to be separately installed.

SUMMARY

Various example embodiments may provide a method and apparatus which can perform an integrated management for a plurality of messaging services, and manage a conversation thread in an integrated messenger.

An electronic device according to various example embodiments may include: a display; at least one communication circuit configured to perform wireless communication with an external electronic device using one of a plurality of communication protocols; a processor electrically connected to the display and the communication circuit; and a memory electrically connected to the processor, wherein the memory stores a plurality of messaging applications for providing one of a plurality of messaging services, and the memory stores instructions which, when executed by the processor, cause the processor to perform operations comprising: displaying a user interface on the display, wherein the user interface is configured to provide, to one message thread, the plurality of messaging applications and/or outgoing and incoming messages associated with the plurality of messaging services; storing, in the memory, a plurality of first identifications (IDs) identifying communication with the external electronic device and/or an account associated with the external electronic device, using one of each of the plurality of messaging applications and the plurality of messaging services; storing, in the memory, at least one second ID identifying a message thread associated with communication with the external electronic device and/or the account associated with the external electronic device; receiving a new incoming message using the at least one communication circuit; and selecting a message thread for the new incoming message at least partially based on at least one of the first IDs and the second ID.

A method of operating an electronic device according to various example embodiments may include: displaying a user interface that provides, to one message thread, a plurality of messaging applications and outgoing and incoming messages associated with a plurality of messaging services; storing, in a memory, a plurality of first identifications (IDs) identifying communication with the external electronic device and/or an account associated with the external electronic device, using one of each of the plurality of messaging applications and the plurality of messaging services; storing, in the memory, at least one second ID identifying a message thread associated with communication with the external electronic device and/or an account associated with the external electronic device; receiving a new incoming message using at least one communication circuit; and selecting a message thread for the new incoming message at least partially based on at least one of the first IDs and the second ID.

According to various example embodiments, a plurality of messaging services may be integrated and managed, and a conversation thread may be managed by an integrated messenger.

According to various example embodiments, various messaging services which are installed in an electronic device using a messenger application may be conveniently used.

According to various example embodiments, when a message transmission is not performed using a first messaging service, the message is re-transmitted using a second messaging service, so that a cost burden caused by the message retransmission can be reduced.

According to various example embodiments, a session for each messaging service can be maintained and managed, so that a messaging service can be continuously provided through one messenger application.

According to various example embodiments, a messenger application can be allowed to be connected to a new messaging service so as to be extensively applicable thereto.

DETAILED DESCRIPTION

In the present disclosure, the expression “A or B”, “at least one of A or/and B”, or “one or more of A or/and B” may include all possible combinations of the items listed. For example, the expression “A or B”, “at least one of A and B”, or “at least one of A or B” refers to all of (1) including at least one A, (2) including at least one B, or (3) including all of at least one A and at least one B. The expression “a first”, “a second”, “the first”, or “the second” used in various embodiments of the present disclosure may modify various components regardless of the order and/or the importance but does not limit the corresponding components. For example, a first user device and a second user device indicate different user devices although both of them are user devices. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element without departing from the scope of the present disclosure.

Hereinafter, an electronic device according to various embodiments will be described with reference to the accompanying drawings. As used herein, the term “user” may indicate a person who uses an electronic device or a device (e.g., an artificial intelligence electronic device) that uses an electronic device.

FIG. 1is a diagram illustrating an example network environment including an electronic device according to various example embodiments of the present disclosure.

An electronic device101within a network environment100, according to various embodiments, will be described with reference toFIG. 1. The electronic device101may include a bus110, a processor120, a memory130, an input/output interface (e.g., including input/output circuitry)150, a display160, and a communication interface (e.g., including communication circuitry)170. According to an embodiment of the present disclosure, the electronic device101may omit at least one of the above components or may further include other components.

The bus110may include, for example, a circuit which interconnects the components110to170and delivers a communication (e.g., a control message and/or data) between the components110to170.

The processor120may include one or more of a Central Processing Unit (CPU), an Application Processor (AP), and a Communication Processor (CP). The processor120may carry out, for example, calculation or data processing relating to control and/or communication of at least one other component of the electronic device101.

The memory130may include a volatile memory and/or a non-volatile memory. The memory130may store, for example, commands or data relevant to at least one other component of the electronic device101. According to an embodiment of the present disclosure, the memory130may store software and/or a program140. The program140may include, for example, a kernel141, middleware143, an Application Programming Interface (API)145, and/or application programs (or “applications”)147. At least some of the kernel141, the middleware143, and the API145may be referred to as an Operating System (OS).

The kernel141may control or manage system resources (e.g., the bus110, the processor120, or the memory130) used for performing an operation or function implemented in the other programs (e.g., the middleware143, the API145, or the application programs147). Furthermore, the kernel141may provide an interface through which the middleware143, the API145, or the application programs147may access the individual components of the electronic device101to control or manage the system resources.

The middleware143, for example, may serve as an intermediary for allowing the API145or the application programs147to communicate with the kernel141to exchange data.

Also, the middleware143may process one or more task requests received from the application programs147according to priorities thereof. For example, the middleware143may assign priorities for using the system resources (e.g., the bus110, the processor120, the memory130, or the like) of the electronic device101, to at least one of the application programs147. For example, the middleware143may perform scheduling or loading balancing on the one or more task requests by processing the one or more task requests according to the priorities assigned thereto.

The API145is an interface through which the applications147control functions provided from the kernel141or the middleware143, and may include, for example, at least one interface or function (e.g., instruction) for file control, window control, image processing, character control, and the like.

The input/output interface150, for example, may include various input/output circuitry provided to function as an interface that may transfer commands or data input from a user or another external device to the other element(s) of the electronic device101. Furthermore, the input/output interface150may output the commands or data received from the other element(s) of the electronic device101to the user or another external device.

Examples of the display160may include a Liquid Crystal Display (LCD), a Light-Emitting Diode (LED) display, an Organic Light-Emitting Diode (OLED) display, a MicroElectroMechanical Systems (MEMS) display, and an electronic paper display, or the like, but is not limited thereto. The display160may display, for example, various types of contents (e.g., text, images, videos, icons, or symbols) to users. The display160may include a touch screen, and may receive, for example, a touch, gesture, proximity, or hovering input using an electronic pen or a user's body part.

The communication interface170may include various communication circuitry provided to establish communication, for example, between the electronic device101and an external device (e.g., a first external electronic device102, a second external electronic device104, or a server106). For example, the communication interface170may be connected to a network162through wireless or wired communication, and may communicate with an external device (e.g., the second external electronic device104or the server106). The wireless communication may use at least one of, for example, Long Term Evolution (LTE), LTE-Advance (LTE-A), Code Division Multiple Access (CDMA), Wideband CDMA (WCDMA), Universal Mobile Telecommunications System (UMTS), Wireless Broadband (WiBro), and Global System for Mobile Communications (GSM), as a cellular communication protocol. In addition, the wireless communication may include, for example, short range communication164. The short-range communication164may include at least one of, for example, Wi-Fi, Bluetooth, Near Field Communication (NFC), and Global Navigation Satellite System (GNSS). GNSS may include, for example, at least one of global positioning system (GPS), global navigation satellite system (Glonass), Beidou Navigation satellite system (Beidou) or Galileo, and the European global satellite-based navigation system, based on a location, a bandwidth, or the like. Hereinafter, in the present disclosure, the “GPS” may be interchangeably used with the “GNSS”. The wired communication may include, for example, at least one of a Universal Serial Bus (USB), a High Definition Multimedia Interface (HDMI), Recommended Standard 232 (RS-232), and a Plain Old Telephone Service (POTS). The network162may include at least one of a telecommunication network such as a computer network (e.g., a LAN or a WAN), the Internet, and a telephone network.

Each of the first and second external electronic devices102and104may be of a type identical to or different from that of the electronic device101. According to an embodiment of the present disclosure, the server106may include a group of one or more servers. According to various embodiments of the present disclosure, all or some of the operations performed in the electronic device101may be executed in another electronic device or a plurality of electronic devices (e.g., the electronic devices102and104or the server106). According to an embodiment of the present disclosure, when the electronic device101has to perform some functions or services automatically or in response to a request, the electronic device101may request another device (e.g., the electronic device102or104or the server106) to execute at least some functions relating thereto instead of or in addition to autonomously performing the functions or services. Another electronic device (e.g., the electronic device102or104, or the server106) may execute the requested functions or the additional functions, and may deliver a result of the execution to the electronic device101. The electronic device101may process the received result as it is or additionally, and may provide the requested functions or services. To this end, for example, cloud computing, distributed computing, or client-server computing technologies may be used.

FIG. 2is a block diagram illustrating an example electronic device according to various example embodiments of the present disclosure.

The electronic device201may include, for example, all or a part of the electronic device101illustrated inFIG. 1. The electronic device201may include one or more processors210(e.g., Application Processors (AP)), a communication module (e.g., including communication circuitry)220, a subscriber identification module (SIM)224, a memory230, a sensor module240, an input device (e.g., including input circuitry)250, a display260, an interface (e.g., including interface circuitry)270, an audio module280, a camera module291, a power management module295, a battery296, an indicator297, and a motor298.

The processor210may control a plurality of hardware or software components connected to the processor210by driving an operating system or an application program, and perform processing of various pieces of data and calculations. The processor210may be embodied as, for example, a System on Chip (SoC). According to an embodiment of the present disclosure, the processor210may further include a Graphic Processing Unit (GPU) and/or an image signal processor. The processor210may include at least some (e.g., a cellular module221) of the components illustrated inFIG. 2. The processor210may load, into a volatile memory, commands or data received from at least one (e.g., a non-volatile memory) of the other components and may process the loaded commands or data, and may store various data in a non-volatile memory.

The communication module220may have a configuration equal or similar to that of the communication interface170ofFIG. 1. The communication module220may include, various communication circuitry, such as, for example, and without limitation, a cellular module221, a Wi-Fi module223, a BT module225, a GNSS module227(e.g., a GPS module227, a Glonass module, a Beidou module, or a Galileo module), an NFC module228, and a Radio Frequency (RF) module229.

The cellular module221, for example, may provide a voice call, a video call, a text message service, or an Internet service through a communication network. According to an embodiment of the present disclosure, the cellular module221may distinguish and authenticate the electronic device201in a communication network using a subscriber identification module (e.g: SIM card)224(e.g., the SIM card). According to an embodiment of the present disclosure, the cellular module221may perform at least some of the functions that the AP210may provide. According to an embodiment of the present disclosure, the cellular module221may include a communication processor (CP).

For example, each of the Wi-Fi module223, the BT module225, the GNSS module227, and the NFC module228may include a processor for processing data transmitted/received through a corresponding module. According to an embodiment of the present disclosure, at least some (e.g., two or more) of the cellular module221, the Wi-Fi module223, the BT module225, the GNSS module227, and the NFC module228may be included in one Integrated Chip (IC) or IC package.

The RF module229, for example, may transmit/receive a communication signal (e.g., an RF signal). The RF module229may include, for example, a transceiver, a Power Amplifier Module (PAM), a frequency filter, a Low Noise Amplifier (LNA), and an antenna. According to another embodiment of the present disclosure, at least one of the cellular module221, the WIFI module223, the BT module225, the GNSS module227, and the NFC module228may transmit/receive an RF signal through a separate RF module.

The subscriber identification module224may include, for example, a card including a subscriber identity module and/or an embedded SIM, and may contain unique identification information (e.g., an Integrated Circuit Card Identifier (ICCID)) or subscriber information (e.g., an International Mobile Subscriber Identity (IMSI)).

The memory230(e.g., the memory130) may include, for example, an embedded memory232or an external memory234. The embedded memory232may include at least one of a volatile memory (e.g., a Dynamic Random Access Memory (DRAM), a Static RAM (SRAM), a Synchronous Dynamic RAM (SDRAM), and the like) and a non-volatile memory (e.g., a One Time Programmable Read Only Memory (OTPROM), a Programmable ROM (PROM), an Erasable and Programmable ROM (EPROM), an Electrically Erasable and Programmable ROM (EEPROM), a mask ROM, a flash ROM, a flash memory (e.g., a NAND flash memory or a NOR flash memory), a hard disc drive, a Solid State Drive (SSD), and the like).

The external memory234may further include a flash drive, for example, a Compact Flash (CF), a Secure Digital (SD), a Micro Secure Digital (Micro-SD), a Mini Secure Digital (Mini-SD), an eXtreme Digital (xD), a MultiMediaCard (MMC), a memory stick, or the like. The external memory234may be functionally and/or physically connected to the electronic device201through various interfaces.

The sensor module240, for example, may measure a physical quantity or detect an operation state of the electronic device201, and may convert the measured or detected information into an electrical signal. The sensor module240may include, for example, at least one of a gesture sensor240A, a gyro sensor240B, an atmospheric pressure sensor (barometer)240C, a magnetic sensor240D, an acceleration sensor240E, a grip sensor240F, a proximity sensor240G; a color sensor240H (e.g., red, green, and blue (RGB) sensor), a biometric sensor (medical sensor)240I, a temperature/humidity sensor240J, an illuminance (e.g., light) sensor240K, a Ultra Violet (UV) sensor240M and an ultrasonic sensor240N. Additionally or alternatively, the sensor module240may include, for example, an E-nose sensor, an electromyography (EMG) sensor, an electroencephalogram (EEG) sensor, an electrocardiogram (ECG) sensor, an Infrared (IR) sensor, an iris scan sensor, and/or a finger scan sensor. The sensor module240may further include a control circuit for controlling one or more sensors included therein. According to an embodiment of the present disclosure, the electronic device201may further include a processor configured to control the sensor module240, as a part of the processor210or separately from the processor210, and may control the sensor module240while the processor210is in a sleep state.

The input device250may include various input circuitry, such as, for example, and without limitation, a touch panel252, a (digital) pen sensor254, a key256, or an ultrasonic input device258. The touch panel252may use, for example, at least one of a capacitive type, a resistive type, an infrared type, and an ultrasonic type. The touch panel252may further include a control circuit. The touch panel252may further include a tactile layer, and provide a tactile reaction to the user.

The (digital) pen sensor254may include, for example, a recognition sheet which is a part of the touch panel or is separated from the touch panel. The key256may include, for example, a physical button, an optical key or a keypad. The ultrasonic input device258may detect, through a microphone (e.g., the microphone288), ultrasonic waves generated by an input tool, and identify data corresponding to the detected ultrasonic waves.

The display260(e.g., the display160) may include a panel262, a hologram device264, or a projector266. The panel262may include a configuration identical or similar to the display160illustrated inFIG. 1. The panel262may be implemented to be, for example, flexible, transparent, or wearable. The panel262may be embodied as a single module with the touch panel252. The hologram device264may show a three dimensional (3D) image in the air by using an interference of light. The projector266may project light onto a screen to display an image. The screen may be located, for example, in the interior of or on the exterior of the electronic device201. According to an embodiment of the present disclosure, the display260may further include a control circuit for controlling the panel262, the hologram device264, or the projector266.

The audio module280, for example, may bilaterally convert a sound and an electrical signal. At least some components of the audio module280may be included in, for example, the input/output interface150illustrated inFIG. 1. The audio module280may process voice information input or output through, for example, a speaker282, a receiver284, earphones286, or the microphone288.

The camera module291is, for example, a device which may photograph a still image and a video. According to an embodiment of the present disclosure, the camera module291may include one or more image sensors (e.g., a front sensor or a back sensor), a lens, an Image Signal Processor (ISP) or a flash (e.g., LED or xenon lamp).

The power management module295may manage, for example, power of the electronic device201. According to an embodiment of the present disclosure, the power management module295may include a Power Management Integrated Circuit (PMIC), a charger Integrated Circuit (IC), or a battery or fuel gauge. The PMIC may use a wired and/or wireless charging method. Examples of the wireless charging method may include, for example, a magnetic resonance method, a magnetic induction method, an electromagnetic wave method, and the like. Additional circuits (e.g., a coil loop, a resonance circuit, a rectifier, etc.) for wireless charging may be further included. The battery gauge may measure, for example, a residual quantity of the battery296, and a voltage, a current, or a temperature while charging. The battery296may include, for example, a rechargeable battery and/or a solar battery.

The indicator297may display a particular state (e.g., a booting state, a message state, a charging state, or the like) of the electronic device201or a part (e.g., the processor210) of the electronic device201. The motor298may convert an electrical signal into a mechanical vibration, and may generate a vibration, a haptic effect, or the like. Although not illustrated, the electronic device201may include a processing device (e.g., a GPU) for supporting a mobile TV. The processing device for supporting a mobile TV may process, for example, media data according to a certain standard such as Digital Multimedia Broadcasting (DMB), Digital Video Broadcasting (DVB), or mediaFLO™.

Each of the above-described component elements of hardware according to the present disclosure may be configured with one or more components, and the names of the corresponding component elements may vary based on the type of electronic device. In various embodiments, the electronic device may include at least one of the above-described elements. Some of the above-described elements may be omitted from the electronic device, or the electronic device may further include additional elements. Also, some of the hardware components according to various embodiments may be combined into one entity, which may perform functions identical to those of the relevant components before the combination.

FIG. 3is a block diagram illustrating an example program module according to various example embodiments of the present disclosure.

According to an embodiment of the present disclosure, the program module310(e.g., the program140) may include an Operating System (OS) for controlling resources related to the electronic device (e.g., the electronic device101) and/or various applications (e.g., the application programs147) executed in the operating system. The operating system may be, for example, Android™, iOS™, Windows™, Symbian™, Tizen™, Bada™, or the like.

The program module310may include a kernel320, middleware330, an API360, and/or applications370. At least some of the program module310may be preloaded on an electronic device, or may be downloaded from an external electronic device (e.g., the electronic device102or104, or the server106).

The kernel320(e.g., the kernel141) may include, for example, a system resource manager321and/or a device driver323. The system resource manager321may control, allocate, or collect system resources. According to an embodiment of the present disclosure, the system resource manager321may include a process management unit, a memory management unit, a file system management unit, and the like. The device driver323may include, for example, a display driver, a camera driver, a Bluetooth driver, a shared memory driver, a USB driver, a keypad driver, a Wi-Fi driver, an audio driver, or an Inter-Process Communication (IPC) driver.

For example, the middleware330may provide a function required in common by the applications370, or may provide various functions to the applications370through the API360so as to enable the applications370to efficiently use the limited system resources in the electronic device. According to an embodiment of the present disclosure, the middleware330(e.g., the middleware143) may include at least one of a run time library335, an application manager341, a window manager342, a multimedia manager343, a resource manager344, a power manager345, a database manager346, a package manager347, a connectivity manager348, a notification manager349, a location manager350, a graphic manager351, and a security manager352.

The runtime library335may include a library module that a compiler uses in order to add a new function through a programming language while an application370is being executed. The runtime library335may perform input/output management, memory management, the functionality for an arithmetic function, or the like.

The application manager341may manage, for example, a life cycle of at least one of the applications370. The window manager342may manage Graphical User Interface (GUI) resources used by a screen. The multimedia manager343may recognize a format required for reproduction of various media files, and may perform encoding or decoding of a media file by using a codec suitable for the corresponding format. The resource manager344may manage resources of a source code, a memory, and a storage space of at least one of the applications370.

The power manager345may operate together with, for example, a Basic Input/Output System (BIOS) or the like to manage a battery or power source and may provide power information or the like required for the operations of the electronic device. The database manager346may generate, search for, and/or change a database to be used by at least one of the applications370. The package manager347may manage installation or an update of an application distributed in a form of a package file.

For example, the connectivity manager348may manage wireless connectivity such as Wi-Fi or Bluetooth. The notification manager349may display or notify of an event such as an arrival message, promise, proximity notification, and the like in such a way that does not disturb a user. The location manager350may manage location information of an electronic device. The graphic manager351may manage a graphic effect which will be provided to a user, or a user interface related to the graphic effect. The security manager352may provide all security functions required for system security, user authentication, or the like. According to an embodiment of the present disclosure, when the electronic device (e.g., the electronic device101) has a telephone call function, the middleware330may further include a telephony manager for managing a voice call function or a video call function of the electronic device.

The middleware330may include a middleware module that forms a combination of various functions of the above-described components. The middleware330may provide a module specialized for each type of OS in order to provide a differentiated function. Further, the middleware330may dynamically remove some of the existing components or add new components.

The API360(e.g., the API145) is, for example, a set of API programming functions, and may be provided with a different configuration according to an OS. For example, in the case of Android or iOS, one API set may be provided for each platform. In the case of Tizen, two or more API sets may be provided for each platform.

The applications370(e.g., the application programs147) may include, for example, one or more applications which may provide functions such as a home371, a dialer372, an SMS/MMS373, an Instant Message (IM)374, a browser375, a camera376, an alarm377, contacts378, a voice dial379, an email380, a calendar381, a media player382, an album383, a clock384, health care (e.g., measuring exercise quantity or blood sugar), or environment information (e.g., providing atmospheric pressure, humidity, or temperature information), not shown.

According to an embodiment of the present disclosure, the applications370may include an application (hereinafter, referred to as an “information exchange application” for convenience of description) that supports exchanging information between the electronic device (e.g., the electronic device101) and an external electronic device (e.g., the electronic device102or104). The information exchange application may include, for example, a notification relay application for transferring specific information to an external electronic device or a device management application for managing an external electronic device.

For example, the notification relay application may include a function of transferring, to the external electronic device (e.g., the electronic device102or104), notification information generated from other applications of the electronic device101(e.g., an SMS/MMS application, an e-mail application, a health management application, or an environmental information application). Further, the notification relay application may receive notification information from, for example, an external electronic device and provide the received notification information to a user.

The device management application may manage (e.g., install, delete, or update), for example, at least one function of an external electronic device (e.g., the electronic device102or104) communicating with the electronic device (e.g., a function of turning on/off the external electronic device itself (or some components) or a function of adjusting the brightness (or a resolution) of the display), applications operating in the external electronic device, and services provided by the external electronic device (e.g., a call service or a message service).

According to an embodiment of the present disclosure, the applications370may include applications (e.g., a health care application of a mobile medical appliance or the like) designated according to an external electronic device (e.g., attributes of the electronic device102or104). According to an embodiment of the present disclosure, the applications370may include an application received from an external electronic device (e.g., the server106, or the electronic device102or104). According to an embodiment of the present disclosure, the applications370may include a preloaded application or a third party application that may be downloaded from a server. The names of the components of the program module310of the illustrated embodiment of the present disclosure may change according to the type of operating system.

According to various embodiments, at least a part of the programming module310may be implemented in software, firmware, hardware, or a combination of two or more thereof. At least some of the program module310may be implemented (e.g., executed) by, for example, the processor (e.g., the processor210). At least some of the program module310may include, for example, a module, a program, a routine, a set of instructions, and/or a process for performing one or more functions.

According to various embodiments, at least some of the devices (e.g., modules or functions thereof) or the method (e.g., operations) according to the present disclosure may be implemented by a command stored in a computer-readable storage medium in a programming module form. The instruction, when executed by a processor (e.g., the processor120), may cause the one or more processors to execute the function corresponding to the instruction. The computer-readable recoding media may be, for example, the memory130.

The electronic device described below may be the electronic device101ofFIG. 1or the electronic device201ofFIG. 2. However, for convenience of explanation, the electronic device described below may be described as the electronic device101ofFIG. 1. However, the electronic device is not necessarily limited to the electronic device101ofFIG. 1by the description.

FIG. 4is a diagram illustrating an example network environment of an electronic device and a server according to various example embodiments.

Referring toFIG. 4, according to an example embodiment of the present disclosure, a message integrated management system440may include a message transmission and reception server441and a message account server442. The message transmission and reception server441may serve as a server for transmitting and receiving messages, and provide a message transmission and reception function, a function of checking whether the message transmission and reception is successful, a function of checking whether the message is received by the recipient, and the like. The message account server442may serve as a server for managing users who have subscribed to a messaging service (or a messenger service), and provide functions such as subscription, account management, and checking whether the subscription has been made.

According to an embodiment of the present disclosure, the message integrated management system440may provide a messenger application (or a messaging application), and provide a function associated with message transmission and reception through the messenger application. For example, the messenger application may serve to allow different types of messaging services to be used through a single application. For example, the messenger application may refer to an application which can provide both a message transmitted or received using a first messaging service and a message transmitted or received using a second messaging service. When the message transmission is not available using the first messaging service, the messenger application may transmit the message using the second messaging service.

According to various embodiments, the messenger application may be basically provided while being installed in the electronic device101when the electronic device (for example, the electronic device101ofFIG. 1or the electronic device201ofFIG. 2) is manufactured. For example, after purchasing the electronic device101, a user may transmit or receive a message through the messenger application without a separate installation thereof.

According to an embodiment of the present disclosure, the messenger application may be installed in the electronic device101according to the user's selection. In this case, the messenger application may be an application that is not basically installed in the electronic device101but is required to be separately installed after the user purchased the electronic device101. The fact of whether the messenger application is basically installed in the electronic device101or not corresponds only to various embodiments of the present disclosure, and the present disclosure is not necessarily limited to these embodiments.

According to an embodiment of the present disclosure, although the message transmission and reception server441and the message account server442are illustrated separately in drawings, the message transmission and reception server441may also perform a function of the message account server442. Alternatively, the message account server442may also perform a function of the message transmission and reception server441. In this case, the message integrated management system440may include only the message transmission and reception server441, or may include only the message account server442.

According to an embodiment of the present disclosure, the message account server442may assign a session ID to each messaging service. For example, in a case of an IP-based message (for example, Rich Communications Services (RCS) message), a session connection may be required for the message transmission and reception. The message account server442may assign session identification (ID) to each messaging service for the message transmission and reception. The assigned session ID may be transmitted to electronic devices (for example, the first electronic device410and the second electronic device420), which make a request for the transmission or reception of the message. The message account server442may generate a session ID based on a messaging service for assigning the session ID and an electronic device (for example, a phone number of the electronic device) which makes a request for the generation of a session ID. The message account server442may store the generated session ID in a database, and transmit the generated session ID to the electronic device which made a request for the session ID generation. For example, the database may store a session ID for each messaging service in connection with the phone number of the electronic device. Alternatively, the database may store a session ID for each phone number of the electronic device in connection with the messaging service.

According to an embodiment of the present disclosure, when the first electronic device410makes a request for the message transmission, the message account server442may notify the first electronic device410of whether a message reception by the second electronic device420is possible using a messaging service (for example, the first messaging service) that has requested the message transmission. For example, the message account server442may determine whether the session ID for the first messaging service is stored in the database, with reference to the database, so that the message account server442may determine whether a message reception by the second electronic device420using the first messaging service is possible.

According to an embodiment of the present disclosure, the message transmission and reception server441may receive a message from the first electronic device410through the network430, and transmit the received message to the second electronic device420. The message transmission and reception server441may check whether the message has been successfully transmitted to the second electronic device420. The message transmission and reception server441may notify the first electronic device410of whether the message has been successfully transmitted to the second electronic device420.

According to an embodiment of the present disclosure, the first electronic device410may be an electronic device of a sender, and may be a device for transmitting the message through the messenger application. The first electronic device410may store a conversation thread table and a session table in a memory (for example, the memory130). The conversation thread table may store a thread ID corresponding to a counterpart's phone number (for example, the phone number of the second electronic device420). The session table may store a type of a messaging service and a session ID corresponding to the thread ID. The first electronic device410may assign one thread ID per counterpart's phone number. The counterpart's phone number may be an identification number of an electronic device, and include at least one of International Mobile Station Identity (IMSI), Temporary Mobile Subscriber Identity (TMSI), Mobile Identification Number (MIN), Mobile Station International ISDN Number (MSISDN), International Mobile Equipment Identity (IMEI), Personal Identification number (PIN), or header field information of P-Associated-Uniform Resource Identifiers (URI). In addition, the counterpart's phone number may include various embodiments which may be used according to a communication standard or a service provider's policy. The Session ID may be assigned from the message account server442, and one ID may be assigned to one messaging service corresponding to the thread ID. The session ID may be associated with a phone number.

According to an embodiment of the present disclosure, the first electronic device410may determine a messaging service to be used for message transmission in consideration of a messaging service that can be used by a sender or recipient. The first electronic device410may request the second electronic device420for the message transmission using a messaging service determined through the network430. In response to the message transmission request, the first electronic device410may receive whether a message reception by the second electronic device420is possible, from the message account server442.

According to an embodiment of the present disclosure, the first electronic device410may transmit a message to the message transmission and reception server441and determine another messaging service based on whether the message reception is possible. For example, when the message reception by second electronic device420which uses the determined messaging service (for example, the first messaging service) is possible, the first electronic device410may transmit the message using the determined messaging service. When the message reception by the second electronic device420which uses the determined messaging service (for example, the first messaging service) is not possible, the first electronic device410may transmit the message using a different messaging service (for example, the second messaging service).

According to an embodiment of the present disclosure, when transmitting the message, the first electronic device410may also transmit a session ID corresponding to a messaging service which is determined to transmit the message. For example, the first electronic device410may search for, from the search table, a thread ID of the second electronic device420and a session ID corresponding to the determined messaging service. If the session ID is not retrieved, the first electronic device410may request for the generation of a session ID to the message account server442. In response to the session ID generation request, the first electronic device410may receive the session ID from the message accounting server442and store the received session ID in the session table. The first electronic device410may transmit the message along with the session ID stored in the session table.

According to an embodiment of the present disclosure, the second electronic device420may be an electronic device of a recipient, and may be a device for receiving the message through the messenger application. The second electronic device420may store a conversation thread table and a session table in a memory (for example, the memory130). The conversation thread table may store a thread ID corresponding to a counterpart's phone number (for example, a phone number of the first electronic device410). The session table may store a type of a messaging service and a session ID corresponding to the thread ID. The second electronic device420may assign one thread ID per counterpart's phone number. The Session ID may be assigned from the message account server442, and one ID may be assigned to one messaging service corresponding to the thread ID.

According to an embodiment of the present disclosure, when receiving a message from the first electronic device410through the network430, the second electronic device420may acquire session information (for example, a session ID) from the received message and display the received message based on the acquired session information. For example, the second electronic device420may obtain a thread ID corresponding to a session ID from the session table, and execute a messaging service corresponding to the acquired thread ID. The second electronic device420may display the received message on a chat window (for example, a message thread) of the executed messaging service.

According to various embodiments, when session information has not been acquired from the received message, the second electronic device420may perform a process for generating session information or perform a process for generating thread information. For example, the second electronic device420may determine whether the phone number of the first electronic device410is stored in the conversation thread table. When the phone number of the first electronic device410is stored in the conversation thread table, the second electronic device420may acquire a thread ID corresponding to the phone number of the first electronic device410. The second electronic device420may execute a messaging service corresponding to the acquired thread ID, and display the received message on a chat window (for example, a message thread) of the executed messaging service. In addition, the second electronic device420may make a request for generation of a session ID to the message account server442and receive the session ID from the message account server442.

According to an embodiment of the present disclosure, when the phone number of the first electronic device410is not stored in the conversation thread table, the second electronic device420may assign a new thread ID to the phone number of the first electronic device410. The second electronic device420may execute a messaging service corresponding to the new thread ID, and display the received message on a chat window (for example, a message thread) of the executed messaging service. The second electronic device420may store the assigned thread ID in the conversation thread table so as to correspond to the phone number of the first electronic device410. In addition, the second electronic device420may make a request for generation of a session ID to the message account server442and receive the session ID from the message account server442.

FIG. 5is a block diagram illustrating an example program module associated with a messaging service according to various example embodiments.

Referring toFIG. 5, according to an embodiment of the present disclosure, the program module500associated with a messaging service may include a messenger application510, a communication service framework520, and a network service530. The program module500associated with the messaging service is to describe a program module associated with the “messaging service” in detail, and the basic configuration of the program module may be the same as or similar to the program module310ofFIG. 3. That is, although not shown, the program module500may further include an API (for example, the API360ofFIG. 3) and a kernel (for example, the kernel320ofFIG. 3).

According to an embodiment of the present disclosure, the messenger application510may refer to an application for providing a messaging service. The messenger application510may display a conversation counterpart (for example, a counterpart name, a counterpart phone number, etc.) and a conversation thread, and display messages exchanged with the conversation counterpart when the conversation thread is selected. The conversation thread may refer to any one of a message list including a plurality of messages, which is arranged as a conversation counterpart. The conversation counterpart, the conversation thread, or the message may be deleted. The messenger application510may display information on an individual or a conversation counterpart. The messenger application510may display a result of processing so as to correspond to a user input. The messenger application510may display a user interface or user experience interface associated with a message.

According to an embodiment of the present disclosure, the messenger application510may allow different types of messaging services to be used through a single application. For example, the messenger application510may refer to an application which can provide both a message transmitted or received using a first messaging service and a message transmitted or received using a second messaging service. When the message transmission is not possible by using the first messaging service, the messenger application510may transmit the message by using the second messaging service. The messenger application510may be basically provided while being mounted on the electronic device101when the electronic device101is manufactured. Alternatively, the messenger application510may be installed in the electronic device101according to the user's selection.

According to an embodiment of the present disclosure, the communication service framework520may be a framework for providing a messaging service, and correspond to the middleware330or kernel320ofFIG. 3. The communication service framework520may include a message manager521, a session manager522, and a retransmission manager523. The message manager521may be a module for a messaging service. For example, the message manager521may provide a messaging service such as RCS, Short Message Service (SMS)/Multimedia Message Service (MIMS), or Instant Messenger (IM), and may be connected in a plug-in type when an application for a messaging service is installed.

According to an embodiment of the present disclosure, in order to perform an operation of grouping messages for each conversation thread and managing the same, the session manager522may manage a thread ID, a type of a messaging service used in the conversation thread, and the session ID of the messaging service used in the conversation thread. The session manager522may assign one thread ID per counterpart's phone number. The session manager522may store the assigned thread ID in the conversation thread table so as to correspond to the counterpart's phone number. In addition, the session manager522may store, in the session table, the messaging service type used in the conversation thread and the session ID of the messaging service used in the conversation thread. When there is no session ID corresponding to the messaging service used in the conversation thread, the session manager522may request for generation of a session ID to the message account server442.

According to an embodiment of the present disclosure, when a message transmission has failed, the retransmission manager523may select another messaging service and transmit the message. For example, the retransmission manager523may select an appropriate messaging service in consideration of the priority assigned to a messaging service or the usability thereof. For example, when message transmission using the first messaging service has failed, the retransmission manager523may select a second messaging service. Alternatively, the retransmission manager523may select, based on the priority, a first messaging service having the highest priority (for example, the first priority). When message transmission using the first messaging service has failed, the retransmission manager523may select a second messaging service having the second highest priority.

According to an embodiment of the present disclosure, the network service530may provide a service that can communicate with an external device (for example, the electronic device102and electronic device104). The network service530may be a subject for transmitting a message, and may be, for example, a communication module (for example, the communication interface170ofFIG. 1or the communication module220ofFIG. 2). The network service530may transmit a message to a messaging service determined in the communication service framework520.

An electronic device described below may include a program module illustrated inFIG. 5.

FIG. 6is a diagram illustrating an example configuration of a table associated with a messaging service according to various example embodiments.

Referring toFIG. 6, according to an embodiment of the present disclosure, a conversation thread table610may include a thread ID611and conversation counterpart information612corresponding to the thread ID611. The thread ID611may be assigned in a one-to-one method to correspond to the conversation counterpart information612. For example, the thread ID611may be numbers and be described in various forms such as letters, symbols, etc. as well as numbers. The conversation counterpart information612may be address information on the conversation counterpart, for example, a counterpart's phone number (for example, 010-1234-5678, 010-3456-7890, etc.). When transmitting or receiving a message, the processor120of the electronic device101may check the thread ID611corresponding to the counterpart's phone number, and when there is no thread ID611corresponding to the counterpart's phone number, the electronic device101may generate the thread ID611.

According to an embodiment of the present disclosure, the session table620may include a type of a messaging service622and session ID623for each thread ID621. The session table620may include one or more messaging service types622and session IDs623for each thread ID621. For example, the session table620may include a type of a messaging service RCS, IM#1, and IM#2 corresponding to the thread ID621of ‘1’, include the session ID623of ‘1233123458’ corresponding to the messaging service type ‘RCS’, include the session ID623of ‘12abbdz56p’ corresponding to the messaging service type ‘IM#1’, and include session ID623‘2333440090’ corresponding to the messaging service types of ‘IM#2’. This may indicate that a user corresponding to counterpart's phone number ‘010-1234-5678’ is engaged in a conversation through three types of messaging services.

According to an embodiment of the present disclosure, the processor120of the electronic device101may check a messaging service available when transmitting or receiving a message, and when there is no session ID for the messaging service, the processor120may request for the generation of a session ID to the message account server442. When the generated session ID is received from the message account server442, the processor120may store the received session ID in the session table620. When storing the session ID, the processor120may also store a type of a messaging service and a thread ID corresponding to the session ID.

An electronic device according to various embodiments may include: a display; at least one communication circuit configured to perform wireless communication with an external electronic device using one of a plurality of communication protocols; a processor electrically connected to the display and the communication circuit; and a memory electrically connected to the processor, wherein the memory stores a plurality of messaging applications for providing one of a plurality of messaging services, and the memory stores instructions which, when executed by a processor, cause the processor to perform operations comprising: displaying a user interface on the display, wherein the user interface is configured to provide, to one message thread, the plurality of messaging applications and/or outgoing and incoming messages associated with the plurality of messaging services; storing, in the memory, a plurality of first identifications (IDs) identifying communication with the external electronic device and/or an account associated with the external electronic device, using one of each of the plurality of messaging applications and the plurality of messaging services; storing, in the memory, at least one second ID identifying a message thread associated with communication with the external electronic device and/or an account associated with the external electronic device; receiving a new incoming message using the at least one communication circuit; and selecting a message thread for the new incoming message based on at least a part of the first IDs and the second ID.

The first ID may include a session ID, and the second ID may include a thread ID.

The thread ID may be associated with a phone number.

The phone number may include at least one of: International Mobile Station Identity (IMSI), Temporary Mobile Subscriber Identity (TMSI), Mobile Identification Number (MIN), Mobile Station International ISDN Number (MSISDN), International Mobile Equipment Identity (IMEI), Personal Identification number (PIN), and header field information of P-Associated-Uniform Resource Identifiers (URI).

The session ID may be associated with a phone number.

The plurality of messaging services may include two or more of SMS, MIMS, Instant Messaging, and RCS.

The processor may be configured to determine a messaging service for transmitting an outgoing message among the plurality of messaging services, to check whether a message reception by the counterpart electronic device of a counterpart phone number which will receive the outgoing message is possible, using the determined messaging service among a plurality of messaging services, and to determine another messaging service when the message reception using the determined messaging service is not possible.

The processor may be configured to check whether the transmitted message is received by a counterpart electronic device, and to determine another messaging service when the transmitted message is not received by the counterpart electronic device.

The processor may be configured to determine the messaging service based on a user determination method, and the user determination method may be configured to receive a messaging service based on a received selection when the message transmission is requested, or configured to determine the messaging service based on the priority previously determined by the user.

The processor may be configured to determine the messaging service based on an automatic determination method, and the automatic determination method may be configured to arbitrarily select one messaging service or select the messaging service based on a predetermined condition, or to determine a messaging service based on the number of times the messaging services have been used by the plurality of users, the number of times the messaging services have been used by the user, a messaging service recently used by the user, or a new messaging service.

A message is received from a counterpart electronic device, the processor may be configured to acquire session information from the received message, to acquire second ID based on the acquired session information, and to display the received message on a message thread corresponding to the second ID.

When the session information in the memory does not exist, the processor may be configured to determine whether conversation counterpart information associated with the counterpart electronic device exists in the conversation thread table, and to acquire second ID corresponding to the conversation counterpart information stored in the conversation thread table.

FIG. 7is a flowchart illustrating an example message transmission method by an electronic device according to various example embodiments.

Referring toFIG. 7, according to an embodiment of the present disclosure, in operation701, the electronic device101(e.g., the processor120) may receive a message transmission request. When the user enters a message content and a counterpart's phone number to which a message will be received, and then presses a button corresponding to “transmission” and “Check?”, the processor120may determine that a request for message transmission has been made.

According to an embodiment of the present disclosure, in operation703, the processor120may determine a messaging service. For example, the processor120may determine the messaging service using a user determination method or an automatic determination method. The user determination method may be two. In operation701, the user may select a messaging service to which the message will be sent when entering the message content and counterpart's phone number. In this case, the determined messaging service may be a messaging service selected by the user. Alternatively, the user may previously set the priorities for messaging services, and the processor120may determine a messaging service based on the priorities. For example, the user may set a high priority for the user's most favorite messaging service or most frequently used messaging service. When the priorities are set for messaging services, an application corresponding to the messaging service may be installed or not in the electronic device101. The processor120may determine a messaging service in the order of higher priorities.

According to an embodiment of the present disclosure, the automatic determination method may allow the processor120to determine one messaging service. The processor120may determine a messaging service by considering the user usability of the messaging service. For example, the processor120may determine a messaging service at least partially based on the number of times the messaging services have been used by the plurality of users, the number of times the messaging services have been used by the user, a messaging service recently used by the user, or a new messaging service. The number of times the messaging services have been used by the plurality of users may define the most frequently used messaging service by the plurality of users. The number of times the messaging services have been used by the user may define the most frequently used messaging service by the user. Alternatively, the processor120may determine a messaging service based on a condition set by default to the electronic device101that is being manufactured. Alternatively, the processor120may arbitrarily determine one messaging service among messaging services of a messenger application installed in the electronic device101.

According to an embodiment of the present disclosure, in operation705, the processor120may check whether message reception by a counterpart electronic device (for example, the second electronic device420) which uses the determined messaging service is possible. To this end, the processor120may transmit, to the message account server442, a counterpart's phone number and information (for example, a session ID) on the determined messaging service, through the communication interface170. The message account server442may determine whether a corresponding session ID exists in the counterpart's phone number so as to determine whether the message reception by the counterpart electronic device is possible. The message account server442may transmit, to the electronic device101, whether the message reception is possible based on whether the session ID corresponding to the counterpart's phone number exists. The processor120may receive whether the message reception is possible from the message account server442.

According to an embodiment of the present disclosure, in operation707, the processor120may determine whether the message reception is possible based on whether the message reception by the counterpart electronic device is possible. For example, when the message reception by the counterpart electronic device (for example, the second electronic device420) which uses the determined messaging service (for example, the first messaging service) is possible, the processor120may perform an operation709, and when the message reception by the counterpart electronic device which uses the determined messaging service is not possible, the processor120may perform an operation721.

According to an embodiment of the present disclosure, in operation721, the processor120may determine whether a ‘message re-transmission’ is set in the electronic device101. When the ‘message re-transmission’ is set, the processor may determine that the message re-transmissions is allowed, and return to an operation722. Alternatively, when the ‘message re-transmission’ is not set, the processor may perform an operation723so as not to perform the message re-transmission.

According to an embodiment of the present disclosure, in operation722, when the “message re-transmission” is set, the processor may determine whether there is another selectable messaging service (for example, the second messaging service) other than the determined messaging service (for example, the first messaging service). When there is another selectable messaging service, the processor120may return to the operation703, and when there is no messaging service to be selected, the processor120may perform the operation723. According to various embodiments, when returning to operation703, the processor120may select a messaging service (for example, the second messaging service) different from the first selected messaging service (for example, the first messaging service). The processor120may perform the operation705and operation707after selecting the second messaging service. At this time, upon performing the operation721and then returning to the operation703, the processor120may select a messaging service (for example, a third messaging service) different from the secondly selected messaging service (for example, the second messaging service). The processor120may perform the operation705and the operation707after selecting the third messaging service. At this time, when the operation721is performed and there is no other selectable messaging service, the processor120may perform the operation723.

According to an embodiment of the present disclosure, in operation723, the processor120may determine that the message transmission has failed. For example, the processor120may display a user interface associated with the message transmission failure. The user interface associated with the message transmission failure may be displayed as a pop-up window. Alternatively, the user interface associated with the message transmission failure may display, on a message transmission window, a message notifying of the message transmission failure (e.g., {circle around (x)} message transmission has failed.). The processor120may be terminated after processing the message transfer failure. According to various embodiments, the processor120may receive a retransmission request from the user on the user interface associated with the message transmission failure. In this case, the processor120may interpret the retransmission request as the message transmission request of operation701, and perform the operation703.

According to an embodiment of the present disclosure, in operation709, the processor120may check a session ID. The processor120may search for a session ID corresponding to the determined messaging service from a session table (for example, the session table620). When a session ID corresponding to the determined messaging service is retrieved from the session table, the processor120may check the retrieved session ID. When a session ID corresponding to the determined messaging service is not retrieved from the session table, the processor120may request for generation of a session ID to the message account server442. In response to the session ID generation request, the processor120may receive the session ID from the message accounting server442and store the received session ID in the session table. The processor120may check the session ID stored in the session table.

According to an embodiment of the present disclosure, in operation711, the processor120may transmit a message including the checked session ID. For example, the processor120may transmit a message including a message content, a counterpart's phone number, and a session ID. The processor120may transmit the message to the message transmission and reception server441through the communication interface170.

According to an embodiment of the present disclosure, the message transmission server441may transmit the message to the counterpart electronic device (for example, the second electronic device420) corresponding to the counterpart phone number. The message may include a message content, a counterpart's phone number (for example, the phone number of the first electronic device410), a messaging service, and a session ID. The message transmission and reception server441may check whether the message has been successfully transmitted to the second electronic device420. The message transmission and reception server441may notify the first electronic device410of whether the message has been successfully transmitted to the second electronic device420.

According to an embodiment of the present disclosure, in operation713, the processor120may receive a result of message transmission from the message transmission and reception server441. According to various embodiments, the processor120may receive whether the message is checked by the counterpart from the message transmission and reception server441.

According to an embodiment of the present disclosure, in operation715, the processor120may return to the operation703or perform the operation717based on the message transmission result. For example, when the message transmission result is ‘successful’, the processor120may perform the operation717. Alternatively, when the message transmission result is ‘failure’, the processor120may return to the operation703.

According to various embodiments, when returning to the operation703, the processor120may select a messaging service (for example, the second messaging service) different from the first selected messaging service (for example, the first messaging service). The processor120may perform the operation705and operation707after selecting the second messaging service. At this time, upon performing the operation721and then returning to the operation703, the processor120may select a messaging service (for example, a third messaging service) different from the secondly selected messaging service (for example, the second messaging service). The processor120may perform the operation705and operation707after selecting the third messaging service. At this time, when the operation721is performed and there is no other selectable messaging service, the processor120may perform the operation723.

According to various embodiments, when returning to the operation703, the processor120may re-determine the first selected messaging service (for example, the first messaging service) according to the user setting or the electronic device101's setting. For example, when the user setting corresponds to two times of re-transmission, the processor120may re-determine the first selected messaging service or another messaging service (for example, the second messaging service) based on the number of times of message transmission failures. That is, the processor120may count the number of times of message transmission failure when the message transmission has failed, and when the message transmission failure count does not exceed two times, the processor120may re-determine the first selected messaging service. Alternatively, when the message transmission failure count exceeds two times, the processor120may determine another messaging service (for example, the second messaging service).

According to an embodiment of the present disclosure, in operation717, the processor120may store information on the message which has completed the transmission. For example, the processor120may store, in the memory130, the message transmission history including at least one of a message content, a counterpart's phone number (or a counterpart's name), a thread ID corresponding to the counterpart's phone number, a messaging service, a session ID, or a message sending time. The processor120may update a session table based on the message transmission history. Alternatively, the processor120may select a further messaging service based on the message transmission history. Alternatively, the processor120may display a message in the conversation thread based on the message transmission history.

According to an embodiment of the present disclosure, in operation719, the processor120may display a user interface for the completion of transmission. For example, the processor120may display a message content on a chat window in a conversation thread corresponding to a thread ID. According to various embodiments, the processor120may display on the chat window whether the counterpart has checked the message. For example, when the message is transmitted and the counterpart checks the message, the processor120may inform of the message checking by the counterpart to the user, by displaying ‘Read’, ‘Checked’, etc. on the chat window in the conversation thread. Alternatively, when the counterpart does not check the message, the processor120may allow the number ‘1’ to be written on the message content, and when the counterpart has checked the message, the processor120may not write the number ‘1’ on the message content.

FIG. 8is a flowchart illustrating an example method for determining a messaging service according to various example embodiments.

FIG. 8illustrates a subroutine of the operation703ofFIG. 7. Referring toFIG. 8, in operation801, the processor120may determine whether there is a new message. For example, the processor120may determine whether a thread ID corresponding to a counterpart's phone number of a message being requested to be transmitted in operation701is stored in a conversation thread table (for example, the conversation thread table610). When the thread ID corresponding to the counterpart's phone number is not stored in the conversation thread table, the processor120may determine that the message being requested to be transmitted is a new message.

According to an embodiment of the present disclosure, when the message being requested to be transmitted is not a new message, the processor120may perform an operation807, and when the message being requested to be transmitted is a new message, the processor120may perform an operation803.

According to an embodiment of the present disclosure, in a case of the new message, the processor120may generate a thread ID corresponding to a counterpart's phone number in operation803. As described in the above, one thread ID may be assigned to a single phone number. The phone number may be an identification number of the electronic device, and may include at least one of IMSI, TMSI, MIN, MSISDN, IMEI, PIN, or header field information of P-Associated-URI. In addition, the phone number may include various embodiments which may be used according to a communication standard or a service provider's policy. In operation805, the processor120may store thread information on the conversation thread table. The thread information may include a thread ID and a counterpart's phone number corresponding to the thread ID. The processor120may store, in the conversation thread table, the generated thread ID and a counterpart's phone number corresponding to the generated thread ID. The processor120may store, in the conversation thread table, thread information corresponding to the new message, and then perform an operation807.

According to an embodiment of the present disclosure, in operation807, the processor120may determine whether the priorities of messaging services are set. According to various embodiments, the user may previously set, in the electronic device101, the priorities of messaging services. The processor120may perform an operation811when the priorities are set in the messaging services, and perform an operation813when the priorities are not set in the messaging service.

According to an embodiment of the present disclosure, when the priorities are set in the messaging services, in operation811, the processor120may determine a messaging service based on the priorities. For example, when the user has set the priorities in the order of RCS, IM#1, IM#2, and SMS/MMS, the processor120may determine the RCS having the highest priority as the messaging service at first. Thereafter, when returning to operation811, the processor120may determine the second highest IM#1 as the messaging service. Thereafter, when returning again to operation811, the processor120may determine the third highest IM#2 as the messaging service. Thereafter, when returning again to operation811, the processor120may determine the fourth highest SMS/MMS as the messaging service. When returning to the operation811even after determining all of the messaging services in which the priorities are set, the processor120may arbitrarily determine the messaging service. Alternatively, when returning to the operation811even after determining all of the messaging services to which the priorities are set, the processor120may determine that there is no selectable other messaging services.

According to various embodiments, the user may set a different priority for each counterpart's phone number. For example, SMS/MMS and IM#1 have the priority of a messaging service corresponding to a counterpart's phone number ‘010-1234-5678’, IM#1 and IM#2 have the priority of the messaging service corresponding to a counterpart's phone number ‘010-3456-7890’, and RCS and SMS/MMS have the priority of the messaging service corresponding to a counterpart's phone number ‘02-729-3521’. In this case, the processor120may determine a messaging service based on a counterpart's phone number for receiving the message and a priority corresponding thereto.

According to an embodiment of the present disclosure, when the priorities are not set in the messaging services, in operation813, the processor120may arbitrarily determine a messaging service. For example, the processor120may determine a messaging service by considering the user usability thereof. For example, the processor120may determine a messaging service at least partially based on the number of times the messaging services have been used by the plurality of users, the number of times the messaging services have been used by the user, a message service recently used by the user, a messaging service recently used by the user, or a new messaging service. Alternatively, the processor120may determine a messaging service based on a condition set by default to the electronic device101being manufactured. Alternatively, the processor120may arbitrarily determine one messaging service among messaging services of a messenger application installed in the electronic device101.

FIGS. 9A and 9Bare diagrams illustrating an example user interface associated with a messaging service according to various example embodiments.

According to an embodiment of the present disclosure,FIG. 9Aillustrates an example of receiving a message transmission request. Referring toFIG. 9A, the user interface910displays a chat window in a conversation thread. When message content and a counterpart's phone number are entered into the conversation thread, and then ‘transmission button911’ is selected, the processor120may determine that a message transmission request has been made.

According to an embodiment of the present disclosure,FIG. 9Billustrates an example of setting the priority of the messaging service. Referring toFIG. 9B, the user interface920may be a screen in which the priority of the messaging service is set. The processor120may display a list of multiple messaging services capable of transmitting messages, and the user may set, in the processor120, the priority of at least one messaging service among the displayed list. For example, the user interface920illustrates an example of setting the priorities in the order of RCS, IM#1, IM#2, and SMS/MMS. That is, it can be seen that the RCS has the highest priority, and followed in descending order by IM#1, IM#2, and SMS/MMS. The user has set the priority and then selects OK button922so that the priority setting may be completed.

FIG. 10is a flowchart illustrating an example method for checking a session ID according to various example embodiments.

FIG. 10illustrates a subroutine of the operation709ofFIG. 7. Referring toFIG. 10, in operation1001, the processor120may determine whether a session ID corresponding to a messaging service determined in operation703exists in a session table (for example, the session table620).

According to an embodiment of the present disclosure, the processor120may perform an operation1003when the session ID exists in the session table, and perform an operation1005when the session ID does not exist in the session table.

According to an embodiment of the present disclosure, in operation1003, the processor120may check a session ID stored in the session table.

According to an embodiment of the present disclosure, in operation1005, the processor120may request for generation of a session ID to the message account server442. The message account server442may receive the session ID generation request, and generate a session ID based on a messaging service for assigning the session ID and an electronic device (for example, a phone number of the electronic device) which made a request for the generation of the session ID. The message account server442may store the generated session ID in a database, and transmit the generated session ID to the electronic device which made a request for the generation of the session ID.

According to an embodiment of the present disclosure, in operation1007, the processor120may receive a session ID from the message account server442in response to the session ID generation request.

According to an embodiment of the present disclosure, in operation1009, the processor120may store the received session ID in the session table. The processor120may check the session ID stored in the session table.

FIG. 11is a flowchart illustrating an example method for receiving a message by an electronic device according to various example embodiments.

Referring toFIG. 11, in operation1101, the electronic device101(e.g., the processor120) may receive a message. The processor120may receive the message from the message transmission and reception server441through the communication interface170. The processor120may receive a message including at least one of a message content, a counterpart's phone number, a message service, or a session ID.

According to an embodiment of the present disclosure, in operation1103, the processor120may acquire session information from the received message. The session information may include a session ID.

According to an embodiment of the present disclosure, in operation1105, the processor120may determine whether the acquired session information exists in a session table (for example, the session table620). As described above, a type of a messaging service and a session ID corresponding to a thread ID may be stored in the session table.

According to an embodiment of the present disclosure, the processor120may perform an operation1107when the acquired session information exists in the session table, and perform an operation1113when the acquired session information does not exist in the session table.

According to an embodiment of the present disclosure, when the acquired session information exists in the session table, in operation1107, the processor120may acquire a thread ID corresponding to the acquired session information. For example, the processor120may acquire, from the session table, a thread ID corresponding to the session ID.

According to an embodiment of the present disclosure, in operation1109, the processor120may display a message on a chat window corresponding to the acquired thread ID. According to various embodiments, the processor120may execute a messaging service corresponding to the session ID, and display the message on a chat window corresponding to the acquired thread ID in the executed messaging service.

According to an embodiment of the present disclosure, when the acquired session information does not exist in the session table, in operation1113, the processor120may determine whether conversation counterpart information exists in a conversation thread table (for example, the conversation thread table610). The conversation counterpart information may indicate the counterpart's phone number, for example, a phone number of an electronic device (for example, the first electronic device410) which has transmitted the message. As described above, conversation counterpart information corresponding to the thread ID may be stored in the conversation thread table. The processor120may determine whether the counterpart's phone number exists in the conversation thread table.

According to an embodiment of the present disclosure, the processor120may perform an operation1115when the conversation counterpart information exists in the conversation thread table, and perform an operation1117when the conversation counterpart information does not exist in the conversation thread table.

According to an embodiment of the present disclosure, when the counterpart's telephone number is stored in the conversation thread table, the processor120may return to the operation1107and acquire a thread ID corresponding to a counterpart's phone number from the conversation thread table.

According to an embodiment of the present disclosure, in operation1115, the processor120may perform a session information generating process. For example, the session information generation process may include processes of: requesting for generation of a session ID to the message accounting server442; receiving the generated session ID from the message accounting server442; and storing the received session ID in the session table. The processor120may perform the session information generation process in order to generate a session ID of a messaging service for the received message. However, the operation1115may or may not be performed.

According to an embodiment of the present disclosure, when the conversation counterpart information does not exist in the conversation thread table, in operation1117, the processor120may perform a thread information generation process. For example, the thread information generation process may include processes of: assigning a corresponding thread ID to the counterpart's phone number; and storing the assigned thread ID in the conversation thread table. The processor120may acquire a thread ID generated by performing the thread information generation process. When performing the operation1117, the processor120may return to the operation1109, and display a message on a chat window connected to the acquired thread ID.

According to an embodiment of the present disclosure, in operation1119, the processor120may perform a session information generating process. For example, the session information generation process may include processes of: requesting for generation of a session ID to the message accounting server442; receiving the generated session ID from the message accounting server442; and storing the received session ID in the session table. However, the operation1119may or may not be performed.

According to various embodiments, in a case of SMS/MMS, a session ID may not be assigned. Since the SMS/MMS is not an IP-based message, the session ID may not be assigned thereto. When the messaging service of the received message corresponds to the SMS/MMS, the processor120may store a predetermined session ID in the session table. For example, the predetermined session ID may be “0000000000”. That is, when the messaging service of the received message corresponds to the SMS/MMS, the processor120may store a predetermined session ID in the session table without requesting for generation of a session ID.

FIG. 12is a diagram illustrating an example network environment for integrated processing a plurality of messaging services according to various example embodiments.

Referring toFIG. 12, the first electronic device1210may be an electronic device of a sender, and may be a device for transmitting a message through a messenger application. The first electronic device1210may store a conversation thread table and a session table in a memory (for example, the memory130). The conversation thread table may store a thread ID corresponding to a counterpart's phone number (for example, a phone number of the second electronic device1220). The session table may store a type of a messaging service and a session ID corresponding to a thread ID. The first electronic device1210may assign one thread ID per counterpart's phone number. The Session ID may be assigned from the message account server1230, and one ID may be assigned to one messaging service corresponding to the thread ID.

According to an embodiment of the present disclosure, the second electronic device1220may be an electronic device of a recipient, and may be a device for receiving a message through the messenger application. The second electronic device1220may store a conversation thread table and a session table in a memory (for example, the memory130). The conversation thread table may store a thread ID corresponding to a counterpart's phone number (for example, a phone number of the first electronic device1210). The session table may store a type of a messaging service and a session ID corresponding to the thread ID. The second electronic device1220may assign one thread ID per counterpart's phone number. The session ID may be assigned from the message account server1230, and one ID may be assigned to one messaging service corresponding to the thread ID.

According to an embodiment of the present disclosure, the message transmission and reception server1240may serve to transmit and receive the message, and may provide a message transmission and reception function, a function of checking whether the message transmission and reception is successful, a function of checking whether the message is received by the recipient, and the like. The message account server1230may serve as a server for managing users who have subscribed to a messaging service, and provide functions such as subscription, account management, and checking whether the subscription has been made.

For example, the first electronic device1210may check whether the reception of a first message1250of a first messaging service (for example, RCS) by a second electronic device1220, through the message accounting server1230, is possible. When the reception of the first message1250by the second electronic device1220is possible, the first electronic device1210may transmit the first message1250to the second electronic device1220through the message transmission and reception server1240.

According to an embodiment of the present disclosure, when the reception of the first message1250by the second electronic device1220is not possible, the first electronic device1210may check whether the reception of a second message1260of the second messaging service (for example, IM#2) by the second electronic device1220, through the message accounting server1230, is possible. When the reception of the second message1260by the second electronic device1220is possible, the first electronic device1210may transmit the second message1260to the second electronic device1220through the message transmission and reception server1240.

According to an embodiment of the present disclosure, when the reception of the second message1260by the second electronic device1220is not possible, the first electronic device1210may check whether the reception of a third message1270of a third messaging service (for example, SMS/MMS) by the second electronic device1220, through the message accounting server1230, is possible. When the reception of the third message1270by the second electronic device1220is possible, the first electronic device1210may transmit the third message1270to the second electronic device1220through the message transmission and reception server1240.

According to an embodiment of the present disclosure, when the reception of the third message1260by the second electronic device1220is not possible, the first electronic device1210may check whether the reception of a fourth message1280of a fourth messaging service (for example, IM#1) by the second electronic device1220, through the message accounting server1230, is possible. When the reception of the fourth message1280by the second electronic device1220is possible, the first electronic device1210may transmit the fourth message1280to the second electronic device1220through the message transmission and reception server1240.

According to various embodiments, when a message transmission is not performed using a first messaging service, the message is re-transmitted using a second messaging service, so that a cost burden caused by the message retransmission can be reduced and a seamless messaging service over a single messenger application can be provided.

A method for operating an electronic device according to various embodiments may include: displaying a user interface that provides, to one message thread, a plurality of messaging applications and outgoing and incoming messages associated with a plurality of messaging services; storing, in the memory, a plurality of first identifications (IDs) identifying communication with the external electronic device and/or an account associated with the external electronic device, using one of each of the plurality of messaging applications and the plurality of messaging services; storing, in the memory, at least one second ID identifying a message thread associated with communication with the external electronic device and/or an account associated with the external electronic device; receiving a new incoming message using at least one communication circuit; and selecting a message thread for the new incoming message at least partially based on at least one of the first IDs and the second ID.

The first ID may include a session ID, and the second ID may include a thread ID.

The thread ID may be associated with a phone number.

The phone number may include at least one of IMSI, TMSI, MIN, MSISDN, IMEI, PIN, or header field information of P-Associated-URI.

The session ID may be associated with a phone number.

The plurality of messaging services may include two or more of SMS, MIMS, Instant Messaging, and RCS.

The operation method may further include: determining a messaging service for transmitting an outgoing message, from among the plurality of messaging services; checking whether a message reception by a counterpart electronic device of a counterpart phone number, which will receive the outgoing message and which uses the determined messaging service, is possible; and determining another messaging service when the message reception using the determined messaging service is not possible.

The operation method may further include: checking whether the transmitted outgoing message is received by the counterpart electronic device; and determining another messaging service when the transmitted message is not received by the counterpart electronic device.

The operation method may further include: determining a messaging service which will transmit an outgoing message based on a user determination method, and the user determination method may be configured to receive a messaging service according to the user's selection when the message transmission is requested, or configured to determine the messaging service based on the priority previously determined by the user.

The operation method may further include: determining a messaging service which will transmit an outgoing message based on an automatic determination method, and the automatic determination method may be configured to arbitrarily select one messaging service or select the messaging service based on a predetermined condition, or determine a messaging service based on the number of times the messaging services have been used by the plurality of users, the number of times the messaging services have been used by the user, a messaging service recently used by the user, or a new messaging service.

The operation method may further include: storing a conversation thread table including a second ID associated with conversation counterpart information; acquiring session information from the received message when a message is received from a counterpart electronic device; acquiring the second ID based on the acquired session information; and displaying the received message in a message thread corresponding to the second ID.

The acquiring of the thread ID may include: when the session information does not exist in the memory, determining whether conversation counterpart information associated with the counterpart electronic device exists in the conversation thread table; and when the conversation counterpart information exists in the conversation thread table, acquiring a second ID corresponding to conversation counterpart information stored in the conversation thread table.

A computer-readable recording media can include a hard disk, a floppy disk, a magnetic media (e.g., a magnetic tape), an optical media (e.g., a Compact Disc-Read Only Memory (CD-ROM) and/or Digital Versatile Disk (DVD)), a Magneto-Optical Media (e.g., a floptical disk), an internal memory, etc. An instruction can include a code made by a compiler or a code executable by an interpreter. A module or a program module according to various example embodiments can further include at least one or more of the aforementioned constituent elements, or omit some, or further include another constituent element. Operations carried out by a module, a program module or another constituent element according to various example embodiments can be executed in a sequential, parallel, repeated or heuristic method, or at least some operations can be executed in different order or can be omitted, or another operation can be added.

The various example embodiments disclosed in the present disclosure and drawings are provided to aid in explanation of the technical features and aid in understanding, and are not intended to limit the scope of the present disclosure. Therefore, the scope of the present disclosure is defined not by the detailed description but by the appended claims, and all differences within the scope will be construed as being included in the present disclosure.