# Print output for @column tags ?>
public
final
class
PhoneAccount
extends Object
implements
Parcelable
java.lang.Object | |
↳ | android.telecom.PhoneAccount |
Represents a distinct method to place or receive a phone call. Apps which can place calls and
want those calls to be integrated into the dialer and in-call UI should build an instance of
this class and register it with the system using TelecomManager
.
TelecomManager
uses registered PhoneAccount
s to present the user with
alternative options when placing a phone call. When building a PhoneAccount
, the app
should supply a valid PhoneAccountHandle
that references the connection service
implementation Telecom will use to interact with the app.
Nested classes | |
---|---|
class |
PhoneAccount.Builder
Helper class for creating a |
Constants | |
---|---|
int |
CAPABILITY_ADHOC_CONFERENCE_CALLING
An adhoc conference call is established by providing a list of addresses to
|
int |
CAPABILITY_CALL_PROVIDER
Flag indicating that this |
int |
CAPABILITY_CALL_SUBJECT
Flag indicating that this |
int |
CAPABILITY_CONNECTION_MANAGER
Flag indicating that this |
int |
CAPABILITY_PLACE_EMERGENCY_CALLS
Flag indicating that this |
int |
CAPABILITY_RTT
Flag indicating that this |
int |
CAPABILITY_SELF_MANAGED
Flag indicating that this |
int |
CAPABILITY_SIM_SUBSCRIPTION
Flag indicating that this |
int |
CAPABILITY_SUPPORTS_VIDEO_CALLING
Flag indicating that this |
int |
CAPABILITY_VIDEO_CALLING
Flag indicating that this |
int |
CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE
Flag indicating that for this |
String |
EXTRA_CALL_SUBJECT_CHARACTER_ENCODING
|
String |
EXTRA_CALL_SUBJECT_MAX_LENGTH
|
String |
EXTRA_LOG_SELF_MANAGED_CALLS
Boolean |
String |
EXTRA_SUPPORTS_HANDOVER_FROM
Boolean |
String |
EXTRA_SUPPORTS_HANDOVER_TO
Boolean |
int |
NO_HIGHLIGHT_COLOR
Indicating no hightlight color is set. |
int |
NO_RESOURCE_ID
Indicating no resource ID is set. |
String |
SCHEME_SIP
URI scheme for SIP URIs. |
String |
SCHEME_TEL
URI scheme for telephone number URIs. |
String |
SCHEME_VOICEMAIL
URI scheme for voicemail URIs. |
Inherited constants |
---|
Fields | |
---|---|
public
static
final
Creator<PhoneAccount> |
CREATOR
|
Public methods | |
---|---|
static
PhoneAccount.Builder
|
builder(PhoneAccountHandle accountHandle, CharSequence label)
|
int
|
describeContents()
Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
boolean
|
equals(Object o)
Indicates whether some other object is "equal to" this one. |
PhoneAccountHandle
|
getAccountHandle()
The unique identifier of this |
Uri
|
getAddress()
The address (e.g., a phone number) associated with this |
int
|
getCapabilities()
The capabilities of this |
Bundle
|
getExtras()
The extras associated with this |
int
|
getHighlightColor()
A highlight color to use in displaying information about this |
Icon
|
getIcon()
The icon to represent this |
CharSequence
|
getLabel()
A short label describing a |
CharSequence
|
getShortDescription()
A short paragraph describing this |
Uri
|
getSubscriptionAddress()
The raw callback number used for this |
List<String>
|
getSupportedUriSchemes()
The URI schemes supported by this |
boolean
|
hasCapabilities(int capability)
Determines if this |
int
|
hashCode()
Returns a hash code value for the object. |
boolean
|
isEnabled()
Indicates whether the user has enabled this |
boolean
|
supportsUriScheme(String uriScheme)
Determines if the |
PhoneAccount.Builder
|
toBuilder()
Returns a builder initialized with the current |
String
|
toString()
Returns a string representation of the object. |
void
|
writeToParcel(Parcel out, int flags)
Flatten this object in to a Parcel. |
Inherited methods | |
---|---|
public static final int CAPABILITY_ADHOC_CONFERENCE_CALLING
An adhoc conference call is established by providing a list of addresses to
TelecomManager#startConference(List<Uri>, int videoState)
where the
ConnectionService
is responsible for connecting all indicated participants
to a conference simultaneously.
This is in contrast to conferences formed by merging calls together (e.g. using
Call.mergeConference()
).
Constant Value: 16384 (0x00004000)
public static final int CAPABILITY_CALL_PROVIDER
Flag indicating that this PhoneAccount
can make phone calls in place of
traditional SIM-based telephony calls. This account will be treated as a distinct method
for placing calls alongside the traditional SIM-based telephony stack. This flag is
distinct from CAPABILITY_CONNECTION_MANAGER
in that it is not allowed to manage
or place calls from the built-in telephony stack.
Constant Value: 2 (0x00000002)
public static final int CAPABILITY_CALL_SUBJECT
Flag indicating that this PhoneAccount
supports a subject for Calls. This means a
caller is able to specify a short subject line for an outgoing call. A capable receiving
device displays the call subject on the incoming call screen.
Constant Value: 64 (0x00000040)
public static final int CAPABILITY_CONNECTION_MANAGER
Flag indicating that this PhoneAccount
can act as a connection manager for
other connections. The ConnectionService
associated with this PhoneAccount
will be allowed to manage phone calls including using its own proprietary phone-call
implementation (like VoIP calling) to make calls instead of the telephony stack.
When a user opts to place a call using the SIM-based telephony stack, the
ConnectionService
associated with this PhoneAccount
will be attempted first
if the user has explicitly selected it to be used as the default connection manager.
Constant Value: 1 (0x00000001)
public static final int CAPABILITY_PLACE_EMERGENCY_CALLS
Flag indicating that this PhoneAccount
is capable of placing emergency calls.
By default all PSTN PhoneAccount
s are capable of placing emergency calls.
Constant Value: 16 (0x00000010)
public static final int CAPABILITY_RTT
Flag indicating that this PhoneAccount
is capable of making a call with an
RTT (Real-time text) session.
When set, Telecom will attempt to open an RTT session on outgoing calls that specify
that they should be placed with an RTT session , and the in-call app will be displayed
with text entry fields for RTT. Likewise, the in-call app can request that an RTT
session be opened during a call if this bit is set.
Constant Value: 4096 (0x00001000)
public static final int CAPABILITY_SELF_MANAGED
Flag indicating that this PhoneAccount
is responsible for managing its own
Connection
s. This type of PhoneAccount
is ideal for use with standalone
calling apps which do not wish to use the default phone app for Connection
UX,
but which want to leverage the call and audio routing capabilities of the Telecom framework.
When set, Connection
s created by the self-managed ConnectionService
will not
be surfaced to implementations of the InCallService
API. Thus it is the
responsibility of a self-managed ConnectionService
to provide a user interface for
its Connection
s.
Self-managed Connection
s will, however, be displayed on connected Bluetooth devices.
Constant Value: 2048 (0x00000800)
public static final int CAPABILITY_SIM_SUBSCRIPTION
Flag indicating that this PhoneAccount
represents a built-in PSTN SIM
subscription.
Only the Android framework can register a PhoneAccount
having this capability.
Constant Value: 4 (0x00000004)
public static final int CAPABILITY_SUPPORTS_VIDEO_CALLING
Flag indicating that this PhoneAccount
supports video calling.
This is not an indication that the PhoneAccount
is currently able to make a video
call, but rather that it has the ability to make video calls (but not necessarily at this
time).
Whether a PhoneAccount
can make a video call is ultimately controlled by
CAPABILITY_VIDEO_CALLING
, which indicates whether the PhoneAccount
is
currently capable of making a video call. Consider a case where, for example, a
PhoneAccount
supports making video calls (e.g.
CAPABILITY_SUPPORTS_VIDEO_CALLING
), but a current lack of network connectivity
prevents video calls from being made (e.g. CAPABILITY_VIDEO_CALLING
).
Constant Value: 1024 (0x00000400)
public static final int CAPABILITY_VIDEO_CALLING
Flag indicating that this PhoneAccount
is currently able to place video calls.
See also CAPABILITY_SUPPORTS_VIDEO_CALLING
which indicates whether the
PhoneAccount
supports placing video calls.
Constant Value: 8 (0x00000008)
public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE
Flag indicating that for this PhoneAccount
, the ability to make a video call to a
number relies on presence. Should only be set if the PhoneAccount
also has
CAPABILITY_VIDEO_CALLING
.
When set, the ConnectionService
is responsible for toggling the
ContactsContract.DataColumns.CARRIER_PRESENCE_VT_CAPABLE
bit on the
ContactsContract.DataColumns.CARRIER_PRESENCE
column to indicate whether
a contact's phone number supports video calling.
Constant Value: 256 (0x00000100)
public static final String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING
PhoneAccount
extras key (see PhoneAccount#getExtras()
) which determines the
character encoding to be used when determining the length of messages.
The user interface can use this when determining the number of characters the user may type
in a call subject. If empty-string, the call subject message size limit will be enforced on
a 1:1 basis. That is, each character will count towards the messages size limit as a single
character. If a character encoding is specified, the message size limit will be based on the
number of bytes in the message per the specified encoding. See
EXTRA_CALL_SUBJECT_MAX_LENGTH
for more information on the call subject maximum
length.
Constant Value: "android.telecom.extra.CALL_SUBJECT_CHARACTER_ENCODING"
public static final String EXTRA_CALL_SUBJECT_MAX_LENGTH
PhoneAccount
extras key (see PhoneAccount#getExtras()
) which determines the
maximum permitted length of a call subject specified via the
TelecomManager#EXTRA_CALL_SUBJECT
extra on an
Intent.ACTION_CALL
intent. Ultimately a ConnectionService
is
responsible for enforcing the maximum call subject length when sending the message, however
this extra is provided so that the user interface can proactively limit the length of the
call subject as the user types it.
Constant Value: "android.telecom.extra.CALL_SUBJECT_MAX_LENGTH"
public static final String EXTRA_LOG_SELF_MANAGED_CALLS
Boolean PhoneAccount
extras key (see PhoneAccount#getExtras()
) which
indicates whether a Self-Managed PhoneAccount
should log its calls to the call log.
Self-Managed PhoneAccount
s are responsible for their own notifications, so the system
will not create a notification when a missed call is logged.
By default, Self-Managed PhoneAccount
s do not log their calls to the call log.
Setting this extra to true
provides a means for them to log their calls.
Note: Only calls where the Call.Details#getHandle()
Uri#getScheme()
is
SCHEME_SIP
or SCHEME_TEL
will be logged at the current time.
Constant Value: "android.telecom.extra.LOG_SELF_MANAGED_CALLS"
public static final String EXTRA_SUPPORTS_HANDOVER_FROM
Boolean PhoneAccount
extras key (see PhoneAccount#getExtras()
) which
indicates whether this PhoneAccount
is capable of supporting a request to handover a
connection from this PhoneAccount
to another PhoneAccount
.
(see android.telecom.Call#handoverTo()
) which specifies
EXTRA_SUPPORTS_HANDOVER_TO
.
A handover request is initiated by the user from the default dialer app to indicate a desire
to handover a call from one PhoneAccount
/ConnectionService
to another.
Constant Value: "android.telecom.extra.SUPPORTS_HANDOVER_FROM"
public static final String EXTRA_SUPPORTS_HANDOVER_TO
Boolean PhoneAccount
extras key (see PhoneAccount#getExtras()
) which
indicates whether this PhoneAccount
is capable of supporting a request to handover a
connection (see android.telecom.Call#handoverTo()
) to this PhoneAccount
from
a PhoneAccount
specifying EXTRA_SUPPORTS_HANDOVER_FROM
.
A handover request is initiated by the user from the default dialer app to indicate a desire
to handover a call from one PhoneAccount
/ConnectionService
to another.
Constant Value: "android.telecom.extra.SUPPORTS_HANDOVER_TO"
public static final int NO_HIGHLIGHT_COLOR
Indicating no hightlight color is set.
Constant Value: 0 (0x00000000)
public static final int NO_RESOURCE_ID
Indicating no resource ID is set.
Constant Value: -1 (0xffffffff)
public static final String SCHEME_TEL
URI scheme for telephone number URIs.
Constant Value: "tel"
public static final String SCHEME_VOICEMAIL
URI scheme for voicemail URIs.
Constant Value: "voicemail"
public static PhoneAccount.Builder builder (PhoneAccountHandle accountHandle, CharSequence label)
Parameters | |
---|---|
accountHandle |
PhoneAccountHandle |
label |
CharSequence |
Returns | |
---|---|
PhoneAccount.Builder |
public int describeContents ()
Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation. For example, if the object will
include a file descriptor in the output of writeToParcel(android.os.Parcel, int)
,
the return value of this method must include the
CONTENTS_FILE_DESCRIPTOR
bit.
Returns | |
---|---|
int |
a bitmask indicating the set of special object types marshaled
by this Parcelable object instance.
Value is either 0 or CONTENTS_FILE_DESCRIPTOR |
public boolean equals (Object o)
Indicates whether some other object is "equal to" this one.
The equals
method implements an equivalence relation
on non-null object references:
x
, x.equals(x)
should return
true
.
x
and y
, x.equals(y)
should return true
if and only if
y.equals(x)
returns true
.
x
, y
, and z
, if
x.equals(y)
returns true
and
y.equals(z)
returns true
, then
x.equals(z)
should return true
.
x
and y
, multiple invocations of
x.equals(y)
consistently return true
or consistently return false
, provided no
information used in equals
comparisons on the
objects is modified.
x
,
x.equals(null)
should return false
.
The equals
method for class Object
implements
the most discriminating possible equivalence relation on objects;
that is, for any non-null reference values x
and
y
, this method returns true
if and only
if x
and y
refer to the same object
(x == y
has the value true
).
Note that it is generally necessary to override the hashCode
method whenever this method is overridden, so as to maintain the
general contract for the hashCode
method, which states
that equal objects must have equal hash codes.
Parameters | |
---|---|
o |
Object : the reference object with which to compare. |
Returns | |
---|---|
boolean |
true if this object is the same as the obj
argument; false otherwise. |
public PhoneAccountHandle getAccountHandle ()
The unique identifier of this PhoneAccount
.
Returns | |
---|---|
PhoneAccountHandle |
A PhoneAccountHandle . |
public Uri getAddress ()
The address (e.g., a phone number) associated with this PhoneAccount
. This
represents the destination from which outgoing calls using this PhoneAccount
will appear to come, if applicable, and the destination to which incoming calls using this
PhoneAccount
may be addressed.
Returns | |
---|---|
Uri |
A address expressed as a Uri , for example, a phone number. |
public int getCapabilities ()
The capabilities of this PhoneAccount
.
Returns | |
---|---|
int |
A bit field of flags describing this PhoneAccount 's capabilities. |
public Bundle getExtras ()
The extras associated with this PhoneAccount
.
A ConnectionService
may provide implementation specific information about the
PhoneAccount
via the extras.
Returns | |
---|---|
Bundle |
The extras. |
public int getHighlightColor ()
A highlight color to use in displaying information about this PhoneAccount
.
Returns | |
---|---|
int |
A hexadecimal color value. |
public CharSequence getLabel ()
A short label describing a PhoneAccount
.
Returns | |
---|---|
CharSequence |
A label for this PhoneAccount . |
public CharSequence getShortDescription ()
A short paragraph describing this PhoneAccount
.
Returns | |
---|---|
CharSequence |
A description for this PhoneAccount . |
public Uri getSubscriptionAddress ()
The raw callback number used for this PhoneAccount
, as distinct from
getAddress()
. For the majority of PhoneAccount
s this should be registered
as null
. It is used by the system for SIM-based PhoneAccount
registration
where TelephonyManager.setLine1NumberForDisplay(String, String)
has been used to alter the callback number.
Returns | |
---|---|
Uri |
The subscription number, suitable for display to the user. |
public List<String> getSupportedUriSchemes ()
The URI schemes supported by this PhoneAccount
.
Returns | |
---|---|
List<String> |
The URI schemes. |
public boolean hasCapabilities (int capability)
Determines if this PhoneAccount
has a capabilities specified by the passed in
bit mask.
Parameters | |
---|---|
capability |
int : The capabilities to check. |
Returns | |
---|---|
boolean |
true if the phone account has the capability. |
public int hashCode ()
Returns a hash code value for the object. This method is
supported for the benefit of hash tables such as those provided by
HashMap
.
The general contract of hashCode
is:
hashCode
method
must consistently return the same integer, provided no information
used in equals
comparisons on the object is modified.
This integer need not remain consistent from one execution of an
application to another execution of the same application.
equals(Object)
method, then calling the hashCode
method on each of
the two objects must produce the same integer result.
equals(java.lang.Object)
method, then calling the hashCode
method on each of the
two objects must produce distinct integer results. However, the
programmer should be aware that producing distinct integer results
for unequal objects may improve the performance of hash tables.
As much as is reasonably practical, the hashCode method defined by
class Object
does return distinct integers for distinct
objects. (This is typically implemented by converting the internal
address of the object into an integer, but this implementation
technique is not required by the
Java™ programming language.)
Returns | |
---|---|
int |
a hash code value for this object. |
public boolean isEnabled ()
Indicates whether the user has enabled this PhoneAccount
or not. This value is only
populated for PhoneAccount
s returned by TelecomManager#getPhoneAccount
.
Returns | |
---|---|
boolean |
true if the account is enabled by the user, false otherwise. |
public boolean supportsUriScheme (String uriScheme)
Determines if the PhoneAccount
supports calls to/from addresses with a specified URI
scheme.
Parameters | |
---|---|
uriScheme |
String : The URI scheme to check. |
Returns | |
---|---|
boolean |
true if the PhoneAccount supports calls to/from addresses with the
specified URI scheme. |
public PhoneAccount.Builder toBuilder ()
Returns a builder initialized with the current PhoneAccount
instance.
Returns | |
---|---|
PhoneAccount.Builder |
The builder. |
public String toString ()
Returns a string representation of the object. In general, the
toString
method returns a string that
"textually represents" this object. The result should
be a concise but informative representation that is easy for a
person to read.
It is recommended that all subclasses override this method.
The toString
method for class Object
returns a string consisting of the name of the class of which the
object is an instance, the at-sign character `@
', and
the unsigned hexadecimal representation of the hash code of the
object. In other words, this method returns a string equal to the
value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |
public void writeToParcel (Parcel out, int flags)
Flatten this object in to a Parcel.
Parameters | |
---|---|
out |
Parcel : The Parcel in which the object should be written. |
flags |
int : Additional flags about how the object should be written.
May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE .
Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE , and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES |