Information processing apparatus, information processing method, and storage medium storing program for activating applications

An information processing apparatus includes a first application program for executing an output process on content and a second application program for executing a process of obtaining the content from an external apparatus. The information processing apparatus causes the first application program to issue a request for activating the second application program and activates the second application program so as to execute a process of obtaining content from the external apparatus through communication with the external apparatus. After obtaining the content from the external apparatus, the information processing apparatus causes the second application program to issue a request for activating the first application program and activates the first application program so as to execute the output process on the content obtained from the external apparatus.

TECHNICAL FIELD

The present invention particularly relates to an information processing apparatus, an information processing method, and a storage medium storing a program which are suitably used to perform a process using a plurality of applications.

BACKGROUND ART

Information processing apparatuses including smartphones may realize various functions by installing an operating system (OS) and a plurality of applications and operating using the applications. Such an information processing apparatus may be connected to a camera using an application for connection to a camera so as to obtain an image and may edit an image using an application for image editing, for example. PTL 1 discloses a communication apparatus which performs communication with a digital still camera using an application for communication with camera.

A user selects and activates one of the applications corresponding to a desired function, and therefore, the user is required to search for data to be processed for each application. In a case where an image obtained by a camera is to be edited, first, an application for connection to a camera is activated and an image is obtained. Thereafter, an application for image editing is activated so as to search for the obtained image and edit the image, for example. When a process is performed by a plurality of applications as described above, a large number of operations are required for the user.

The present invention is made in view of the foregoing problem, and an object of the present invention is to smoothly perform a process when an application is activated during another application is operated.

CITATION LIST

Patent Literature

SUMMARY OF INVENTION

According to an embodiment of the present invention, an information processing apparatus includes an obtaining unit configured to obtain a request ID corresponding to processing content based on a first application, a first request unit configured to transmit the request ID and issue a request for activating a second application in accordance with the first application, a first processing unit configured to activate the second application in response to the activation request issued by the first request unit and execute a process based on the second application, a second request unit configured to transmit the request ID and issue a request for activating the first application when the process performed by the first processing unit is completed, and a second processing unit configured to activate the first application in response to the activation request issued by the second request unit and execute a process based on the request ID transmitted from the second request unit.

DESCRIPTION OF EMBODIMENTS

First Embodiment

Hereinafter, a first embodiment of the present invention will be described with reference to the accompanying drawings. In this embodiment, a case where a user activates an image editing application by operating a communication device (a smartphone) functioning as an information processing apparatus and activates an application for data obtainment will be described as an example. Note that the term “activation” of an application according to this embodiment indicates a case where an application which has not been activated is activated and a case where an application being operated in a background is displayed in a foreground.

FIG. 1is a diagram illustrating an example of a network configuration including a communication device101according to this embodiment.

As illustrated inFIG. 1, the communication device101is connected to an imaging apparatus102using an application for data obtainment so as to obtain an image from the imaging apparatus102through a network103. Note that the communication device101may be connected to the imaging apparatus102in a wired manner or a wireless manner.

FIG. 2is a block diagram illustrating an example of a hardware configuration of the communication device101according to this embodiment.

InFIG. 2, a central processing unit (CPU)201controls all processes of the communication device101. A read only memory (ROM)202stores various control programs to be executed by the CPU201, various data, and the like. A random access memory (RAM)203includes a work area for the CPU201, a data save area used when an error process is performed, and a load area for the control programs. A hard disk drive (HDD)204stores an OS, various applications, the control programs to be executed in the communication device101, content, and data.

An input device205includes various buttons, such as a button for performing switching between an ON state and an OFF state of a power source. A bit move unit (EMU)206controls data transfer between memories (between a video RAM (VRAM)207and another memory, for example) and data transfer between a memory and various input/output (I/O) devices (an NET interface (I/F)209, for example). Image data to be displayed in a display device211is rendered in the VRAM207. The image data rendered in the VRAM207is transferred to the display device211in accordance with a predetermined standard so that an image is displayed in the display device211. Furthermore, the display device211includes a touch panel. When the user touches a display surface of the display device211so as to input an instruction corresponding to an icon displayed in a position of the touch. The NET I/F209communicates with the imaging apparatus102and the like through the network103. A bus212includes an address bus, a data bus, and a control bus.

FIG. 3is a diagram illustrating an example of a software configuration of the communication device101according to this embodiment.

The communication device101includes a predetermined OS301mounted thereon and a data obtainment application (hereinafter referred to as Write-app)302and an image editing application (hereinafter referred to as Read-app)303installed therein. The CPU201of the communication device101activates the OS301so as to perform basic processes of the communication device101and performs cooperation processes of the installed applications and a process of recording data in the HDD204and the like. Furthermore, the CPU201of the communication device101activates Write-app302so as to perform a process of obtaining data from the imaging apparatus102through the NET I/F209, for example. Furthermore, the CPU201of the communication device101activates Read-app303so as to perform a process of instructing a print apparatus to process an obtained image or print an image. Here, Write-app302is not only an input application but also an output application.

A procedure of a process performed by the communication device101according to this embodiment will now be described with reference toFIGS. 4 to 5D. In this embodiment, a case where the CPU201of the communication device101first activates Read-app303and receives an instruction for obtaining an image issued by the user in a screen for performing this process will be described as an example.

