Abstract:
A method includes: executing an application prepared by an application programming interface (API) of a platform; and establishing a network connection. A first network connection is selected based on a determination that the application specifies a network connection, or a default network connection is selected, based on a determination that the application does not specify a network connection.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. patent application Ser. No. 12/958,007, filed on Dec. 1, 2010, which claims priority from U.S. Patent Provisional Application Nos. 61/265,923 and 61/265,939, filed Dec. 2, 2009, and from Korean Patent Application No. 10-2010-0116091 filed Nov. 22, 2010, in the Korean Intellectual Property Office, the disclosures of which are incorporated herein by reference in their entireties. 
     
    
     BACKGROUND 
       [0002]    1. Field 
         [0003]    Apparatuses and methods consistent with exemplary embodiments relate to a mobile device and a control method thereof, and more particularly, to a mobile device capable of providing a network function and a control method thereof. 
         [0004]    2. Description of the Related Art 
         [0005]    A mobile device such as a cellular phone, a smart phone, a tablet personal computer (PC), etc. performs communication through various networks such as third generation (3G), Wi-Fi, etc. Such various networks have their merits and deficiencies regarding connectivity, speed, costs, etc. Thus, it is desirable to selectively use various networks in accordance with purpose or intention. 
         [0006]    Meanwhile, an application of a mobile device often uses a network service supported by an operating system (OS), a platform or the like of the mobile device in order to provide a function useful to a user. 
         [0007]    However, the OS, the platform, or the like of a related art mobile device does not sufficiently support an application developer to conveniently develop an application in association with the network. Therefore, enhancement of an application developing environment is desirous. 
       SUMMARY 
       [0008]    Exemplary embodiments address at least the above problems and/or disadvantages and other disadvantages not described above. Also, an exemplary embodiment is not required to overcome the disadvantages described above, and an exemplary embodiment may not overcome any of the problems described above. 
         [0009]    One or more exemplary embodiments provide a mobile device capable of providing a developing environment in which a preferred network can be more easily set up, and a control method thereof. 
         [0010]    According to an aspect of an exemplary embodiment, there is provided a mobile device providing a network function, the mobile device including a display unit which displays an image; a user input unit which receives an input of a user; a communication unit which performs communication through a network; and a control unit which executes an application prepared by an application programming interface (API) of the network function provided by a platform, and controls the communication unit to perform communication in accordance with setup of a preferred network if the application includes the setup of the preferred network. 
         [0011]    The platform may define a plurality of operation modes related to the preferred network, the application may include setup of a variable representing one of the plurality of operation modes, and the control unit may control the communication unit to operate in the operation mode corresponding to the setup of the variable. 
         [0012]    The plurality of operation modes may include use of Wi-Fi first, use of only a packet switched (PS) domain, and use of only Wi-Fi. 
         [0013]    A network connection by the platform may include a default network connection where the application does not specify the network connection, and a custom network connection where the application is enabled to directly control the network, and the control unit may control the communication unit to perform communication in accordance with the setup of the preferred network in the case of the default network connection. 
         [0014]    According to another aspect of an exemplary embodiment, there is provided a control method of a mobile device providing a network function, the control method including executing an application prepared by an API provided by a platform of the mobile device; and performing communication in accordance with setup of a preferred network if the application includes the setup of the preferred network. 
         [0015]    The platform may define a plurality of operation modes related to the preferred network, the application may include setup of a variable representing one of the plurality of operation modes, and the performing the communication may include performing communication to operate in the operation mode corresponding to the setup of the variable. 
         [0016]    The plurality of operation modes may include use of Wi-Fi first, use of only a PS domain, and use of only Wi-Fi. 
         [0017]    A network connection by the platform may include a default network connection where the application does not specify the network connection, and a custom network connection where the application is enabled to directly control the network, and the performing the communication may include performing the communication in accordance with the setup of the preferred network in the case of the default network connection. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0018]    The above and/or other aspects will become more apparent from the following description of exemplary embodiments, taken in conjunction with the accompanying drawings, in which: 
           [0019]      FIG. 1  is a block diagram showing a configuration of a mobile device according to an exemplary embodiment; 
           [0020]      FIG. 2  is a block diagram showing a software configuration of the mobile device of  FIG. 1 ; 
           [0021]      FIGS. 3 and 4  show network connection types of the mobile device according to an exemplary embodiment; 
           [0022]      FIG. 5  is a view for explaining a preferred network of the mobile device according to an exemplary embodiment; and 
           [0023]      FIG. 6  is a flowchart showing an operation of the mobile device according to an exemplary embodiment. 
       
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       [0024]    Certain exemplary embodiments are described in greater detail below with reference to accompanying drawings. 
         [0025]    In the following description, like drawing reference numerals are used for like elements, even in different drawings. The matters defined in the description, such as detailed construction and elements, are provided to assist in a comprehensive understanding of exemplary embodiments. However, exemplary embodiments can be practiced without those specifically defined matters. 
         [0026]      FIG. 1  is a block diagram showing a configuration of a mobile device according to an exemplary embodiment. The mobile device  1  shown in  FIG. 1  may include, for example, a cellular phone, a smart phone, a tablet personal computer (PC), etc. The mobile device  1  may include a communication unit  11 , a display unit  12 , an audio output unit  13 , a user input unit  14 , a storage unit  16 , a control unit  17 , a power unit  18 , a camera unit  191 , and an audio input unit  192 . 
         [0027]    The communication unit  11  performs communication through a network. The contents and type of the communication performed by the communication unit  11  may vary depending on use and function of the mobile device  1 . For example, in the case of a telephone function, the communication unit  11  calls the other device (not shown) for telephone conversation. In this exemplary embodiment, the calling type includes 3G. In the case of an Internet function, the communication unit  11  performs Internet connection with a predetermined server (not shown) for transmitting/receiving data. Further, the communication unit  11  may perform communication with a peripheral device (not shown) through local communication such as Bluetooth, WiFi, etc. The communication unit  11  performs the communication under control of the control unit  17 . 
         [0028]    The display unit  12  displays an image representing the operation or state of the mobile device  1 . The display unit  12  may display an image by using various display devices including, for example, a liquid crystal display (LCD), an organic light emitting device (OLED), etc. The audio output unit  13  outputs an audio representing the operation or state of the mobile device  1 . The audio output unit  13  may include an audio processor (not shown) that processes an audio signal, and a loudspeaker (not shown) that outputs an audio based on an audio signal. 
         [0029]    The user input unit  14  receives a user&#39;s command. The user input unit  14  may receive a user&#39;s command in various forms, which may include a key input unit (not shown) that receives a user&#39;s command by a key input, and a touch input unit (not shown) that receives a user&#39;s command by a touch input. A touch input unit may include a touch screen provided in the display unit  12 . 
         [0030]    The storage unit  16  is a non-volatile memory including, for example, a flash memory, a hard disk drive, etc., which stores data or programs for operating the mobile device  1 . The power unit  18  supplies power for operating the mobile device  1 . The camera unit  191  takes an image, and the audio input unit  192  may include a microphone or the like and receives an audio. Some of the above-described elements, for example, the camera unit  191 , or the like may be omitted from the mobile device  1  in consideration of its function or use. 
         [0031]    The control unit  17  controls the operation of the elements in the mobile device  1 . The control unit  17  may include a read only memory (ROM)  171  where a control program for performing an operation is stored, a random access memory (RAM)  172  where the control program is at least partially loaded, and a central processing unit (CPU)  173  which executes the loaded control program. The control program of the control unit  17  may be stored in the storage unit  16  as well as in the ROM  171 . The control program of the control unit  17  may include a plurality of programs.  FIG. 2  is a block diagram showing an exemplary configuration of the control program in the control unit  17 . 
         [0032]    As shown in  FIG. 2 , the control program of the control unit  17  may include an OS  21 , a device driver  22 , a platform  23 , and an application  24 . The OS  21  manages and controls overall operations of the mobile device  1 . The device driver  22  performs an interface between a hardware device such as the communication unit  16  and the OS  21 . The platform  23  performs an interface between the OS  21  and the application  24 , and includes an API  231  for supporting the application  24 . 
         [0033]    The application  24  performs at least one function, and may be prepared using the API  231  of the platform  23 . The function performed by the application  24  includes a network function. The application  24  may be transmitted from the external device through the communication unit  11  and installed on the mobile device  1 . That is, a user can download the application  24  via the Internet or the like and install it on the mobile device  1 . 
         [0034]    The API  231  of the platform  23  includes an API for the network function which is also referred to as a network service. For example, a network connection representing an actual run-time session is initially established for transmitting and receiving data through a network using the platform  23 . To set up the network connection, a network account may be used. The network account encapsulates configuration parameters such as a protocol type, an access point name, a local Internet protocol (IP) address, a domain name system (DNS) address, authentication information, etc. After the network connection is successfully established, a data communication protocol such as a hyper text transfer protocol (HTTP), socket methods, etc. may be applied. 
         [0035]      FIGS. 3 and 4  show network connection types of the mobile device according to an exemplary embodiment.  FIG. 3  shows a default network connection, and  FIG. 4  shows a custom network connection. 
         [0036]    Referring to  FIG. 3 , the application  24  requests a network service of the platform  23  without a network connection via a request  31 . The network service (e.g., HTTP, socket methods, etc.) internally starts the default network connection in accordance with a preset default (as indicated by a reference numeral  32 . Next, the network service of the platform  23  accesses a network  5  via a connection  33 . 
         [0037]    The default network connection shown in  FIG. 3  is established because the application  24  does not specify the network connection, and therefore usage of the network is simplified in view of the application developer. Also, the platform  23  is allowed to fully manage the network connection. Thus, the application developers can easily and simply develop the application  24  even though they do not know complicated contents of the API  231 . 
         [0038]    Referring to  FIG. 4 , the application  24  creates the custom network connection and starts it as indicated by a reference numeral  41 . Program  1  shows an example of the application  24  that creates and starts a custom network connection. 
         [0000]    
       
         
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Program 1 
               
               
                   
                 // start the NetConnection 
               
             
          
           
               
                   
                 using namespace Osp::Net; 
               
               
                   
                 void 
               
               
                   
                 Test(void) 
               
               
                   
                 { 
               
             
          
           
               
                   
                 // Account ID 
               
               
                   
                 NetAccountId accountId = INVALID_HANDLE; 
               
               
                   
                 result r = E_SUCCESS; 
               
               
                   
                 // Account manager 
               
               
                   
                 NetAccountManager netAccountManager; 
               
               
                   
                 r = netAccountManager.Construct( ); 
               
               
                   
                 accountId = 
               
             
          
           
               
                   
                 netAccountManager.GetNetAccountId( ); 
               
             
          
           
               
                   
                 // Construct a Listener 
               
               
                   
                 TestListener* pMyListener = new TestListener( ); 
               
               
                   
                 // NetConnection instance allocation 
               
               
                   
                 NetConnection* pNetConnection = new 
               
             
          
           
               
                   
                 NetConnection; 
               
             
          
           
               
                   
                 // NetConnection Construction 
               
               
                   
                 r = pNetConnection−&gt;Construct(accountId); 
               
               
                   
                 //  —— NetConnectionEvent AddListener 
               
               
                   
                 r = pNetConnection- 
               
             
          
           
               
                   
                 &gt;AddNetConnectionListener(pMyListener); 
               
             
          
           
               
                   
                 // NetConnection connect 
               
               
                   
                 r = pNetConnection−&gt;Start( ); 
               
             
          
           
               
                   
                 } 
               
               
                   
                   
               
             
          
         
       
     
         [0039]    Referring back to  FIG. 4 , the application  24  requests a network service of the platform  23  with a network connection via a request  42 . Next, the network service of the platform  23  accesses the network  5  via a connection  43 . 
         [0040]    The custom network connection described with reference to  FIG. 4  may be for an advanced developer, and enables the application  24  to directly control the network  5 . Thus, the application  24  can use a specific network account, and start or stop the network connection at any time. That is, the application developer is allowed to develop the application  24  that provides a more enhanced function. 
         [0041]    The control unit  17  of an exemplary embodiment may enable the developer to perform communication with a desired network which may be referred to as a preferred network in accordance with a setup of the application  24 .  FIG. 5  is a view for explaining a preferred network of the mobile device in this exemplary embodiment. The preferred network in this exemplary embodiment includes Wi-Fi  51  and 3G  52 . The 3G is an example of a PS domain. The control unit  17  may be connected to one of the preferred networks, i.e., the Wi-Fi  51  and the 3G  52  in accordance with the setup of the application  24 . 
         [0042]    The API  231  of the platform  23  defines a plurality of operation modes related to the preferred network. The application  24  includes setup of variables that represents one of the operation modes defined by the API  231  of the platform  23 . Table 1 shows an example of variables corresponding to the operation modes related to the preferred network of the present exemplary embodiment, and Program 2 shows an example of the application  24  that sets up the preferred network. The platform  23  accomplishes connection to one preferred network between the Wi-Fi  51  and the 3G  52  with reference to the variables set up in the application  24 . 
         [0000]    
       
         
               
               
               
             
           
               
                   
                 TABLE 1 
               
               
                   
                   
               
               
                   
                 Variables 
                 Operation modes 
               
               
                   
                   
               
             
             
               
                   
                 NET_WIFI_FIRST 
                 Use of WI-FI first 
               
               
                   
                 NET_PS_ONLY 
                 Use of only PS domain 
               
               
                   
                 NET_WIFI_ONLY 
                 Use of only Wi-Fi 
               
               
                   
                   
               
             
          
         
       
     
       Program 2  
     Net::NetAccountManager::Construct( ) 
     Net::NetAccountManager::SetNetPreference(NET —PS   —ONLY)    
       [0043]    In this exemplary embodiment, the platform  23  provides the foregoing simple API  231  in association with the preferred network, so that the application developer can readily perform the setup related to the preferred network by simply selecting the given variable of the API  231 . Also, the setup of the preferred network may be applied to the default network connection described with reference to  FIG. 3 . In other words, although the application developer does not completely know the API  231  to accomplish the custom network connection described with reference to  FIG. 4 , the developer is enabled to set up the preferred network even when the default network connection is used. Accordingly, there is provided an environment for more easily developing the application  24 . 
         [0044]      FIG. 6  is a flowchart showing an operation of the mobile device according to an exemplary embodiment. At operation  501 , the application  24  using the API  231  of the platform is executed. At operation  502 , it is ascertained whether the application  24  includes setup related to the preferred network. If the application  24  includes the setup related to the preferred network, at operation  503  the communication is performed in accordance with the setup of the preferred network. 
         [0045]    As described above, there is provided a developing environment in which a preferred network can be more easily set up. 
         [0046]    The foregoing exemplary embodiments and advantages are merely exemplary and are not to be construed as limiting. The present teaching can be readily applied to other types of apparatuses. Also, the description of the exemplary embodiments is intended to be illustrative, and not to limit the scope of the claims, and many alternatives, modifications, and variations will be apparent to those skilled in the art.