| java.lang.Object | ||||
| ↳ | android.content.Context | |||
| ↳ | android.content.ContextWrapper | |||
| ↳ | android.app.Service | |||
| ↳ | android.telecom.ConnectionService | |||
An abstract service that should be implemented by any apps which can make phone calls (VoIP or
 otherwise) and want those calls to be integrated into the built-in phone app.
 Once implemented, the ConnectionService needs two additional steps before it will be
 integrated into the phone app:
 
 1. Registration in AndroidManifest.xml
 
 
 <service android:name="com.example.package.MyConnectionService"
    android:label="@string/some_label_for_my_connection_service"
    android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
  <intent-filter>
   <action android:name="android.telecom.ConnectionService" />
  </intent-filter>
 </service>
 
 
 2.  Registration of PhoneAccount with TelecomManager.
 
 See PhoneAccount and registerPhoneAccount(PhoneAccount) for more information.
 
 Once registered and enabled by the user in the phone app settings, telecom will bind to a
 ConnectionService implementation when it wants that ConnectionService to place
 a call or the service has indicated that is has an incoming call through
 addNewIncomingCall(PhoneAccountHandle, Bundle). The ConnectionService can then expect a call
 to onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest) or onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest) wherein it
 should provide a new instance of a Connection object.  It is through this
 Connection object that telecom receives state updates and the ConnectionService
 receives call-commands such as answer, reject, hold and disconnect.
 
 When there are no more live calls, telecom will unbind from the ConnectionService.
| Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| String | SERVICE_INTERFACE | 
          The Intent that must be declared as handled by the service.
          
    
         | 
    |||||||||
| 
  [Expand]
   Inherited Constants  | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
   From class
android.app.Service
 | |||||||||||
   From class
android.content.Context
 | |||||||||||
   From interface
android.content.ComponentCallbacks2
 | |||||||||||
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
          Adds a new conference call.
          
    
         
  
   | |||||||||||
          Adds a connection created by the  
  
  ConnectionService and informs telecom of the new
 connection.
          
    
         | |||||||||||
          Indicates to the relevant  
  
  RemoteConnectionService that the specified
 RemoteConnections should be merged into a conference call.
          
    
         | |||||||||||
          Ask some other  
  
  ConnectionService to create a RemoteConnection given an
 incoming request.
          
    
         | |||||||||||
          Ask some other  
  
  ConnectionService to create a RemoteConnection given an
 outgoing request.
          
    
         | |||||||||||
          Returns all the active  
  
  Connections for which this ConnectionService
 has taken responsibility.
          
    
         | |||||||||||
          Return the communication channel to the service. 
          
    
         
  
   | |||||||||||
          Conference two specified connections.
          
    
         
  
   | |||||||||||
          Create a  
  
  Connection given an incoming request.
          
    
         | |||||||||||
          Create a  
  
  Connection given an outgoing request.
          
    
         | |||||||||||
          Indicates that a remote conference has been created for existing  
  
  RemoteConnections.
          
    
         | |||||||||||
          Called when an existing connection is added remotely.
          
    
         
  
   | |||||||||||
          Called when all clients have disconnected from a particular interface
 published by the service. 
          
    
         
  
   | |||||||||||
| 
  [Expand]
   Inherited Methods  | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
   
From class
  android.app.Service
 | |||||||||||
   
From class
  android.content.ContextWrapper
 | |||||||||||
   
From class
  android.content.Context
 | |||||||||||
   
From class
  java.lang.Object
 | |||||||||||
   
From interface
  android.content.ComponentCallbacks2
 | |||||||||||
   
From interface
  android.content.ComponentCallbacks
 | |||||||||||
The Intent that must be declared as handled by the service.
Adds a new conference call. When a conference call is created either as a result of an
 explicit request via onConference(Connection, Connection) or otherwise, the connection service should supply
 an instance of Conference by invoking this method. A conference call provided by this
 method will persist until destroy() is invoked on the conference instance.
| conference | The new conference object. | 
|---|
Adds a connection created by the ConnectionService and informs telecom of the new
 connection.
| phoneAccountHandle | The phone account handle for the connection. | 
|---|---|
| connection | The connection to add. | 
Indicates to the relevant RemoteConnectionService that the specified
 RemoteConnections should be merged into a conference call.
 
 If the conference request is successful, the method onRemoteConferenceAdded(RemoteConference) will
 be invoked.
| remoteConnection1 | The first of the remote connections to conference. | 
|---|---|
| remoteConnection2 | The second of the remote connections to conference. | 
Ask some other ConnectionService to create a RemoteConnection given an
 incoming request. This is used by ConnectionServices that are registered with
 CAPABILITY_CONNECTION_MANAGER and want to be able to manage
 SIM-based incoming calls.
| connectionManagerPhoneAccount | See description at
         onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest). | 
        
|---|---|
| request | Details about the incoming call. | 
Connection object to satisfy this call, or null to
         not handle the call.
Ask some other ConnectionService to create a RemoteConnection given an
 outgoing request. This is used by ConnectionServices that are registered with
 CAPABILITY_CONNECTION_MANAGER and want to be able to use the
 SIM-based ConnectionService to place its outgoing calls.
| connectionManagerPhoneAccount | See description at
         onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest). | 
        
|---|---|
| request | Details about the incoming call. | 
Connection object to satisfy this call, or null to
         not handle the call.
Returns all the active Connections for which this ConnectionService
 has taken responsibility.
Connections created by this ConnectionService.
Return the communication channel to the service.  May return null if 
 clients can not bind to the service.  The returned
 IBinder is usually for a complex interface
 that has been described using
 aidl.
 
 
Note that unlike other application components, calls on to the IBinder interface returned here may not happen on the main thread of the process. More information about the main thread can be found in Processes and Threads.
| intent | The Intent that was used to bind to this service,
 as given to Context.bindService.  Note that any extras that were included with
 the Intent at that point will not be seen here. | 
        
|---|
Conference two specified connections. Invoked when the user has made a request to merge the
 specified connections into a conference call. In response, the connection service should
 create an instance of Conference and pass it into addConference(Conference).
| connection1 | A connection to merge into a conference call. | 
|---|---|
| connection2 | A connection to merge into a conference call. | 
Create a Connection given an incoming request. This is used to attach to existing
 incoming calls.
| connectionManagerPhoneAccount | See description at
         onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest). | 
        
|---|---|
| request | Details about the incoming call. | 
Connection object to satisfy this call, or null to
         not handle the call.
Create a Connection given an outgoing request. This is used to initiate new
 outgoing calls.
| connectionManagerPhoneAccount | The connection manager account to use for managing
         this call.
          
         If this parameter is not  
         If this parameter is   | 
        
|---|---|
| request | Details about the outgoing call. | 
Connection object to satisfy this call, or the result of an invocation
         of createFailedConnection(DisconnectCause) to not handle the call.
Indicates that a remote conference has been created for existing RemoteConnections.
 When this method is invoked, this ConnectionService should create its own
 representation of the conference call and send it to telecom using addConference(Conference).
 
 This is only relevant to ConnectionServices which are registered with
 CAPABILITY_CONNECTION_MANAGER.
| conference | The remote conference call. | 
|---|
Called when an existing connection is added remotely.
| connection | The existing connection which was added. | 
|---|
Called when all clients have disconnected from a particular interface published by the service. The default implementation does nothing and returns false.
| intent | The Intent that was used to bind to this service,
 as given to Context.bindService.  Note that any extras that were included with
 the Intent at that point will not be seen here. | 
        
|---|
onRebind(Intent) method later called when new clients bind to it.