FIGS. 4A and 4Bare sequence diagrams illustrating a procedure of a process of activating Read-app303before activating Write-app302, obtaining an image from an external apparatus, and performing an image editing process, which is performed by the CPU201of the communication device101according to this embodiment. Note that a process described below is realized when the CPU201of the communication device101activates the OS301, Write-app302, and Read-app303and operates in accordance with the OS301, Write-app302, and Read-app303, and controls the various units.

First, the CPU201of the communication device101starts the process by activating Read-app303. When Read-app303is activated, a screen illustrated inFIG. 5Ais displayed in the display device211. In the screen illustrated inFIG. 5A, the user selects content of editing to be executed through the touch panel of the display device211.

For example, when “Process Photograph” is selected, a screen illustrated inFIG. 5Bis displayed in the display device211, and when “Print Photograph” is selected, a screen illustrated inFIG. 5Cis displayed in the display device211. When “Transmit Photograph” is selected, a screen illustrated inFIG. 5Dis displayed in the display device211. In the screens illustrated inFIGS. 5B to 5D, an image to be edited may be selected from among images stored in the HDD204or the like. On the other hand, when an image which is not stored in the communication device101is to be edited, “Add Photograph by Write-app” is selected so that an image is obtained from an external apparatus. The process inFIGS. 4A and 4Bis started when the user selects “Add Photograph by Write-app”.

In T401ofFIG. 4A, the CPU201causes Read-app303to issue a request ID. In T402, the CPU201receives a request for activating Write-app302supplied from Read-app303and stores the request ID issued in T401and the activation request which are associated with each other in the HDD204. Here, a request ID to be assigned varies depending on selected editing content. For example, a request ID varies depending on one of the screens illustrated inFIGS. 5B to 5Din which “Add Photograph by Write-app” is selected.

Subsequently, in T403, the CPU201causes the OS301to issue a request for activating Write-app302so as to activate Write-app302. In T404, the CPU201causes Write-app302to receive the request ID. When Write-app302is activated, Write-app302receives an ID of Read-app303of a request source. The ID of Read-app303is unique to Read-app303installed in the communication device101. When Read-app303is installed, the ID is stored in the HDD204, and when a request for activating Write-app302is performed, the ID is read from the HDD204and transmitted.

In T405, the CPU201causes Write-app302to compare IDs of Read-apps303. Specifically, Write-app302determines whether the ID of Read-app303of the request source matches one of IDs of Read-apps303stored in the HDD204. Note that the CPU201operates in accordance with Write-app302and stores IDs of Read-apps303which may cooperate with Write-app302in advance such that the IDs of Read-apps303are readable by Write-app302. In a case where the ID of Read-app303does not match the IDs stored in the HDD204, the CPU201causes Write-app302to transmit an error notification to the OS and stops activation of Write-app302. By this, activation of Write-app302which is mistakenly performed by an unknown application may be avoided.

On the other hand, when the ID of Read-app303matches one of the IDs stored in the HDD204, the CPU201causes Write-app302to transmit a request for obtaining an image to the external apparatus (the imaging apparatus102) in T407. In T408, the CPU201causes Write-app302to receive data on the image from the imaging apparatus102through the NET I/F209.

When the reception of the image is completed, the CPU201causes Write-app302to perform a process of storing the image in T409. Specifically, the CPU201stores the image received in T408in the HDD204or the like and assigns an image ID to the newly-stored image. The image ID serves as a code associated with a file path to a storage destination. Note that the image ID may be the file path to the storage destination itself.

In T410, the CPU201causes Write-app302to perform a process of generating an image ID list. Specifically, first, Write-app302obtains the image ID of the stored image, generates an image ID list including the image ID of the stored image and the storage destination which are associated with each other, and stores the image ID list which is readable by the OS in the HDD204. In T411, the CPU201causes the OS to receive the request ID supplied from Write-app302as a request for calling Read-app303from Write-app302. Here, the request ID is the same as that received by Write-app302in T404.

In T412, the CPU201causes the OS to transmit an activation request to Read-app303so as to activate Read-app303. Here, when Read-app303is activated, Read-app303obtains an ID of Write-app302of a request source of the calling request. The ID of Write-app302is unique to Write-app302installed in the communication device101, and is stored in the HDD204when Write-app302is installed and read and transmitted from the HDD204when the request for calling Read-app303is performed.

Furthermore, in the example inFIGS. 4A and 4B, Read-app303still operates even after the process in T402is performed, and therefore, the process in T412serves as a process of cancelling a sleep state or a process of confirming that Read-app303is operating. However, Read-app303may temporarily stops its operation after the process in T402is performed. In T413, the CPU201causes Read-app303to receive the image ID list generated by Write-app302in T410and the request ID received in T411as a response through the OS.

In T414, the CPU201causes Read-app303to compare IDs of Write-apps302. Specifically, Read-app303determines whether the ID of Write-app302matches IDs of Write-apps302stored in the HDD204. Note that the CPU201operates in accordance with Read-app303and stores IDs of Write-apps302which may be cooperated with Read-app303in the HDD204in advance such that the IDs are readable by Read-app303. When the ID of Write-app302does not match the IDs stored in the HDD204, the CPU201causes Read-app303to transmit an error notification to the OS in T415so as to stop the operation of Read-app303. By this, activation of Read-app303mistakenly performed by an unknown application may be avoided.

On the other hand, when the ID of Write-app302matches one of the IDs stored in the HDD204, the CPU201displays a screen corresponding to the request ID obtained in T413in T416. For example, a screen displayed when Read-app303transmits the request ID in T401is displayed in the display device211. Thereafter, the CPU201obtains an image from the HDD204based on the image ID list obtained by Read-app303and adds the image to the list display. For example, when “Add Photograph by Write-app” is selected in the screen illustrated inFIG. 5B, the image is newly added to the list of images displayed on a left side in the screen illustrated inFIG. 5Bafter the screen illustrated inFIG. 5Bis displayed.

A certain period of time is required from when the user selects “Add Photograph by Write-app” in one of the screens illustrated inFIGS. 5B to 5Dto when an image is obtained from the imaging apparatus102. For example, when the screen illustrated inFIG. 5Bis displayed in a waiting state until an image is obtained, the obtained image is added to the screen in T416. However, a long period of time is required for obtaining an image from the imaging apparatus102in some cases, and in such a case, the user may stop operation of Read-app303and execute another process. Accordingly, in this embodiment, the request ID of Read-app303is obtained at the time when the activation of Write-app302is requested. By this, even if operation of Read-app303is temporarily stopped after the request for activating Write-app302is issued, content of a process performed by Read-app303when the request ID is transmitted may be identified when Read-app303is restarted after a process of Write-app302is completed. By this, a screen corresponding to the request for activating Write-app302is displayed when Read-app303is restarted after the process of Write-app302is completed, and therefore, the user may smoothly perform a desired editing process.

In T417, the CPU201causes Read-app303to perform the editing process selected by the user, store a result of the editing in the HDD204in accordance with the OS, and terminate the process. Note that the editing process may be started when the user instructs start of the editing process or immediately after the process in T416is terminated. In the former case, in the example of the screen illustrated inFIG. 5C, after an image is obtained, the user selects a printer, the number of copies, and an image to be edited. After a print setting is input, an icon indicating start of printing is displayed, and when the icon is selected, the editing process (a print process) is started. In the latter case, in the example of the screen illustrated inFIG. 5C, first, the user selects a printer and the number of copies before selecting “Add Photograph by Write-app”. When the user selects “Add Photograph by Write-app” after the print setting is input, it is determined that start of editing is instructed. Note that, when a plurality of images are obtained in T416, only an image to be subjected to the editing process may be selected by the user from among the plurality of images.

According to this embodiment, as described above, a request for activating Write-app302is issued by Read-app303, a request ID corresponding to content of a process performed by Read-app303is transmitted, and Write-app302transmits a request ID to Read-app303as a response to a result of the process. By this, Read-app303may identify the result of the process corresponding to the request transmitted by Read-app303and operate in accordance with the request ID so that the user may smoothly perform a desired editing process. Furthermore, since the image ID list is transmitted to Read-app303as a response to the result of the process from Write-app302, an image storage destination may be immediately referred to when Read-app303performs the editing process, and accordingly, the editing process may be more smoothly performed.

Second Embodiment

Hereinafter, a second embodiment of the present invention will be described with reference to the accompanying drawings. In this embodiment, a case where a user activates an application for data obtainment by operating a communication device (a smartphone) and activates an image editing application will be described as an example. Note that a configuration of the communication device according to this embodiment is the same as that of the first embodiment, and therefore, a description thereof is omitted.

FIG. 6is a sequence diagram illustrating a procedure of an image editing process performed when Read-app303is activated by Write-app302according to this embodiment.

First, the process is started when Write-app302is activated by a user operation. In T601, a CPU201causes Write-app302to transmit a request for obtaining an image to an external apparatus (an imaging apparatus102). In T602, the CPU201causes Write-app302to receive data on the image from the imaging apparatus102through a NET I/F209.

In T603, the CPU201causes Write-app302to perform a process of storing an image. Specifically, the CPU201stores the image received in T602in an HDD204or the like and assigns an image ID to the newly-stored image. In T604, the CPU201causes Write-app302to perform a process of generating an image ID list. Specifically, first, Write-app302obtains the image ID of the stored image, generates an image ID list including the image ID of the stored image and a storage destination which are associated with each other, and stores the image ID list which is readable from an OS301in the HDD204. In T605, the CPU201causes the OS301to receive a request for activating Read-app303from Write-app302.

In T606, the CPU201causes the OS301to transmit an activation request to Read-app303so as to activate Read-app303. Here, when Read-app303is activated, Read-app303obtains an ID of Write-app302which has issued the activation request. In T607, the CPU201causes Read-app303to receive the image ID list generated by Write-app302in T604through the OS301.

In T608, the CPU201causes Read-app303to compare IDs of Write-apps302. Specifically, Read-app303determines whether the ID of Write-app302matches one of IDs of Write-apps302stored in the HDD204. Note that the CPU201operates in accordance with Read-app303and stores an ID of Write-apps302which may be cooperated with Read-app303in the HDD204in advance such that the ID is readable by Read-app303. When the ID of Write-app302does not match the IDs stored in the HDD204, the CPU201causes Read-app303to transmit an error notification to the OS301in T609and stops activation of Read-app303. By this, activation of Read-app303mistakenly performed by an unknown application may be avoided.

On the other hand, when the ID of Write-app302matches one of the IDs stored in the HDD204, the CPU201causes Read-app303to obtain the image stored in T603from the HDD204based on the image ID list obtained in T607in T610. Furthermore, the CPU201causes the display device211to display a screen which is to be used by the user to instruct content of editing. The screen illustrated inFIG. 5A, for example, is used as a screen by the user to instruct content of editing. When the user selects editing content, a screen illustrated in one ofFIGS. 5B to 5Dis displayed. Here, an image obtained from the imaging apparatus102is included in the image list. Note that the images may be displayed in the list such that the image obtained latest may be distinguished from the other images so that the latest obtained image is distinguished from the images which have been stored in the HDD204.

In T611, the CPU201causes Read-app303to perform an editing process selected by the user and terminates the process.

As described above, according to this embodiment, even when Write-app302is activated by a user operation, Read-app303may be smoothly activated and an editing process may be selected.

Third Embodiment

Processing Procedure of Communication Device

A procedure of a process performed by a communication device101according to a third embodiment Will be described with reference toFIGS. 7 to 9E. In this embodiment, a case where a CPU201of a communication device101first activates Write-app302, receives an instruction issued by a user during a process performed by Write-app302, and activates Read-app303will be described as an example.

In sequence diagrams ofFIGS. 7A and 7B, according to this embodiment, the CPU201of the communication device101activates Write-app302and causes Write-app302to obtain an image from an external apparatus. Thereafter, the CPU201of the communication device101activates Read-app303by a user operation during download of an image from the external apparatus and causes Read-app303to perform an image editing process on the obtained image. Note that the process described below is realized when the CPU201of the communication device101activates an OS301, Write-app302, and Read-app303and operates in accordance with the OS301, Write-app302, and Read-app303where appropriate, and controls various units.

FIGS. 7A and 7Bare sequence diagrams illustrating a procedure of a process of activating Write-app302before activating Read-app303and performing an image editing process, which is performed by the CPU201of the communication device101according to this embodiment.

First, the CPU201of the communication device101starts the process by activating Write-app302in response to a user operation. After activating Write-app303, the CPU201causes a display device211to display a top screen810illustrated inFIG. 8A. When a press of a button “List of Images in Camera”811performed in accordance with a user operation is detected, the CPU201displays a screen320including a list of images in a camera illustrated inFIG. 8Bin the display device211. When a user operation of pressing a return icon823in FIG. SB is detected, the CPU201stops execution of the function of displaying the list of the images in the camera and displays the top screen810.

In the display of the screen820including the list of the images in the camera, the communication device101receives thumbnail images corresponding to captured images which have been recorded in a recording medium410of an imaging apparatus102from the imaging apparatus102and stores the thumbnail images in an HDD204of the communication device101. Thereafter, the stored thumbnail images are read from the HDD204and displayed in the display device211. The user selects a desired one of a plurality of thumbnail images821displayed as a list so as to use the selected thumbnail image by Read-app303. When receiving a user operation of pressing an image obtaining icon822, the CPU201stores information on the selected thumbnail image as a “list of images to be stored” in a RAM203such that the thumbnail image is readable by Write-app302.

Note that, if a plurality of Read-apps303are installed in the communication device101, the CPU201displays an application selection dialog for prompting the user to select one of Read-apps303which is requested to be activated by Write-app302in accordance with Write-app302in the display device211. The CPU201stores a type of Read-app303selected by the user in the RAM203in advance such that the type is readable by Write-app302.

Then in T701, the CPU201causes Write-app302to issue a request for obtaining main image data corresponding to the thumbnail image selected by the user to the external apparatus (the imaging apparatus102) based on the list of images to be stored. In T702, the CPU201causes Write-app302to successively receive main image data from the imaging apparatus102through the NET I/F209. Every time the main image data is supplied from the imaging apparatus102, the CPU201performs a process of storing the main image data in accordance with Write-app302in T703. Specifically, the CPU201stores the main image data received in T702in the HDD204. Then the CPU201issues an image ID for the newly-stored main image data. Although the image ID serves as a code associated with a file path to a storage destination in this embodiment, the image ID may be other than the code.

The CPU201repeatedly executes the image receiving process in T702and the image obtaining process including the image storing process and the image ID issuing process in T703until obtainment of main image data included in the list of the images to be stored is completed. The CPU201displays a storage progress screen830illustrated inFIG. 8Cin the display device211in accordance with Write-app302while the image obtaining process is repeatedly performed. The storage progress screen830includes an image information region831displaying a thumbnail image corresponding to the main image data being subjected to the image obtaining process and a progress bar indicating progress of the obtaining process. After the process of obtaining the main image data is completed, the image information region831displays a thumbnail image of main image data to be subjected to the obtaining process next. In an image information region842, thumbnail images corresponding to the main image data which has been subjected to the image obtaining process and which has been stored in the HDD204, file names, and marks indicating that the files have been obtained are displayed. In an image information region833, as with the image information region831, the thumbnail image corresponding to the main image data being subjected to the image obtaining process, a file name, and a mark indicating that the file is being obtained are displayed. In the image information region833, when the process of obtaining the target main image data is completed, the mark indicating that the file is being obtained is updated to the mark indicating the file has been obtained. Thereafter, information on main image data of a target of the next obtaining process is additionally displayed in the storage progress screen830. Furthermore, an icon834is used to receive a request for activating Read-app303from the user. The icon834is displayed in the storage progress screen830when at least one of the image data included in the list of the images to be stored is stored in the HDD204. Furthermore, when pressing a button “Cancel”835, the user may instruct interruption of the image obtaining process.

In T704, the CPU201determines whether a request for activating Read-app303has been issued. Specifically, the CPU201determines whether an operation of pressing the icon834in the storage progress screen830performed by the user has been detected. When the determination is affirmative, the CPU201notifies the OS301of the request for activating Read-app303issued by Write-app302in T705.

In T706, the CPU201causes Write-app302to perform a process of generating an image ID list. Specifically, first, Write-app302generates an image ID list indicating image IDs of image data which has been stored in T703in a current time point and stores the image ID list in the HDD204such that the list is readable from the OS301.

In T707, the CPU201causes the OS301to issue a request for activating Read-app303. At this time, the CPU201obtains an ID of Write-app302of a source of the activation request through the OS301and transmits the ID to Read-app303. Furthermore, in T708, the CPU201causes Read-app303to receive the image ID list generated by Write-app302in T706through the OS301. In T709, the CPU201causes Read-app303to compare IDs of Write-apps302. Specifically, it is determined whether the ID of Write-app302of the request source matches one of IDs of Write-apps302stored in the HDD204. Note that the CPU201operates in accordance with Read-app303and an ID of Write-app302which may cooperate with Read-app303is stored in the HDD204in advance such that the ID is readable by Read-app303. As a result of the comparison, when the ID of Write-app302of the request source obtained in T707matches one of the IDs stored in advance in the HDD204, the CPU201activates Read-app303. By this, a screen of Write-app302is shifted to a background and therefore is not displayed, and a screen of Read-app303is displayed in a foreground. For example, in a case where Read-app303which has not been activated is newly activated, a screen illustrated inFIG. 9Ais displayed. On the other hand, in a case where Read-app303has been activated and operates in the background, one of screens illustrated inFIGS. 9A to 9Dwhich corresponds to a state of Read-app303is displayed.

In T710, the CPU201causes Read-app303to read and obtain the main image data stored in T703based on the image ID list obtained in T708from the HDD204. Then the CPU201displays a screen which causes the user to specify editing content in the display device211in accordance with Read-app303. The screen which causes the user to specify editing content is a screen illustrated inFIG. 9A, for example, and when the user selects editing content, one of the screens illustrated inFIGS. 9B to 9Dis displayed. Here, in addition to the image obtained from the imaging apparatus102in T710, images which have been obtained by the communication device101by other methods are also included in the image list to be displayed. Therefore, the list may be displayed such that the image obtained from the imaging apparatus102in T710is distinguished from the other images. The CPU201operates in accordance with Read-app303, selects a desired one of the images displayed as the list in response to a user operation, and executes an editing process. In T711, the CPU201stores a result of the editing in the HDD204in accordance with Read-app303.

Note that, although Write-app302is shifted to the background when Read-app303is activated, even after the shift, the CPU201operates in accordance with Write-app302and continues the process of obtaining the remaining images in the list of images to be stored while connection to the camera is maintained. Then in T712, the CPU201monitors whether the obtaining process has been performed on all the main image data included in the list of the image to be stored. When it is determined that the obtaining process has been performed on all the image data in the list of the images to be stored, the CPU201executes the process of generating an image ID list in T713on an image ID of main image data which has not been included in the image ID list generated in T706. Specifically, first, the CPU201causes Write-app302to generate an image ID list indicating image IDs of image data stored in the HDD204after the image ID list is generated in T706, that is, after the process of activating Read-app303is performed. Then the image ID list is stored in the HDD204such that the image ID list is readable from the OS301. Accordingly, Read-app303may receive the image ID list through the OS301in T723described below and the image ID list may be used in a process of Read-app303. Therefore, it may be said that the image ID list is stored in the HDD204by Write-app302so as to be usable in the process of Read-app303. Furthermore, in T714, the CPU201transmits information on completion of the obtaining process to the OS301in accordance with Write-app302. The CPU201performs notification control such that information on completion of storage of all the remaining images is transmitted to the user in T715in accordance with the OS301. Specifically, a message indicating that the process of obtaining the remaining images is completed is displayed in the display device211. An example of the message displayed in T715is illustrated inFIG. 9E. A message951is displayed in the foreground. Note that the OS301may notify Read-app303of completion of the obtaining process performed by Write-app302and display the message951in accordance with Read-app303instead of the OS301. Alternatively, the message951may be displayed in accordance with Write-app302instead of the OS301.

Note that, although the case where the CPU201transmits the notification when the obtaining process is completed in T714is described in this embodiment, the number of images newly obtained may be transmitted to Read-app303through the OS301during the obtaining process.

In T716, the CPU201determines whether a request for calling Write-app302has been performed by Read-app303. For example, it is determined whether the user has tapped a predetermined region in the message951. When the determination is affirmative, the CPU201causes Read-app303to transmit a request for calling Write-app302to the OS301in T717. Furthermore, the CPU201disconnects connection to the external apparatus in accordance with Write-app302.

Note that the CPU201causes Read-app303to issue a request ID in T716, and the CPU201associates the request ID with a request for calling Write-app302issued by Read-app303and stores the request ID and the request in the HDD204. Here, the request ID varies in accordance with editing content being selected by Read-app303. For example, the request ID varies in accordance with one of the screens illustrated inFIGS. 9B to 9Dwhich is used to select “Add Photograph by Write-app”.

In T718, the CPU201causes the OS301to issue an activation request to Write-app302. Then the CPU201operates in accordance with Write-app302and receives a request ID. Furthermore, the CPU201operates in accordance with Write-app302and receives an ID of Read-app303of a request source through the OS301. The ID of Read-app303which is unique to Read-app303installed in the communication device101is stored in the HDD204when Read-app303is installed and read and transmitted from the HDD204when a request for activating Write-app302is issued.

In T719, the CPU201causes Write-app302to compare IDs of Read-apps303. Specifically, it is determined whether the ID of Read-app303of the request source matches one of IDs of Read-apps303stored in the HDD204. Note that the CPU201operates in accordance with Write-app302and an ID of Read-app303which may cooperate with Write-app302is stored in the HDD204in advance such that the ID is readable from Write-app302.

As a result of the comparison, when the ID of Read-app303of the request source matches one of the IDs stored in advance in the HDD204, the CPU201activates Write-app302. By this, a screen of Read-app303is shifted to the background and therefore is not displayed, and a screen of Write-app302is displayed in the foreground. In this case, a storage completion screen840of Write-app302illustrated inFIG. 8Dis displayed in the display device211along with a message dialog341indicating that the process of obtaining an image from the camera is completed.

In T720, the CPU201determines whether a request for activating Read-app303has been issued. Specifically, the CPU201determines whether an operation of activating Read-app303performed by the user in accordance with the message dialog841has been detected. When a press of an OK button842performed by the user is detected, the CPU201causes Write-app302to notify the OS301of a request for activating Read-app303in T721. Furthermore, the CPU201causes the OS301to receive a request ID from Write-app302as a request for calling Read-app303from Write-app302. Here, the request ID is the same as that received by Write-app302from the OS301in T728.

Subsequently, in T722, the CPU201causes the OS301to issue a request for activating Read-app303. Here, not only the ID of Write-app302of the request source but also the request ID is transmitted from the OS301to Read-app303. The process to be performed onwards is the same as the process in T708to T711described above.

Note that Read-app303operates even after the process of calling Write-app302is performed in T717, and therefore, the process of activating Read-app303functions as cancel of a sleep state or a process of confirming that Read-app303is operating. Note that Read-app303may temporarily stop the operation after the process in T717is performed and may be reactivated in response to an activation request issued in T721.

Note that the CPU201displays a screen corresponding to the request ID when Read-app303is activated and displays the screen of Read-app303in the foreground. The screen corresponding to the obtained request ID is displayed in T721. For example, the screen displayed when Read-app303transmits the request ID in T701is displayed in the display device211. Thereafter, the CPU201obtains an image from the HDD204based on the image ID list obtained by Read-app303and adds the image to the list display. For example, in the screen illustrated inFIG. 9B, an image is newly added to the display of the list of images on a left side in the screen.

According to this embodiment, the communication device101may activate Read-app303and execute the process of Read-app303, such as “layout printing” on an obtained image even while an image is being obtained from the camera using Write-app302. Furthermore, the process of obtaining a background image is continuously performed using Write-app302so that the process may be executed by Write-app302on the remaining images. Accordingly, a problem that the user is required to wait for a long period of time until the obtaining process is performed on all a large number of images is solved, and usability is improved.

Fourth Embodiment

Processing Procedure of Communication Device

A processing procedure of a communication device101according to a fourth embodiment will be described hereinafter with reference toFIGS. 9A to 10. In this embodiment, a case where a CPU201of the communication device101first activates Read-app303, receives an instruction issued by a user in a screen for performing a process of Read-app303, and executes a process of calling Write-app302will be described. Note that descriptions of components and processes the same as those of the first embodiment are omitted where appropriate.

First, the CPU201of the communication device101starts a process by activating Read-app303in response to a user operation. When Read-app303is activated, the CPU201displays a screen illustrated inFIG. 9Ain a display device211. In the screen illustrated inFIG. 9A, the user selects editing content to be executed through a touch panel of the display device211.

For example, when “Process Photograph” is selected, a screen illustrated inFIG. 9Bis displayed in the display device211, and when “Print Photograph” is selected, a screen illustrated inFIG. 9Cis displayed in the display device211. When “Transmit Photograph” is selected, a screen illustrated inFIG. 9Dis displayed in the display device211. In the screens illustrated inFIGS. 9B to 9D, an image to be edited may be selected from among images stored in an HDD204or the like. On the other hand, when an image which is not stored in the communication device101is to be edited, “Add Photograph by Write-app” is selected so that, an image is obtained from an external apparatus. A process inFIG. 10is started when the user selects “Add Photograph by Write-app”.

In T1001ofFIG. 10, the CPU201causes Read-app303to issue a request ID. In T1002, the CPU201receives a request for activating Write-app302and stores the request ID issued in T1001and the activation request which are associated with each other in the HDD204. Here, the request ID varies depending on a selected editing content. For example, a request ID varies depending on one of the screens illustrated inFIGS. 9B to 9Din which “Add Photograph by Write-app” is selected.

In T1003, the CPU201causes an OS301to issue a request for activating Write-app302so as to activate Write-app302. In T1004, the CPU201causes Write-app302to receive the request ID. When Write-app302is activated, Write-app302receives an ID of Read-app303of a request source. The ID of Read-app303which is unique to Read-app303installed in the communication device101is stored in the HDD204when Read-app303is installed and read and transmitted from the HDD204when a request for activating Write-app302is issued.

Subsequently, in T1005, the CPU201causes Write-app302to compare IDs of Read-apps303with each other. Specifically, Write-app302determines whether the ID of Read-app303of the request source matches one of IDs of Read-apps303stored in the HDD204. Note that the CPU201operates in accordance with Write-app302and stores an ID of Read-app303which may cooperate with Write-app302in the HDD204in advance such that the ID is readable by Write-app302. When the ID of Read-app303matches one of the IDs stored in the HDD204, the CPU201activates Write-app302. By this, a screen of Read-app303is shifted to a background and therefore is not displayed, and a screen of Write-app302is displayed in a foreground. For example, in a case where Write-app302which has not been activated is newly activated, a top screen810illustrated inFIG. 8Ais displayed. Furthermore, in a case where a function of “a list of images in a camera” is executed in the background during Write-app302is operated, for example, an image list screen820illustrated inFIG. 8Bis displayed.

Then the CPU201detects a state of Write-app302and executes a process corresponding to the detected state. Subsequently, the CPU201executes the function of a list of images in a camera and determines main image data to be obtained in response to a user operation. Thereafter, the process in T701onwards inFIGS. 7A and 7Bof the first embodiment is performed.

Other Embodiments

In the foregoing embodiments, the case where Write-app302is an application which obtains an image from the imaging apparatus102is illustrated as an example. However, Write-app302may be other applications. For example, Write-app302may be an application for searching a database for an image or an application which performs an imaging process. In this case, an image ID list including an ID of a searched image or an ID of an image which is newly captured is generated. Furthermore, although image data is used according to the foregoing embodiments, not only image data but also other data including audio data may be used.

Furthermore, although a smartphone is employed as an example of an information processing apparatus in the foregoing embodiments, any device may be employed as long as an application may be installed in the device. For example, a cellular phone, a tablet device, a personal computer (PC), or the like may be similarly employed as the information processing apparatus. In a case where Read-app303or Write-app302is an application which does not require a communication function, the information processing apparatus may not be a communication device.

An imaging apparatus which is an example of the external apparatus according to the present invention will now be described.FIG. 11Ais a block diagram illustrating an example of a configuration of the imaging apparatus102which is an example of the external apparatus according to this embodiment. Although an imaging apparatus is described as an example of the external apparatus, the external apparatus is not limited to this. Examples of the external apparatus include a mobile media player and information processing apparatuses, such as a tablet device and a personal computer.

A controller1101controls various units included in the imaging apparatus102in accordance with an input signal and programs described below. Note that a plurality of hardware sections may share processes so as to control the entire apparatus instead of control of the entire apparatus performed by the controller1101.

An imaging unit1102includes an optical lens unit, an optical system which controls diaphragm, zoom, and focus, and an imaging element which converts light (a video image) introduced through the optical lens unit into an electric video signal. Examples of the imaging element generally include a complementary metal oxide semiconductor (CMOS) sensor and a charge coupled device (CCD) sensor. The imaging unit1102converts subject light formed on a lens included in the imaging unit1102into an electric signal using the imaging element, performs a noise reduction process, and outputs resultant digital data as image data under control of the controller1101. In the imaging apparatus102of this embodiment, image data is stored in a recording medium1110in accordance with a standard of the design rule for camera file system (DCF).

A nonvolatile memory1103is an electrically erasable/recordable nonvolatile memory and stores programs described below to be executed by the controller1101and the like.

An operation memory1104is used as a buffer memory which temporarily stores image data captured by the imaging unit1102, an image display memory for a display unit1106, a work area for the controller1101, and the like.

An operation unit1105is used to receive an instruction issued by the user to the imaging apparatus102from the user. The operation unit1105includes a power source button used by the user to instruct an ON state or an OFF state of a power source of the imaging apparatus102, a release switch for instructing imaging, and a reproduction button for instructing reproduction of image data, for example. The operation unit1105further includes operation members, such as a connection button dedicated for start of communication with the external apparatus through a communication unit1111described below. Furthermore, a touch panel formed on the display unit1106described below is also included in the operation unit1105. Note that the release switch includes switches SW1and SW2. When the release switch is brought into a half-press state, the switch SW1is turned on. By this, an instruction for performing preparation for imaging including an auto-focus (AF) process, an auto exposure (AE) process, an auto white balance (AWB) process, and a flash preliminary light emission (EF) process is received. Furthermore, when the release switch is brought into a full-press state, the switch SW2is turned on. By this, an instruction for performing imaging is received.

The display unit1106performs display of a view-finder image at a time of imaging, display of data on a captured image, and display of text for a dialogical operation. Note that the display unit1106may not be incorporated in the imaging apparatus102. The imaging apparatus102at least capable of being connected to the display unit1106which is internally or externally provided and at least has a display control function of controlling display of the display unit1106.

The recording medium1110may record image data output from the imaging unit1102. The recording medium1110may be attachable to the imaging apparatus102or incorporated in the imaging apparatus102. Specifically, the imaging apparatus102at least include a unit for accessing the recording medium1110.

The communication unit1111is an interface for connection to the external apparatus. The imaging apparatus102of this embodiment may perform transmission and reception of data with the external apparatus through the communication unit1111. For example, the imaging apparatus102may transmit image data generated by the imaging unit1102to the external apparatus through the communication unit1111. Furthermore, imaging performed by the imaging unit1102may be controlled by the external apparatus through the communication unit1111. Note that, in this embodiment, the communication unit1111includes an interface for so-called wireless LAN communication between the communication unit1111and the external apparatus in accordance with the standard of IEEE802.11. The controller1101realizes the wireless communication with the external apparatus by controlling the communication unit1111.

A proximity wireless communication unit1112includes an antenna for wireless communication, a modulation/demodulation circuit which processes a wireless signal, and a communication controller, for example. The proximity wireless communication unit1112outputs a modulated wireless signal through the antenna and demodulate a wireless signal received by the antenna so as to realize proximity wireless communication based on the standard of IEEE802.15 (so-called Bluetooth (registered trademark)). In this embodiment, as the Bluetooth communication, Bluetooth Low Energy version 4.0 (BLE) which consumes low electric power is employed. The BLE communication has a narrower communication available range when compared with the wireless LAN communication (that is, a communication available distance is short). Furthermore, the BLE communication has a communication speed slower than that of the wireless LAN communication. On the other hand, the BLE communication consumes electric power less than the wireless LAN communication. The imaging apparatus102of this embodiment is capable of performing transmission and reception of data with the external apparatus through the proximity wireless communication unit1112. For example, imaging performed by the imaging unit1102may be controlled by the external apparatus through the proximity wireless communication unit1112. However, since the communication speed is low, the image data generated by the imaging unit1102is not transmitted.

Note that the communication unit1111of the imaging apparatus102of this embodiment has an AP mode in which the communication unit1111operates as an access point in an infrastructure mode and a CL mode in which the communication unit1111operates as a client in the infrastructure mode. When the communication unit1111operates in the CL mode, the imaging apparatus102of this embodiment may operate as a CL device in the infrastructure mode. In a case where the imaging apparatus102operates as a CL device, when the imaging apparatus102is connected to a peripheral AP device, the imaging apparatus102may be added to a network formed by the AP device. Furthermore, when the communication unit1111operates in the AP mode, the imaging apparatus102of this embodiment may operate as an AP having limited functions (a simple AP) which is a type of AP. When the imaging apparatus102operates as a simple AP, the imaging apparatus102forms a network by itself. Apparatuses near the imaging apparatus102recognize the imaging apparatus102as an AP device and may be added to the network formed by the imaging apparatus102. As described above, the program for operating the imaging apparatus102is stored in the nonvolatile memory1103.

Note that, although the imaging apparatus102of this embodiment is a type of AP, the imaging apparatus102is a simple AP which does not have a gateway function of transferring data received from the CL device to an internet provider or the like. Accordingly, even if the imaging apparatus102receives data from another apparatus included in the network formed by the imaging apparatus102, the imaging apparatus102does not transfer the data to a network, such as the Internet.

Next, appearance of the imaging apparatus102will be described.FIGS. 11B and 11Care diagrams illustrating an example of appearance of the imaging apparatus102. A release switch1105a, a reproduction button1105b, a direction key1105c, and a touch panel1105dare operation members included in the operation unit1105described above. Furthermore, an image obtained as a result of imaging performed by the imaging unit1102is displayed in the display unit1106. Furthermore, the imaging apparatus102of this embodiment has an antenna portion of the proximity wireless communication unit1112on a side surface of a camera case. By bringing the proximity wireless communication unit1112close to a proximity wireless communication unit1112of another device in a certain distance, proximity wireless communication with the other device may be established. By this, non-contact communication without a cable or the like may be realized and a communication partner may be limited as desired by the user.

According to the present invention, in a case where, during a first application is operated, a second application is activated so as to be operated, the first application may smoothly perform a process after the second application is executed.

The present invention is also realized when a program which realizes at least one of the functions of the foregoing embodiments is supplied to a system or an apparatus through a network or a storage medium and at least one processor of a computer included in the system or the apparatus reads and executes the program. Furthermore, the present invention may be realized by a circuit (such as an application specific integrated circuit (ASIC)) which realizes at least one of the functions.