InCallService
public
abstract
class
InCallService
extends Service
java.lang.Object | ||||
↳ | android.content.Context | |||
↳ | android.content.ContextWrapper | |||
↳ | android.app.Service | |||
↳ | android.telecom.InCallService |
This service is implemented by an app that wishes to provide functionality for managing phone calls.
Becoming the Default Phone App
The default dialer/phone app is one which provides the in-call user interface while the device is in a call. It also provides the user with a means to initiate calls and see a history of calls on their device. A device is bundled with a system provided default dialer/phone app. The user may choose a single app to take over this role from the system app. An app which wishes to fulfill this role uses theRoleManager
to request that they fill the
RoleManager.ROLE_DIALER
role.
The default phone app provides a user interface while the device is in a call, and the device is
not in car mode (i.e. UiModeManager.getCurrentModeType()
is not
Configuration.UI_MODE_TYPE_CAR
).
In order to fill the RoleManager.ROLE_DIALER
role, an app must meet a
number of requirements:
- It must handle the
Intent.ACTION_DIAL
intent. This means the app must provide a dial pad UI for the user to initiate outgoing calls. - It must fully implement the
InCallService
API and provide both an incoming call UI, as well as an ongoing call UI.
Note: If the app filling the RoleManager.ROLE_DIALER
returns a
null
InCallService
during binding, the Telecom framework will automatically fall
back to using the dialer app preloaded on the device. The system will display a notification to
the user to let them know that their call was continued using the preloaded dialer app. Your
app should never return a null
binding; doing so means it does not fulfil the
requirements of RoleManager.ROLE_DIALER
.
Note: If your app fills RoleManager.ROLE_DIALER
and makes changes at
runtime which cause it to no longer fulfil the requirements of this role,
RoleManager
will automatically remove your app from the role and close
your app. For example, if you use
PackageManager.setComponentEnabledSetting(ComponentName, int, int)
to
programmatically disable the InCallService
your app declares in its manifest, your app
will no longer fulfil the requirements expected of
RoleManager.ROLE_DIALER
.
The preloaded dialer will ALWAYS be used when the user places an emergency call, even if your
app fills the RoleManager.ROLE_DIALER
role. To ensure an optimal
experience when placing an emergency call, the default dialer should ALWAYS use
TelecomManager.placeCall(Uri, Bundle)
to place calls (including
emergency calls). This ensures that the platform is able to verify that the request came from
the default dialer. If a non-preloaded dialer app uses Intent.ACTION_CALL
to place an
emergency call, it will be raised to the preloaded dialer app using Intent.ACTION_DIAL
for confirmation; this is a suboptimal user experience.
Below is an example manifest registration for an InCallService
. The meta-data
TelecomManager.METADATA_IN_CALL_SERVICE_UI
indicates that this particular
InCallService
implementation intends to replace the built-in in-call UI.
The meta-data TelecomManager.METADATA_IN_CALL_SERVICE_RINGING
indicates that this
InCallService
will play the ringtone for incoming calls. See
below for more information on showing the incoming call
UI and playing the ringtone in your app.
<service android:name="your.package.YourInCallServiceImplementation"
android:permission="android.permission.BIND_INCALL_SERVICE"
android:exported="true">
<meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" />
<meta-data android:name="android.telecom.IN_CALL_SERVICE_RINGING"
android:value="true" />
<intent-filter>
<action android:name="android.telecom.InCallService"/>
</intent-filter>
</service>
InCallService
with the attribute
android:exported="false"
; doing so can result in a failure to bind to your implementation
during calls.
In addition to implementing the InCallService
API, you must also declare an activity in
your manifest which handles the Intent.ACTION_DIAL
intent. The example below illustrates
how this is done:
<activity android:name="your.package.YourDialerActivity"
android:label="@string/yourDialerActivityLabel">
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
</activity>
When a user installs your application and runs it for the first time, you should use the
RoleManager
to prompt the user to see if they would like your app to
be the new default phone app.
The code below shows how your app can request to become the default phone/dialer app:
private static final int REQUEST_ID = 1;
public void requestRole() {
RoleManager roleManager = (RoleManager) getSystemService(ROLE_SERVICE);
Intent intent = roleManager.createRequestRoleIntent(RoleManager.ROLE_DIALER);
startActivityForResult(intent, REQUEST_ID);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_ID) {
if (resultCode == android.app.Activity.RESULT_OK) {
// Your app is now the default dialer app
} else {
// Your app is not the default dialer app
}
}
}
Access to InCallService for Wearable Devices
-
If your app is a third-party companion app and wants to access InCallService APIs, what your
app could do are:
- Declare MANAGE_ONGOING_CALLS permission in your manifest
- Associate with a physical wearable device via the
CompanionDeviceManager
API as a companion app. See: https://developer.android.com/guide/topics/connectivity/companion-device-pairing - Implement this InCallService with BIND_INCALL_SERVICE permission
Showing the Incoming Call Notification
When your app receives a new incoming call viaInCallService.onCallAdded(Call)
, it is
responsible for displaying an incoming call UI for the incoming call. It should do this using
NotificationManager
APIs to post a new incoming call notification.
Where your app declares the meta-data TelecomManager.METADATA_IN_CALL_SERVICE_RINGING
, it
is responsible for playing the ringtone for incoming calls. Your app should create a
NotificationChannel
which specifies the desired ringtone. For example:
NotificationChannel channel = new NotificationChannel(YOUR_CHANNEL_ID, "Incoming Calls",
NotificationManager.IMPORTANCE_MAX);
// other channel setup stuff goes here.
// We'll use the default system ringtone for our incoming call notification channel. You can
// use your own audio resource here.
Uri ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
channel.setSound(ringtoneUri, new AudioAttributes.Builder()
// Setting the AudioAttributes is important as it identifies the purpose of your
// notification sound.
.setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build());
NotificationManager mgr = getSystemService(NotificationManager.class);
mgr.createNotificationChannel(channel);
When your app receives a new incoming call, it creates a Notification
for the
incoming call and associates it with your incoming call notification channel. You can specify a
PendingIntent
on the notification which will launch your full screen
incoming call UI. The notification manager framework will display your notification as a
heads-up notification if the user is actively using the phone. When the user is not using the
phone, your full-screen incoming call UI is used instead.
For example:
// Create an intent which triggers your fullscreen incoming call user interface.
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClass(context, YourIncomingCallActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intent, PendingIntent.FLAG_MUTABLE_UNAUDITED);
// Build the notification as an ongoing high priority item; this ensures it will show as
// a heads up notification which slides down over top of the current content.
final Notification.Builder builder = new Notification.Builder(context);
builder.setOngoing(true);
builder.setPriority(Notification.PRIORITY_HIGH);
// Set notification content intent to take user to the fullscreen UI if user taps on the
// notification body.
builder.setContentIntent(pendingIntent);
// Set full screen intent to trigger display of the fullscreen UI when the notification
// manager deems it appropriate.
builder.setFullScreenIntent(pendingIntent, true);
// Setup notification content.
builder.setSmallIcon( yourIconResourceId );
builder.setContentTitle("Your notification title");
builder.setContentText("Your notification content.");
// Use builder.addAction(..) to add buttons to answer or reject the call.
NotificationManager notificationManager = mContext.getSystemService(
NotificationManager.class);
notificationManager.notify(YOUR_CHANNEL_ID, YOUR_TAG, YOUR_ID, builder.build());
Summary
Nested classes
class
InCallService.VideoCall
Used to issue commands to the Connection.VideoProvider
associated with a
Call
.
Constants
String
SERVICE_INTERFACE
The Intent
that must be declared as handled by the service.
Inherited constants
int
START_CONTINUATION_MASK
Bits returned by onStartCommand(Intent, int, int)
describing how to continue
the service if it is killed.
int
START_FLAG_REDELIVERY
This flag is set in onStartCommand(Intent, int, int)
if the Intent is a
re-delivery of a previously delivered intent, because the service
had previously returned START_REDELIVER_INTENT
but had been
killed before calling stopSelf(int)
for that Intent.
int
START_FLAG_RETRY
This flag is set in onStartCommand(Intent, int, int)
if the Intent is a
retry because the original attempt never got to or returned from
onStartCommand(android.content.Intent, int, int)
.
int
START_NOT_STICKY
Constant to return from onStartCommand(Intent, int, int)
: if this service's
process is killed while it is started (after returning from
onStartCommand(Intent, int, int)
), and there are no new start intents to
deliver to it, then take the service out of the started state and
don't recreate until a future explicit call to
Context.startService(Intent)
.
int
START_REDELIVER_INTENT
Constant to return from onStartCommand(Intent, int, int)
: if this service's
process is killed while it is started (after returning from
onStartCommand(Intent, int, int)
), then it will be scheduled for a restart
and the last delivered Intent re-delivered to it again via
onStartCommand(Intent, int, int)
.
int
START_STICKY
Constant to return from onStartCommand(Intent, int, int)
: if this service's
process is killed while it is started (after returning from
onStartCommand(Intent, int, int)
), then leave it in the started state but
don't retain this delivered intent.
int
START_STICKY_COMPATIBILITY
Constant to return from onStartCommand(Intent, int, int)
: compatibility
version of START_STICKY
that does not guarantee that
onStartCommand(Intent, int, int)
will be called again after being killed.
int
STOP_FOREGROUND_DETACH
Selector for stopForeground(int)
: if set, the notification previously supplied
to startForeground(int, Notification)
will be detached from the service's lifecycle.
int
STOP_FOREGROUND_LEGACY
This constant was deprecated
in API level 33.
Use STOP_FOREGROUND_DETACH
instead. The legacy
behavior was inconsistent, leading to bugs around unpredictable results.
int
STOP_FOREGROUND_REMOVE
Selector for stopForeground(int)
: if supplied, the notification previously
supplied to startForeground(int, Notification)
will be cancelled and removed from display.
String
ACCESSIBILITY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
AccessibilityManager
for giving the user
feedback for UI events through the registered event listeners.
String
ACCOUNT_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
AccountManager
for receiving intents at a
time of your choosing.
String
ACTIVITY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
ActivityManager
for interacting with the global
system state.
String
ADVANCED_PROTECTION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve an
AdvancedProtectionManager
String
ALARM_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
AlarmManager
for receiving intents at a
time of your choosing.
String
APPWIDGET_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
AppWidgetManager
for accessing AppWidgets.
String
APP_FUNCTION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve an
AppFunctionManager
for
executing app functions.
String
APP_OPS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
AppOpsManager
for tracking application operations
on the device.
String
APP_SEARCH_SERVICE
Use with getSystemService(java.lang.String)
to retrieve an
AppSearchManager
for
indexing and querying app data managed by the system.
String
AUDIO_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
AudioManager
for handling management of volume,
ringer modes and audio routing.
String
BATTERY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
BatteryManager
for managing battery state.
int
BIND_ABOVE_CLIENT
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: indicates that the client application
binding to this service considers the service to be more important than
the app itself.
int
BIND_ADJUST_WITH_ACTIVITY
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: If binding from an activity, allow the
target service's process importance to be raised based on whether the
activity is visible to the user, regardless whether another flag is
used to reduce the amount that the client process's overall importance
is used to impact it.
int
BIND_ALLOW_ACTIVITY_STARTS
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: If binding from an app that is visible, the bound service is
allowed to start an activity from background.
int
BIND_ALLOW_OOM_MANAGEMENT
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: allow the process hosting the bound
service to go through its normal memory management.
int
BIND_AUTO_CREATE
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: automatically create the service as long
as the binding exists.
int
BIND_DEBUG_UNBIND
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: include debugging help for mismatched
calls to unbind.
int
BIND_EXTERNAL_SERVICE
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: The service being bound is an
isolated
,
external
service.
long
BIND_EXTERNAL_SERVICE_LONG
Works in the same way as BIND_EXTERNAL_SERVICE
, but it's defined as a long
value that is compatible to BindServiceFlags
.
int
BIND_IMPORTANT
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: this service is very important to
the client, so should be brought to the foreground process level
when the client is.
int
BIND_INCLUDE_CAPABILITIES
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: If binding from an app that has specific capabilities
due to its foreground state such as an activity or foreground service, then this flag will
allow the bound app to get the same capabilities, as long as it has the required permissions
as well.
int
BIND_NOT_FOREGROUND
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: don't allow this binding to raise
the target service's process to the foreground scheduling priority.
int
BIND_NOT_PERCEPTIBLE
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: If binding from an app that is visible or user-perceptible,
lower the target service's importance to below the perceptible level.
int
BIND_PACKAGE_ISOLATED_PROCESS
Flag for bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection)
: Bind the service into a shared isolated process,
but only with other isolated services from the same package that declare the same process
name.
int
BIND_SHARED_ISOLATED_PROCESS
Flag for bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection)
: Bind the service into a shared isolated process.
int
BIND_WAIVE_PRIORITY
Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
: don't impact the scheduling or
memory management priority of the target service's hosting process.
String
BIOMETRIC_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
BiometricManager
for handling
biometric and PIN/pattern/password authentication.
String
BLOB_STORE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a BlobStoreManager
for contributing and accessing data blobs
from the blob store maintained by the system.
String
BLUETOOTH_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
BluetoothManager
for using Bluetooth.
String
BUGREPORT_SERVICE
Service to capture a bugreport.
String
CAMERA_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
CameraManager
for interacting with
camera devices.
String
CAPTIONING_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
CaptioningManager
for obtaining
captioning properties and listening for changes in captioning
preferences.
String
CARRIER_CONFIG_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
CarrierConfigManager
for reading carrier configuration values.
String
CLIPBOARD_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
ClipboardManager
for accessing and modifying
the contents of the global clipboard.
String
COMPANION_DEVICE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
CompanionDeviceManager
for managing companion devices
String
CONNECTIVITY_DIAGNOSTICS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a ConnectivityDiagnosticsManager
for performing network connectivity diagnostics
as well as receiving network connectivity information from the system.
String
CONNECTIVITY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a ConnectivityManager
for handling management of
network connections.
String
CONSUMER_IR_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
ConsumerIrManager
for transmitting infrared
signals from the device.
String
CONTACT_KEYS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
E2eeContactKeysManager
to managing contact keys.
int
CONTEXT_IGNORE_SECURITY
Flag for use with createPackageContext(String, int)
: ignore any security
restrictions on the Context being requested, allowing it to always
be loaded.
int
CONTEXT_INCLUDE_CODE
Flag for use with createPackageContext(String, int)
: include the application
code with the context.
int
CONTEXT_RESTRICTED
Flag for use with createPackageContext(String, int)
: a restricted context may
disable specific features.
String
CREDENTIAL_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
CredentialManager
to authenticate a user to your app.
String
CROSS_PROFILE_APPS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
CrossProfileApps
for cross profile operations.
int
DEVICE_ID_DEFAULT
The default device ID, which is the ID of the primary (non-virtual) device.
int
DEVICE_ID_INVALID
Invalid device ID.
String
DEVICE_LOCK_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
DeviceLockManager
.
String
DEVICE_POLICY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
DevicePolicyManager
for working with global
device policy management.
String
DISPLAY_HASH_SERVICE
Use with getSystemService(java.lang.String)
to access
DisplayHashManager
to handle display hashes.
String
DISPLAY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
DisplayManager
for interacting with display devices.
String
DOMAIN_VERIFICATION_SERVICE
Use with getSystemService(java.lang.String)
to access
DomainVerificationManager
to retrieve approval and
user state for declared web domains.
String
DOWNLOAD_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
DownloadManager
for requesting HTTP downloads.
String
DROPBOX_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
DropBoxManager
instance for recording
diagnostic logs.
String
EUICC_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
EuiccManager
to manage the device eUICC (embedded SIM).
String
FILE_INTEGRITY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve an
FileIntegrityManager
.
String
FINGERPRINT_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
FingerprintManager
for handling management
of fingerprints.
String
GAME_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
GameManager
.
String
GRAMMATICAL_INFLECTION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
GrammaticalInflectionManager
.
String
HARDWARE_PROPERTIES_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
HardwarePropertiesManager
for accessing the hardware properties service.
String
HEALTHCONNECT_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
HealthConnectManager
.
String
INPUT_METHOD_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
InputMethodManager
for accessing input
methods.
String
INPUT_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
InputManager
for interacting with input devices.
String
IPSEC_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
IpSecManager
for encrypting Sockets or Networks with
IPSec.
String
JOB_SCHEDULER_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a JobScheduler
instance for managing occasional
background tasks.
String
KEYGUARD_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
KeyguardManager
for controlling keyguard.
String
KEYSTORE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a KeyStoreManager
for accessing
Android Keystore
functions.
String
LAUNCHER_APPS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
LauncherApps
for querying and monitoring launchable apps across
profiles of a user.
String
LAYOUT_INFLATER_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
LayoutInflater
for inflating layout resources in this
context.
String
LOCALE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
LocaleManager
.
String
LOCATION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a LocationManager
for controlling location
updates.
String
MEDIA_COMMUNICATION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
MediaCommunicationManager
for managing MediaSession2
.
String
MEDIA_METRICS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
MediaMetricsManager
for interacting with media metrics
on the device.
String
MEDIA_PROJECTION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a MediaProjectionManager
instance for managing
media projection sessions.
String
MEDIA_QUALITY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
ERROR(/android.media.quality.MediaQuality)
for standardize picture and audio
API parameters.
String
MEDIA_ROUTER_SERVICE
Use with getSystemService(Class)
to retrieve a
MediaRouter
for controlling and managing
routing of media.
String
MEDIA_SESSION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
MediaSessionManager
for managing media Sessions.
String
MIDI_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
MidiManager
for accessing the MIDI service.
int
MODE_APPEND
File creation mode: for use with openFileOutput(String, int)
, if the file
already exists then write data to the end of the existing file
instead of erasing it.
int
MODE_ENABLE_WRITE_AHEAD_LOGGING
Database open flag: when set, the database is opened with write-ahead
logging enabled by default.
int
MODE_MULTI_PROCESS
This constant was deprecated
in API level 23.
MODE_MULTI_PROCESS does not work reliably in
some versions of Android, and furthermore does not provide any
mechanism for reconciling concurrent modifications across
processes. Applications should not attempt to use it. Instead,
they should use an explicit cross-process data management
approach such as ContentProvider
.
int
MODE_NO_LOCALIZED_COLLATORS
Database open flag: when set, the database is opened without support for
localized collators.
int
MODE_PRIVATE
File creation mode: the default mode, where the created file can only
be accessed by the calling application (or all applications sharing the
same user ID).
int
MODE_WORLD_READABLE
This constant was deprecated
in API level 17.
Creating world-readable files is very dangerous, and likely
to cause security holes in applications. It is strongly
discouraged; instead, applications should use more formal
mechanism for interactions such as ContentProvider
,
BroadcastReceiver
, and Service
.
There are no guarantees that this access mode will remain on
a file, such as when it goes through a backup and restore.
int
MODE_WORLD_WRITEABLE
This constant was deprecated
in API level 17.
Creating world-writable files is very dangerous, and likely
to cause security holes in applications. It is strongly
discouraged; instead, applications should use more formal
mechanism for interactions such as ContentProvider
,
BroadcastReceiver
, and Service
.
There are no guarantees that this access mode will remain on
a file, such as when it goes through a backup and restore.
String
NETWORK_STATS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a NetworkStatsManager
for querying network usage stats.
String
NFC_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
NfcManager
for using NFC.
String
NOTIFICATION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
NotificationManager
for informing the user of
background events.
String
NSD_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a NsdManager
for handling management of network service
discovery
String
OVERLAY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a OverlayManager
for managing overlay packages.
String
PEOPLE_SERVICE
Use with getSystemService(java.lang.String)
to access a PeopleManager
to interact
with your published conversations.
String
PERFORMANCE_HINT_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
PerformanceHintManager
for accessing the performance hinting service.
String
PERSISTENT_DATA_BLOCK_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a PersistentDataBlockManager
instance
for interacting with a storage device that lives across factory resets.
String
POWER_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
PowerManager
for controlling power management,
including "wake locks," which let you keep the device on while
you're running long tasks.
String
PRINT_SERVICE
PrintManager
for printing and managing
printers and print tasks.
String
PROFILING_SERVICE
Use with getSystemService(java.lang.String)
to retrieve an
ProfilingManager
.
int
RECEIVER_EXPORTED
Flag for registerReceiver(BroadcastReceiver, IntentFilter)
: The receiver can receive broadcasts from other Apps.
int
RECEIVER_NOT_EXPORTED
Flag for registerReceiver(BroadcastReceiver, IntentFilter)
: The receiver cannot receive broadcasts from other Apps.
int
RECEIVER_VISIBLE_TO_INSTANT_APPS
Flag for registerReceiver(BroadcastReceiver, IntentFilter)
: The receiver can receive broadcasts from Instant Apps.
String
RESTRICTIONS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
RestrictionsManager
for retrieving application restrictions
and requesting permissions for restricted operations.
String
ROLE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a RoleManager
for managing roles.
String
SATELLITE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
SatelliteManager
for accessing satellite functionality.
String
SEARCH_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a SearchManager
for handling searches.
String
SECURITY_STATE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
SecurityStateManager
for accessing the security state manager service.
String
SENSOR_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a SensorManager
for accessing sensors.
String
SHORTCUT_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
ShortcutManager
for accessing the launcher shortcut service.
String
STATUS_BAR_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a StatusBarManager
for interacting with the status bar and quick settings.
String
STORAGE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a StorageManager
for accessing system storage
functions.
String
STORAGE_STATS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a StorageStatsManager
for accessing system storage
statistics.
String
SYSTEM_HEALTH_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
SystemHealthManager
for accessing system health (battery, power,
memory, etc) metrics.
String
TELECOM_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
TelecomManager
to manage telecom-related features
of the device.
String
TELEPHONY_IMS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve an
ImsManager
.
String
TELEPHONY_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
TelephonyManager
for handling management the
telephony features of the device.
String
TELEPHONY_SUBSCRIPTION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
SubscriptionManager
for handling management the
telephony subscriptions of the device.
String
TEXT_CLASSIFICATION_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
TextClassificationManager
for text classification services.
String
TEXT_SERVICES_MANAGER_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
TextServicesManager
for accessing
text services.
String
TV_AD_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
TvAdManager
for interacting with TV client-side advertisement
services on the device.
String
TV_INPUT_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
TvInputManager
for interacting with TV inputs
on the device.
String
TV_INTERACTIVE_APP_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
TvInteractiveAppManager
for interacting with TV
interactive applications on the device.
String
UI_MODE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
UiModeManager
for controlling UI modes.
String
USAGE_STATS_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a UsageStatsManager
for querying device usage stats.
String
USB_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a UsbManager
for access to USB devices (as a USB host)
and for controlling this device's behavior as a USB device.
String
USER_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
UserManager
for managing users on devices that support multiple users.
String
VIBRATOR_MANAGER_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a VibratorManager
for accessing the device vibrators, interacting with individual ones and playing synchronized
effects on multiple vibrators.
String
VIBRATOR_SERVICE
This constant was deprecated
in API level 31.
Use VibratorManager
to retrieve the default system vibrator.
String
VIRTUAL_DEVICE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
VirtualDeviceManager
for managing virtual devices.
String
VPN_MANAGEMENT_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a VpnManager
to
manage profiles for the platform built-in VPN.
String
WALLPAPER_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
com.android.server.WallpaperService for accessing wallpapers.
String
WIFI_AWARE_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
WifiAwareManager
for handling management of
Wi-Fi Aware.
String
WIFI_P2P_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a WifiP2pManager
for handling management of
Wi-Fi peer-to-peer connections.
String
WIFI_RTT_RANGING_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a WifiRttManager
for ranging devices with wifi.
String
WIFI_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a WifiManager
for handling management of
Wi-Fi access.
String
WINDOW_SERVICE
Use with getSystemService(java.lang.String)
to retrieve a
WindowManager
for accessing the system's window
manager.
int
TRIM_MEMORY_BACKGROUND
Level for onTrimMemory(int)
: the process has gone on to the
LRU list.
int
TRIM_MEMORY_COMPLETE
This constant was deprecated
in API level 35.
Apps are not notified of this level since API level 34
int
TRIM_MEMORY_MODERATE
This constant was deprecated
in API level 35.
Apps are not notified of this level since API level 34
int
TRIM_MEMORY_RUNNING_CRITICAL
This constant was deprecated
in API level 35.
Apps are not notified of this level since API level 34
int
TRIM_MEMORY_RUNNING_LOW
This constant was deprecated
in API level 35.
Apps are not notified of this level since API level 34
int
TRIM_MEMORY_RUNNING_MODERATE
This constant was deprecated
in API level 35.
Apps are not notified of this level since API level 34
int
TRIM_MEMORY_UI_HIDDEN
Level for onTrimMemory(int)
: the process had been showing
a user interface, and is no longer doing so.
Public constructors
InCallService()
Public methods
final
boolean
canAddCall()
Returns if the device can support additional calls.
final
CallAudioState
getCallAudioState()
This method was deprecated
in API level 34.
Use getCurrentCallEndpoint()
,
onAvailableCallEndpointsChanged(java.util.List)
and
onMuteStateChanged(boolean)
instead.
final
List<Call>
getCalls()
Obtains the current list of Call
s to be displayed by this in-call service.
final
CallEndpoint
getCurrentCallEndpoint()
Obtains the current CallEndpoint.
void
onAvailableCallEndpointsChanged(List<CallEndpoint> availableEndpoints)
Called when the available CallEndpoint changes.
IBinder
onBind(Intent intent)
Return the communication channel to the service.
void
onBringToForeground(boolean showDialpad)
Called to bring the in-call screen to the foreground.
void
onCallAdded(Call call)
Called when a Call
has been added to this in-call session.
void
onCallAudioStateChanged(CallAudioState audioState)
This method was deprecated
in API level 34.
Use onCallEndpointChanged(android.telecom.CallEndpoint)
,
onAvailableCallEndpointsChanged(java.util.List)
and
onMuteStateChanged(boolean)
instead.
void
onCallEndpointChanged(CallEndpoint callEndpoint)
Called when the current CallEndpoint changes.
void
onCallRemoved(Call call)
Called when a Call
has been removed from this in-call session.
void
onCanAddCallChanged(boolean canAddCall)
Called when the ability to add more calls changes.
void
onConnectionEvent(Call call, String event, Bundle extras)
Unused; to handle connection events issued by a ConnectionService
, implement the
Call.Callback.onConnectionEvent(Call, String, Bundle)
callback.
void
onMuteStateChanged(boolean isMuted)
Called when the mute state changes.
void
onSilenceRinger()
Called to silence the ringer if a ringing call exists.
boolean
onUnbind(Intent intent)
Called when all clients have disconnected from a particular interface
published by the service.
final
void
requestBluetoothAudio(BluetoothDevice bluetoothDevice)
This method was deprecated
in API level 34.
Use requestCallEndpointChange(android.telecom.CallEndpoint, java.util.concurrent.Executor, android.os.OutcomeReceiver)
instead.
final
void
requestCallEndpointChange(CallEndpoint endpoint, Executor executor, OutcomeReceiver<Void, CallEndpointException> callback)
Request audio routing to a specific CallEndpoint.
final
void
setAudioRoute(int route)
This method was deprecated
in API level 34.
Use requestCallEndpointChange(android.telecom.CallEndpoint, java.util.concurrent.Executor, android.os.OutcomeReceiver)
instead.
final
void
setMuted(boolean state)
Sets the microphone mute state.
Inherited methods
void
attachBaseContext(Context newBase)
Set the base context for this ContextWrapper.
void
dump(FileDescriptor fd, PrintWriter writer, String[] args)
Print the Service's state into the given stream.
final
Application
getApplication()
Return the application that owns this service.
final
int
getForegroundServiceType()
If the service has become a foreground service by calling
startForeground(int, android.app.Notification)
or startForeground(int, android.app.Notification, int)
, getForegroundServiceType()
returns the current foreground service type.
abstract
IBinder
onBind(Intent intent)
Return the communication channel to the service.
void
onConfigurationChanged(Configuration newConfig)
Called by the system when the device configuration changes while your
component is running.
void
onCreate()
Called by the system when the service is first created.
void
onDestroy()
Called by the system to notify a Service that it is no longer used and is being removed.
void
onLowMemory()
This is called when the overall system is running low on memory, and
actively running processes should trim their memory usage.
void
onRebind(Intent intent)
Called when new clients have connected to the service, after it had
previously been notified that all had disconnected in its
onUnbind(Intent)
.
void
onStart(Intent intent, int startId)
This method was deprecated
in API level 15.
Implement onStartCommand(android.content.Intent, int, int)
instead.
int
onStartCommand(Intent intent, int flags, int startId)
Called by the system every time a client explicitly starts the service by calling
Context.startService(Intent)
, providing the arguments it supplied and a
unique integer token representing the start request.
void
onTaskRemoved(Intent rootIntent)
This is called if the service is currently running and the user has
removed a task that comes from the service's application.
void
onTimeout(int startId, int fgsType)
Callback called when a particular foreground service type has timed out.
void
onTimeout(int startId)
Callback called on timeout for ServiceInfo.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE
.
void
onTrimMemory(int level)
Called when the operating system has determined that it is a good
time for a process to trim unneeded memory from its process.
boolean
onUnbind(Intent intent)
Called when all clients have disconnected from a particular interface
published by the service.
final
void
startForeground(int id, Notification notification)
If your service is started (running through Context.startService(Intent)
), then
also make this service run in the foreground, supplying the ongoing
notification to be shown to the user while in this state.
final
void
startForeground(int id, Notification notification, int foregroundServiceType)
An overloaded version of startForeground(int, android.app.Notification)
with additional
foregroundServiceType parameter.
final
void
stopForeground(int notificationBehavior)
Remove this service from foreground state, allowing it to be killed if
more memory is needed.
final
void
stopForeground(boolean removeNotification)
This method was deprecated
in API level 33.
call stopForeground(int)
and pass either
STOP_FOREGROUND_REMOVE
or STOP_FOREGROUND_DETACH
explicitly instead.
final
void
stopSelf()
Stop the service, if it was previously started.
final
void
stopSelf(int startId)
Old version of stopSelfResult(int)
that doesn't return a result.
final
boolean
stopSelfResult(int startId)
Stop the service if the most recent time it was started was
startId.
void
attachBaseContext(Context base)
Set the base context for this ContextWrapper.
boolean
bindIsolatedService(Intent service, int flags, String instanceName, Executor executor, ServiceConnection conn)
Variation of bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
that, in the specific case of isolated
services, allows the caller to generate multiple instances of a service
from a single component declaration.
boolean
bindService(Intent service, int flags, Executor executor, ServiceConnection conn)
Same as bindService(Intent, ServiceConnection, int)
with executor to control ServiceConnection
callbacks.
boolean
bindService(Intent service, ServiceConnection conn, Context.BindServiceFlags flags)
See bindService(android.content.Intent, android.content.ServiceConnection, int)
Call BindServiceFlags.of(long)
to obtain a BindServiceFlags object.
boolean
bindService(Intent service, ServiceConnection conn, int flags)
Connects to an application service, creating it if needed.
boolean
bindService(Intent service, Context.BindServiceFlags flags, Executor executor, ServiceConnection conn)
See bindService(android.content.Intent, int, java.util.concurrent.Executor, android.content.ServiceConnection)
Call BindServiceFlags.of(long)
to obtain a BindServiceFlags object.
int
checkCallingOrSelfPermission(String permission)
Determine whether the calling process of an IPC or you have been
granted a particular permission.
int
checkCallingOrSelfUriPermission(Uri uri, int modeFlags)
Determine whether the calling process of an IPC or you has been granted
permission to access a specific URI.
int[]
checkCallingOrSelfUriPermissions(List<Uri> uris, int modeFlags)
Determine whether the calling process of an IPC or you has been granted
permission to access a list of URIs.
int
checkCallingPermission(String permission)
Determine whether the calling process of an IPC you are handling has been
granted a particular permission.
int
checkCallingUriPermission(Uri uri, int modeFlags)
Determine whether the calling process and uid has been
granted permission to access a specific URI.
int[]
checkCallingUriPermissions(List<Uri> uris, int modeFlags)
Determine whether the calling process and uid has been
granted permission to access a list of URIs.
int
checkContentUriPermissionFull(Uri uri, int pid, int uid, int modeFlags)
Determine whether a particular process and uid has been granted
permission to access a specific content URI.
int
checkPermission(String permission, int pid, int uid)
Determine whether the given permission is allowed for a particular
process and user ID running in the system.
int
checkSelfPermission(String permission)
Determine whether you have been granted a particular permission.
int
checkUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags)
Check both a Uri and normal permission.
int
checkUriPermission(Uri uri, int pid, int uid, int modeFlags)
Determine whether a particular process and uid has been granted
permission to access a specific URI.
int[]
checkUriPermissions(List<Uri> uris, int pid, int uid, int modeFlags)
Determine whether a particular process and uid has been granted
permission to access a list of URIs.
void
clearWallpaper()
This method is deprecated.
Use WallpaperManager.clear()
instead.
This method requires the caller to hold the permission
Manifest.permission.SET_WALLPAPER
.
Context
createAttributionContext(String attributionTag)
Return a new Context object for the current Context but attribute to a different tag.
Context
createConfigurationContext(Configuration overrideConfiguration)
Return a new Context object for the current Context but whose resources
are adjusted to match the given Configuration.
Context
createContext(ContextParams contextParams)
Creates a context with specific properties and behaviors.
Context
createDeviceContext(int deviceId)
Returns a new Context
object from the current context but with device association
given by the deviceId
.
Context
createDeviceProtectedStorageContext()
Return a new Context object for the current Context but whose storage
APIs are backed by device-protected storage.
Context
createDisplayContext(Display display)
Returns a new Context
object from the current context but with resources
adjusted to match the metrics of display
.
Context
createPackageContext(String packageName, int flags)
Return a new Context object for the given application name.
Context
createWindowContext(int type, Bundle options)
Creates a Context for a non-activity window.
Context
createWindowContext(Display display, int type, Bundle options)
Creates a Context
for a non-activity
window on the given
Display
.
String[]
databaseList()
Returns an array of strings naming the private databases associated with
this Context's application package.
boolean
deleteDatabase(String name)
Delete an existing private SQLiteDatabase associated with this Context's
application package.
boolean
deleteFile(String name)
Delete the given private file associated with this Context's
application package.
boolean
deleteSharedPreferences(String name)
Delete an existing shared preferences file.
void
enforceCallingOrSelfPermission(String permission, String message)
If neither you nor the calling process of an IPC you are
handling has been granted a particular permission, throw a
SecurityException
.
void
enforceCallingOrSelfUriPermission(Uri uri, int modeFlags, String message)
If the calling process of an IPC or you has not been
granted permission to access a specific URI, throw SecurityException
.
void
enforceCallingPermission(String permission, String message)
If the calling process of an IPC you are handling has not been
granted a particular permission, throw a SecurityException
.
void
enforceCallingUriPermission(Uri uri, int modeFlags, String message)
If the calling process and uid has not been granted
permission to access a specific URI, throw SecurityException
.
void
enforcePermission(String permission, int pid, int uid, String message)
If the given permission is not allowed for a particular process
and user ID running in the system, throw a SecurityException
.
void
enforceUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags, String message)
Enforce both a Uri and normal permission.
void
enforceUriPermission(Uri uri, int pid, int uid, int modeFlags, String message)
If a particular process and uid has not been granted
permission to access a specific URI, throw SecurityException
.
String[]
fileList()
Returns an array of strings naming the private files associated with
this Context's application package.
Context
getApplicationContext()
Return the context of the single, global Application object of the
current process.
ApplicationInfo
getApplicationInfo()
Return the full application info for this context's package.
AssetManager
getAssets()
Returns an AssetManager instance for the application's package.
AttributionSource
getAttributionSource()
Context
getBaseContext()
File
getCacheDir()
Returns the absolute path to the application specific cache directory on
the filesystem.
ClassLoader
getClassLoader()
Return a class loader you can use to retrieve classes in this package.
File
getCodeCacheDir()
Returns the absolute path to the application specific cache directory on
the filesystem designed for storing cached code.
ContentResolver
getContentResolver()
Return a ContentResolver instance for your application's package.
File
getDataDir()
Returns the absolute path to the directory on the filesystem where all
private files belonging to this app are stored.
File
getDatabasePath(String name)
Returns the absolute path on the filesystem where a database created with
openOrCreateDatabase(String, int, CursorFactory)
is stored.
int
getDeviceId()
Gets the device ID this context is associated with.
File
getDir(String name, int mode)
Retrieve, creating if needed, a new directory in which the application
can place its own custom data files.
Display
getDisplay()
Get the display this context is associated with.
File
getExternalCacheDir()
Returns absolute path to application-specific directory on the primary
shared/external storage device where the application can place cache
files it owns.
File[]
getExternalCacheDirs()
Returns absolute paths to application-specific directories on all
shared/external storage devices where the application can place cache
files it owns.
File
getExternalFilesDir(String type)
Returns the absolute path to the directory on the primary shared/external
storage device where the application can place persistent files it owns.
File[]
getExternalFilesDirs(String type)
Returns absolute paths to application-specific directories on all
shared/external storage devices where the application can place
persistent files it owns.
File[]
getExternalMediaDirs()
This method is deprecated.
These directories still exist and are scanned, but developers
are encouraged to migrate to inserting content into a
MediaStore
collection directly, as any app can
contribute new media to MediaStore
with no
permissions required, starting in
Build.VERSION_CODES.Q
.
File
getFileStreamPath(String name)
Returns the absolute path on the filesystem where a file created with
openFileOutput(String, int)
is stored.
File
getFilesDir()
Returns the absolute path to the directory on the filesystem where files
created with openFileOutput(String, int)
are stored.
Executor
getMainExecutor()
Return an Executor
that will run enqueued tasks on the main
thread associated with this context.
Looper
getMainLooper()
Return the Looper for the main thread of the current process.
File
getNoBackupFilesDir()
Returns the absolute path to the directory on the filesystem similar to
getFilesDir()
.
File
getObbDir()
Return the primary shared/external storage directory where this
application's OBB files (if there are any) can be found.
File[]
getObbDirs()
Returns absolute paths to application-specific directories on all
shared/external storage devices where the application's OBB files (if
there are any) can be found.
String
getPackageCodePath()
Return the full path to this context's primary Android package.
PackageManager
getPackageManager()
Return PackageManager instance to find global package information.
String
getPackageName()
Return the name of this application's package.
String
getPackageResourcePath()
Return the full path to this context's primary Android package.
ContextParams
getParams()
Return the set of parameters which this Context was created with, if it
was created via createContext(android.content.ContextParams)
.
Resources
getResources()
Returns a Resources instance for the application's package.
SharedPreferences
getSharedPreferences(String name, int mode)
Retrieve and hold the contents of the preferences file 'name', returning
a SharedPreferences through which you can retrieve and modify its
values.
Object
getSystemService(String name)
Return the handle to a system-level service by name.
String
getSystemServiceName(Class<?> serviceClass)
Gets the name of the system-level service that is represented by the specified class.
Resources.Theme
getTheme()
Return the Theme object associated with this Context.
Drawable
getWallpaper()
This method is deprecated.
Use WallpaperManager.get()
instead.
int
getWallpaperDesiredMinimumHeight()
This method is deprecated.
Use WallpaperManager.getDesiredMinimumHeight()
instead.
int
getWallpaperDesiredMinimumWidth()
This method is deprecated.
Use WallpaperManager.getDesiredMinimumWidth()
instead.
void
grantUriPermission(String toPackage, Uri uri, int modeFlags)
Grant permission to access a specific Uri to another package, regardless
of whether that package has general permission to access the Uri's
content provider.
boolean
isDeviceProtectedStorage()
Indicates if the storage APIs of this Context are backed by
device-protected storage.
boolean
isRestricted()
Indicates whether this Context is restricted.
boolean
moveDatabaseFrom(Context sourceContext, String name)
Move an existing database file from the given source storage context to
this context.
boolean
moveSharedPreferencesFrom(Context sourceContext, String name)
Move an existing shared preferences file from the given source storage
context to this context.
FileInputStream
openFileInput(String name)
Open a private file associated with this Context's application package
for reading.
FileOutputStream
openFileOutput(String name, int mode)
Open a private file associated with this Context's application package
for writing.
SQLiteDatabase
openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler)
Open a new private SQLiteDatabase associated with this Context's
application package.
SQLiteDatabase
openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory)
Open a new private SQLiteDatabase associated with this Context's
application package.
Drawable
peekWallpaper()
This method is deprecated.
Use WallpaperManager.peek()
instead.
void
registerComponentCallbacks(ComponentCallbacks callback)
Add a new ComponentCallbacks
to the base application of the
Context, which will be called at the same times as the ComponentCallbacks
methods of activities and other components are called.
void
registerDeviceIdChangeListener(Executor executor, IntConsumer listener)
Adds a new device ID changed listener to the Context
, which will be called when
the device association is changed by the system.
Intent
registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
Register a BroadcastReceiver to be run in the main activity thread.
Intent
registerReceiver(BroadcastReceiver receiver, IntentFilter filter, int flags)
Register to receive intent broadcasts, with the receiver optionally being
exposed to Instant Apps.
Intent
registerReceiver(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler, int flags)
Register to receive intent broadcasts, to run in the context of
scheduler.
Intent
registerReceiver(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler)
Register to receive intent broadcasts, to run in the context of
scheduler.
void
removeStickyBroadcast(Intent intent)
This method is deprecated.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
void
removeStickyBroadcastAsUser(Intent intent, UserHandle user)
This method is deprecated.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
void
revokeSelfPermissionsOnKill(Collection<String> permissions)
Triggers the revocation of one or more permissions for the calling package.
void
revokeUriPermission(Uri uri, int modeFlags)
Remove all permissions to access a particular content provider Uri
that were previously added with grantUriPermission(String, Uri, int)
or any other mechanism.
void
revokeUriPermission(String targetPackage, Uri uri, int modeFlags)
Remove permissions to access a particular content provider Uri
that were previously added with grantUriPermission(String, Uri, int)
for a specific target
package.
void
sendBroadcast(Intent intent, String receiverPermission, Bundle options)
Broadcast the given intent to all interested BroadcastReceivers, allowing
an optional required permission to be enforced.
void
sendBroadcast(Intent intent, String receiverPermission)
Broadcast the given intent to all interested BroadcastReceivers, allowing
an optional required permission to be enforced.
void
sendBroadcast(Intent intent)
Broadcast the given intent to all interested BroadcastReceivers.
void
sendBroadcastAsUser(Intent intent, UserHandle user)
Version of sendBroadcast(android.content.Intent)
that allows you to specify the
user the broadcast will be sent to.
void
sendBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission)
Version of sendBroadcast(android.content.Intent, java.lang.String)
that allows you to specify the
user the broadcast will be sent to.
void
sendOrderedBroadcast(Intent intent, String receiverPermission, String receiverAppOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
Version of
sendOrderedBroadcast(android.content.Intent, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
that allows you to specify the App Op to enforce restrictions on which receivers
the broadcast will be sent to.
void
sendOrderedBroadcast(Intent intent, int initialCode, String receiverPermission, String receiverAppOp, BroadcastReceiver resultReceiver, Handler scheduler, String initialData, Bundle initialExtras, Bundle options)
void
sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
Version of sendBroadcast(android.content.Intent)
that allows you to
receive data back from the broadcast.
void
sendOrderedBroadcast(Intent intent, String receiverPermission, Bundle options)
Broadcast the given intent to all interested BroadcastReceivers, delivering
them one at a time to allow more preferred receivers to consume the
broadcast before it is delivered to less preferred receivers.
void
sendOrderedBroadcast(Intent intent, String receiverPermission, Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
Version of sendBroadcast(android.content.Intent)
that allows you to
receive data back from the broadcast.
void
sendOrderedBroadcast(Intent intent, String receiverPermission)
Broadcast the given intent to all interested BroadcastReceivers, delivering
them one at a time to allow more preferred receivers to consume the
broadcast before it is delivered to less preferred receivers.
void
sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
Version of
sendOrderedBroadcast(android.content.Intent, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
that allows you to specify the
user the broadcast will be sent to.
void
sendStickyBroadcast(Intent intent)
This method is deprecated.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
void
sendStickyBroadcast(Intent intent, Bundle options)
This method is deprecated.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
void
sendStickyBroadcastAsUser(Intent intent, UserHandle user)
This method is deprecated.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
void
sendStickyOrderedBroadcast(Intent intent, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
This method is deprecated.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
void
sendStickyOrderedBroadcastAsUser(Intent intent, UserHandle user, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
This method is deprecated.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
void
setTheme(int resid)
Set the base theme for this context.
void
setWallpaper(Bitmap bitmap)
This method is deprecated.
Use WallpaperManager.set()
instead.
This method requires the caller to hold the permission
Manifest.permission.SET_WALLPAPER
.
void
setWallpaper(InputStream data)
This method is deprecated.
Use WallpaperManager.set()
instead.
This method requires the caller to hold the permission
Manifest.permission.SET_WALLPAPER
.
void
startActivities(Intent[] intents, Bundle options)
Launch multiple new activities.
void
startActivities(Intent[] intents)
Same as startActivities(android.content.Intent[], android.os.Bundle)
with no options
specified.
void
startActivity(Intent intent)
Same as startActivity(android.content.Intent, android.os.Bundle)
with no options
specified.
void
startActivity(Intent intent, Bundle options)
Launch a new activity.
ComponentName
startForegroundService(Intent service)
Similar to startService(android.content.Intent)
, but with an implicit promise that the
Service will call startForeground(int, android.app.Notification)
once it begins running.
boolean
startInstrumentation(ComponentName className, String profileFile, Bundle arguments)
Start executing an Instrumentation
class.
void
startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)
Same as startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int, android.os.Bundle)
with no options specified.
void
startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)
Like startActivity(android.content.Intent, android.os.Bundle)
, but taking a IntentSender
to start.
ComponentName
startService(Intent service)
Request that a given application service be started.
boolean
stopService(Intent name)
Request that a given application service be stopped.
void
unbindService(ServiceConnection conn)
Disconnect from an application service.
void
unregisterComponentCallbacks(ComponentCallbacks callback)
Remove a ComponentCallbacks
object that was previously registered
with registerComponentCallbacks(android.content.ComponentCallbacks)
.
void
unregisterDeviceIdChangeListener(IntConsumer listener)
Removes a device ID changed listener from the Context.
void
unregisterReceiver(BroadcastReceiver receiver)
Unregister a previously registered BroadcastReceiver.
void
updateServiceGroup(ServiceConnection conn, int group, int importance)
For a service previously bound with bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
or a related method, change
how the system manages that service's process in relation to other processes.
boolean
bindIsolatedService(Intent service, int flags, String instanceName, Executor executor, ServiceConnection conn)
Variation of bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
that, in the specific case of isolated
services, allows the caller to generate multiple instances of a service
from a single component declaration.
boolean
bindIsolatedService(Intent service, Context.BindServiceFlags flags, String instanceName, Executor executor, ServiceConnection conn)
See bindIsolatedService(android.content.Intent, int, java.lang.String, java.util.concurrent.Executor, android.content.ServiceConnection)
Call BindServiceFlags.of(long)
to obtain a BindServiceFlags object.
boolean
bindService(Intent service, int flags, Executor executor, ServiceConnection conn)
Same as bindService(Intent, ServiceConnection, int)
with executor to control ServiceConnection
callbacks.
boolean
bindService(Intent service, ServiceConnection conn, Context.BindServiceFlags flags)
See bindService(android.content.Intent, android.content.ServiceConnection, int)
Call BindServiceFlags.of(long)
to obtain a BindServiceFlags object.
abstract
boolean
bindService(Intent service, ServiceConnection conn, int flags)
Connects to an application service, creating it if needed.
boolean
bindService(Intent service, Context.BindServiceFlags flags, Executor executor, ServiceConnection conn)
See bindService(android.content.Intent, int, java.util.concurrent.Executor, android.content.ServiceConnection)
Call BindServiceFlags.of(long)
to obtain a BindServiceFlags object.
boolean
bindServiceAsUser(Intent service, ServiceConnection conn, int flags, UserHandle user)
Binds to a service in the given user
in the same manner as bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
.
boolean
bindServiceAsUser(Intent service, ServiceConnection conn, Context.BindServiceFlags flags, UserHandle user)
See bindServiceAsUser(android.content.Intent, android.content.ServiceConnection, int, android.os.UserHandle)
Call BindServiceFlags.of(long)
to obtain a BindServiceFlags object.
abstract
int
checkCallingOrSelfPermission(String permission)
Determine whether the calling process of an IPC or you have been
granted a particular permission.
abstract
int
checkCallingOrSelfUriPermission(Uri uri, int modeFlags)
Determine whether the calling process of an IPC or you has been granted
permission to access a specific URI.
int[]
checkCallingOrSelfUriPermissions(List<Uri> uris, int modeFlags)
Determine whether the calling process of an IPC or you has been granted
permission to access a list of URIs.
abstract
int
checkCallingPermission(String permission)
Determine whether the calling process of an IPC you are handling has been
granted a particular permission.
abstract
int
checkCallingUriPermission(Uri uri, int modeFlags)
Determine whether the calling process and uid has been
granted permission to access a specific URI.
int[]
checkCallingUriPermissions(List<Uri> uris, int modeFlags)
Determine whether the calling process and uid has been
granted permission to access a list of URIs.
int
checkContentUriPermissionFull(Uri uri, int pid, int uid, int modeFlags)
Determine whether a particular process and uid has been granted
permission to access a specific content URI.
abstract
int
checkPermission(String permission, int pid, int uid)
Determine whether the given permission is allowed for a particular
process and user ID running in the system.
abstract
int
checkSelfPermission(String permission)
Determine whether you have been granted a particular permission.
abstract
int
checkUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags)
Check both a Uri and normal permission.
abstract
int
checkUriPermission(Uri uri, int pid, int uid, int modeFlags)
Determine whether a particular process and uid has been granted
permission to access a specific URI.
int[]
checkUriPermissions(List<Uri> uris, int pid, int uid, int modeFlags)
Determine whether a particular process and uid has been granted
permission to access a list of URIs.
abstract
void
clearWallpaper()
This method was deprecated
in API level 15.
Use WallpaperManager.clear()
instead.
This method requires the caller to hold the permission
Manifest.permission.SET_WALLPAPER
.
Context
createAttributionContext(String attributionTag)
Return a new Context object for the current Context but attribute to a different tag.
abstract
Context
createConfigurationContext(Configuration overrideConfiguration)
Return a new Context object for the current Context but whose resources
are adjusted to match the given Configuration.
Context
createContext(ContextParams contextParams)
Creates a context with specific properties and behaviors.
abstract
Context
createContextForSplit(String splitName)
Return a new Context object for the given split name.
Context
createDeviceContext(int deviceId)
Returns a new Context
object from the current context but with device association
given by the deviceId
.
abstract
Context
createDeviceProtectedStorageContext()
Return a new Context object for the current Context but whose storage
APIs are backed by device-protected storage.
abstract
Context
createDisplayContext(Display display)
Returns a new Context
object from the current context but with resources
adjusted to match the metrics of display
.
abstract
Context
createPackageContext(String packageName, int flags)
Return a new Context object for the given application name.
Context
createWindowContext(int type, Bundle options)
Creates a Context for a non-activity window.
Context
createWindowContext(Display display, int type, Bundle options)
Creates a Context
for a non-activity
window on the given
Display
.
abstract
String[]
databaseList()
Returns an array of strings naming the private databases associated with
this Context's application package.
abstract
boolean
deleteDatabase(String name)
Delete an existing private SQLiteDatabase associated with this Context's
application package.
abstract
boolean
deleteFile(String name)
Delete the given private file associated with this Context's
application package.
abstract
boolean
deleteSharedPreferences(String name)
Delete an existing shared preferences file.
abstract
void
enforceCallingOrSelfPermission(String permission, String message)
If neither you nor the calling process of an IPC you are
handling has been granted a particular permission, throw a
SecurityException
.
abstract
void
enforceCallingOrSelfUriPermission(Uri uri, int modeFlags, String message)
If the calling process of an IPC or you has not been
granted permission to access a specific URI, throw SecurityException
.
abstract
void
enforceCallingPermission(String permission, String message)
If the calling process of an IPC you are handling has not been
granted a particular permission, throw a SecurityException
.
abstract
void
enforceCallingUriPermission(Uri uri, int modeFlags, String message)
If the calling process and uid has not been granted
permission to access a specific URI, throw SecurityException
.
abstract
void
enforcePermission(String permission, int pid, int uid, String message)
If the given permission is not allowed for a particular process
and user ID running in the system, throw a SecurityException
.
abstract
void
enforceUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags, String message)
Enforce both a Uri and normal permission.
abstract
void
enforceUriPermission(Uri uri, int pid, int uid, int modeFlags, String message)
If a particular process and uid has not been granted
permission to access a specific URI, throw SecurityException
.
abstract
String[]
fileList()
Returns an array of strings naming the private files associated with
this Context's application package.
abstract
Context
getApplicationContext()
Return the context of the single, global Application object of the
current process.
abstract
ApplicationInfo
getApplicationInfo()
Return the full application info for this context's package.
abstract
AssetManager
getAssets()
Returns an AssetManager instance for the application's package.
AttributionSource
getAttributionSource()
String
getAttributionTag()
Attribution can be used in complex apps to logically separate parts of the app.
abstract
File
getCacheDir()
Returns the absolute path to the application specific cache directory on
the filesystem.
abstract
ClassLoader
getClassLoader()
Return a class loader you can use to retrieve classes in this package.
abstract
File
getCodeCacheDir()
Returns the absolute path to the application specific cache directory on
the filesystem designed for storing cached code.
final
int
getColor(int id)
Returns a color associated with a particular resource ID and styled for
the current theme.
final
ColorStateList
getColorStateList(int id)
Returns a color state list associated with a particular resource ID and
styled for the current theme.
abstract
ContentResolver
getContentResolver()
Return a ContentResolver instance for your application's package.
abstract
File
getDataDir()
Returns the absolute path to the directory on the filesystem where all
private files belonging to this app are stored.
abstract
File
getDatabasePath(String name)
Returns the absolute path on the filesystem where a database created with
openOrCreateDatabase(String, int, CursorFactory)
is stored.
int
getDeviceId()
Gets the device ID this context is associated with.
abstract
File
getDir(String name, int mode)
Retrieve, creating if needed, a new directory in which the application
can place its own custom data files.
Display
getDisplay()
Get the display this context is associated with.
final
Drawable
getDrawable(int id)
Returns a drawable object associated with a particular resource ID and
styled for the current theme.
abstract
File
getExternalCacheDir()
Returns absolute path to application-specific directory on the primary
shared/external storage device where the application can place cache
files it owns.
abstract
File[]
getExternalCacheDirs()
Returns absolute paths to application-specific directories on all
shared/external storage devices where the application can place cache
files it owns.
abstract
File
getExternalFilesDir(String type)
Returns the absolute path to the directory on the primary shared/external
storage device where the application can place persistent files it owns.
abstract
File[]
getExternalFilesDirs(String type)
Returns absolute paths to application-specific directories on all
shared/external storage devices where the application can place
persistent files it owns.
abstract
File[]
getExternalMediaDirs()
This method was deprecated
in API level 30.
These directories still exist and are scanned, but developers
are encouraged to migrate to inserting content into a
MediaStore
collection directly, as any app can
contribute new media to MediaStore
with no
permissions required, starting in
Build.VERSION_CODES.Q
.
abstract
File
getFileStreamPath(String name)
Returns the absolute path on the filesystem where a file created with
openFileOutput(String, int)
is stored.
abstract
File
getFilesDir()
Returns the absolute path to the directory on the filesystem where files
created with openFileOutput(String, int)
are stored.
Executor
getMainExecutor()
Return an Executor
that will run enqueued tasks on the main
thread associated with this context.
abstract
Looper
getMainLooper()
Return the Looper for the main thread of the current process.
abstract
File
getNoBackupFilesDir()
Returns the absolute path to the directory on the filesystem similar to
getFilesDir()
.
abstract
File
getObbDir()
Return the primary shared/external storage directory where this
application's OBB files (if there are any) can be found.
abstract
File[]
getObbDirs()
Returns absolute paths to application-specific directories on all
shared/external storage devices where the application's OBB files (if
there are any) can be found.
String
getOpPackageName()
Return the package name that should be used for AppOpsManager
calls from
this context, so that app ops manager's uid verification will work with the name.
abstract
String
getPackageCodePath()
Return the full path to this context's primary Android package.
abstract
PackageManager
getPackageManager()
Return PackageManager instance to find global package information.
abstract
String
getPackageName()
Return the name of this application's package.
abstract
String
getPackageResourcePath()
Return the full path to this context's primary Android package.
ContextParams
getParams()
Return the set of parameters which this Context was created with, if it
was created via createContext(android.content.ContextParams)
.
abstract
Resources
getResources()
Returns a Resources instance for the application's package.
abstract
SharedPreferences
getSharedPreferences(String name, int mode)
Retrieve and hold the contents of the preferences file 'name', returning
a SharedPreferences through which you can retrieve and modify its
values.
final
String
getString(int resId)
Returns a localized string from the application's package's
default string table.
final
String
getString(int resId, Object... formatArgs)
Returns a localized formatted string from the application's package's
default string table, substituting the format arguments as defined in
Formatter
and String.format(String, Object)
.
final
<T>
T
getSystemService(Class<T> serviceClass)
Return the handle to a system-level service by class.
abstract
Object
getSystemService(String name)
Return the handle to a system-level service by name.
abstract
String
getSystemServiceName(Class<?> serviceClass)
Gets the name of the system-level service that is represented by the specified class.
final
CharSequence
getText(int resId)
Return a localized, styled CharSequence from the application's package's
default string table.
abstract
Resources.Theme
getTheme()
Return the Theme object associated with this Context.
abstract
Drawable
getWallpaper()
This method was deprecated
in API level 15.
Use WallpaperManager.get()
instead.
abstract
int
getWallpaperDesiredMinimumHeight()
This method was deprecated
in API level 15.
Use WallpaperManager.getDesiredMinimumHeight()
instead.
abstract
int
getWallpaperDesiredMinimumWidth()
This method was deprecated
in API level 15.
Use WallpaperManager.getDesiredMinimumWidth()
instead.
abstract
void
grantUriPermission(String toPackage, Uri uri, int modeFlags)
Grant permission to access a specific Uri to another package, regardless
of whether that package has general permission to access the Uri's
content provider.
abstract
boolean
isDeviceProtectedStorage()
Indicates if the storage APIs of this Context are backed by
device-protected storage.
boolean
isRestricted()
Indicates whether this Context is restricted.
boolean
isUiContext()
Returns true
if the context is a UI context which can access UI components such as
WindowManager
, LayoutInflater
or
WallpaperManager
.
abstract
boolean
moveDatabaseFrom(Context sourceContext, String name)
Move an existing database file from the given source storage context to
this context.
abstract
boolean
moveSharedPreferencesFrom(Context sourceContext, String name)
Move an existing shared preferences file from the given source storage
context to this context.
final
TypedArray
obtainStyledAttributes(AttributeSet set, int[] attrs)
Retrieve styled attribute information in this Context's theme.
final
TypedArray
obtainStyledAttributes(AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes)
Retrieve styled attribute information in this Context's theme.
final
TypedArray
obtainStyledAttributes(int resid, int[] attrs)
Retrieve styled attribute information in this Context's theme.
final
TypedArray
obtainStyledAttributes(int[] attrs)
Retrieve styled attribute information in this Context's theme.
abstract
FileInputStream
openFileInput(String name)
Open a private file associated with this Context's application package
for reading.
abstract
FileOutputStream
openFileOutput(String name, int mode)
Open a private file associated with this Context's application package
for writing.
abstract
SQLiteDatabase
openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler)
Open a new private SQLiteDatabase associated with this Context's
application package.
abstract
SQLiteDatabase
openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory)
Open a new private SQLiteDatabase associated with this Context's
application package.
abstract
Drawable
peekWallpaper()
This method was deprecated
in API level 15.
Use WallpaperManager.peek()
instead.
void
registerComponentCallbacks(ComponentCallbacks callback)
Add a new ComponentCallbacks
to the base application of the
Context, which will be called at the same times as the ComponentCallbacks
methods of activities and other components are called.
void
registerDeviceIdChangeListener(Executor executor, IntConsumer listener)
Adds a new device ID changed listener to the Context
, which will be called when
the device association is changed by the system.
abstract
Intent
registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
Register a BroadcastReceiver to be run in the main activity thread.
abstract
Intent
registerReceiver(BroadcastReceiver receiver, IntentFilter filter, int flags)
Register to receive intent broadcasts, with the receiver optionally being
exposed to Instant Apps.
abstract
Intent
registerReceiver(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler, int flags)
Register to receive intent broadcasts, to run in the context of
scheduler.
abstract
Intent
registerReceiver(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler)
Register to receive intent broadcasts, to run in the context of
scheduler.
abstract
void
removeStickyBroadcast(Intent intent)
This method was deprecated
in API level 21.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
abstract
void
removeStickyBroadcastAsUser(Intent intent, UserHandle user)
This method was deprecated
in API level 21.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
void
revokeSelfPermissionOnKill(String permName)
Triggers the asynchronous revocation of a runtime permission.
void
revokeSelfPermissionsOnKill(Collection<String> permissions)
Triggers the revocation of one or more permissions for the calling package.
abstract
void
revokeUriPermission(Uri uri, int modeFlags)
Remove all permissions to access a particular content provider Uri
that were previously added with grantUriPermission(String, Uri, int)
or any other mechanism.
abstract
void
revokeUriPermission(String toPackage, Uri uri, int modeFlags)
Remove permissions to access a particular content provider Uri
that were previously added with grantUriPermission(String, Uri, int)
for a specific target
package.
void
sendBroadcast(Intent intent, String receiverPermission, Bundle options)
Broadcast the given intent to all interested BroadcastReceivers, allowing
an optional required permission to be enforced.
abstract
void
sendBroadcast(Intent intent, String receiverPermission)
Broadcast the given intent to all interested BroadcastReceivers, allowing
an optional required permission to be enforced.
abstract
void
sendBroadcast(Intent intent)
Broadcast the given intent to all interested BroadcastReceivers.
abstract
void
sendBroadcastAsUser(Intent intent, UserHandle user)
Version of sendBroadcast(android.content.Intent)
that allows you to specify the
user the broadcast will be sent to.
abstract
void
sendBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission)
Version of sendBroadcast(android.content.Intent, java.lang.String)
that allows you to specify the
user the broadcast will be sent to.
void
sendBroadcastWithMultiplePermissions(Intent intent, String[] receiverPermissions)
Broadcast the given intent to all interested BroadcastReceivers, allowing
an array of required permissions to be enforced.
void
sendOrderedBroadcast(Intent intent, String receiverPermission, String receiverAppOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
Version of
sendOrderedBroadcast(android.content.Intent, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
that allows you to specify the App Op to enforce restrictions on which receivers
the broadcast will be sent to.
abstract
void
sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
Version of sendBroadcast(android.content.Intent)
that allows you to
receive data back from the broadcast.
void
sendOrderedBroadcast(Intent intent, String receiverPermission, Bundle options)
Broadcast the given intent to all interested BroadcastReceivers, delivering
them one at a time to allow more preferred receivers to consume the
broadcast before it is delivered to less preferred receivers.
void
sendOrderedBroadcast(Intent intent, String receiverPermission, Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
Version of sendBroadcast(android.content.Intent)
that allows you to
receive data back from the broadcast.
abstract
void
sendOrderedBroadcast(Intent intent, String receiverPermission)
Broadcast the given intent to all interested BroadcastReceivers, delivering
them one at a time to allow more preferred receivers to consume the
broadcast before it is delivered to less preferred receivers.
abstract
void
sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
Version of
sendOrderedBroadcast(android.content.Intent, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
that allows you to specify the
user the broadcast will be sent to.
abstract
void
sendStickyBroadcast(Intent intent)
This method was deprecated
in API level 21.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
void
sendStickyBroadcast(Intent intent, Bundle options)
This method was deprecated
in API level 31.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
abstract
void
sendStickyBroadcastAsUser(Intent intent, UserHandle user)
This method was deprecated
in API level 21.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
abstract
void
sendStickyOrderedBroadcast(Intent intent, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
This method was deprecated
in API level 21.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
abstract
void
sendStickyOrderedBroadcastAsUser(Intent intent, UserHandle user, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)
This method was deprecated
in API level 21.
Sticky broadcasts should not be used. They provide no security (anyone
can access them), no protection (anyone can modify them), and many other problems.
The recommended pattern is to use a non-sticky broadcast to report that something
has changed, with another mechanism for apps to retrieve the current value whenever
desired.
abstract
void
setTheme(int resid)
Set the base theme for this context.
abstract
void
setWallpaper(Bitmap bitmap)
This method was deprecated
in API level 15.
Use WallpaperManager.set()
instead.
This method requires the caller to hold the permission
Manifest.permission.SET_WALLPAPER
.
abstract
void
setWallpaper(InputStream data)
This method was deprecated
in API level 15.
Use WallpaperManager.set()
instead.
This method requires the caller to hold the permission
Manifest.permission.SET_WALLPAPER
.
abstract
void
startActivities(Intent[] intents, Bundle options)
Launch multiple new activities.
abstract
void
startActivities(Intent[] intents)
Same as startActivities(android.content.Intent[], android.os.Bundle)
with no options
specified.
abstract
void
startActivity(Intent intent)
Same as startActivity(android.content.Intent, android.os.Bundle)
with no options
specified.
abstract
void
startActivity(Intent intent, Bundle options)
Launch a new activity.
abstract
ComponentName
startForegroundService(Intent service)
Similar to startService(android.content.Intent)
, but with an implicit promise that the
Service will call startForeground(int, android.app.Notification)
once it begins running.
abstract
boolean
startInstrumentation(ComponentName className, String profileFile, Bundle arguments)
Start executing an Instrumentation
class.
abstract
void
startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)
Same as startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int, android.os.Bundle)
with no options specified.
abstract
void
startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)
Like startActivity(android.content.Intent, android.os.Bundle)
, but taking a IntentSender
to start.
abstract
ComponentName
startService(Intent service)
Request that a given application service be started.
abstract
boolean
stopService(Intent service)
Request that a given application service be stopped.
abstract
void
unbindService(ServiceConnection conn)
Disconnect from an application service.
void
unregisterComponentCallbacks(ComponentCallbacks callback)
Remove a ComponentCallbacks
object that was previously registered
with registerComponentCallbacks(android.content.ComponentCallbacks)
.
void
unregisterDeviceIdChangeListener(IntConsumer listener)
Removes a device ID changed listener from the Context.
abstract
void
unregisterReceiver(BroadcastReceiver receiver)
Unregister a previously registered BroadcastReceiver.
void
updateServiceGroup(ServiceConnection conn, int group, int importance)
For a service previously bound with bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
or a related method, change
how the system manages that service's process in relation to other processes.
Object
clone()
Creates and returns a copy of this object.
boolean
equals(Object obj)
Indicates whether some other object is "equal to" this one.
void
finalize()
Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.
final
Class<?>
getClass()
Returns the runtime class of this Object
.
int
hashCode()
Returns a hash code value for the object.
final
void
notify()
Wakes up a single thread that is waiting on this object's
monitor.
final
void
notifyAll()
Wakes up all threads that are waiting on this object's monitor.
String
toString()
Returns a string representation of the object.
final
void
wait(long timeoutMillis, int nanos)
Causes the current thread to wait until it is awakened, typically
by being notified or interrupted, or until a
certain amount of real time has elapsed.
final
void
wait(long timeoutMillis)
Causes the current thread to wait until it is awakened, typically
by being notified or interrupted, or until a
certain amount of real time has elapsed.
final
void
wait()
Causes the current thread to wait until it is awakened, typically
by being notified or interrupted.
abstract
void
onTrimMemory(int level)
Called when the operating system has determined that it is a good
time for a process to trim unneeded memory from its process.
abstract
void
onConfigurationChanged(Configuration newConfig)
Called by the system when the device configuration changes while your
component is running.
abstract
void
onLowMemory()
This method was deprecated
in API level 35.
Since API level 14 this is superseded by
ComponentCallbacks2.onTrimMemory
.
Since API level 34 this is never called.
If you're overriding ComponentCallbacks2#onTrimMemory and
your minSdkVersion is greater than API 14, you can provide
an empty implementation for this method.
Constants
SERVICE_INTERFACE
Added in API level 23
public static final String SERVICE_INTERFACE
The Intent
that must be declared as handled by the service.
Constant Value:
"android.telecom.InCallService"
Public constructors
Public methods
canAddCall
Added in API level 23
public final boolean canAddCall ()
Returns if the device can support additional calls.
Returns
boolean
Whether the phone supports adding more calls.
getCallAudioState
public final CallAudioState getCallAudioState ()
This method was deprecated
in API level 34.
Use getCurrentCallEndpoint()
,
onAvailableCallEndpointsChanged(java.util.List)
and
onMuteStateChanged(boolean)
instead.
Obtains the current phone call audio state.
Returns
CallAudioState
An object encapsulating the audio state. Returns null if the service is not
fully initialized.
getCalls
Added in API level 23
public final List<Call> getCalls ()
Obtains the current list of Call
s to be displayed by this in-call service.
getCurrentCallEndpoint
Added in API level 34
public final CallEndpoint getCurrentCallEndpoint ()
Obtains the current CallEndpoint.
Returns
CallEndpoint
An object encapsulating the CallEndpoint.
This value cannot be null
.
onAvailableCallEndpointsChanged
Added in API level 34
public void onAvailableCallEndpointsChanged (List<CallEndpoint> availableEndpoints)
Called when the available CallEndpoint changes.
Parameters
availableEndpoints
List
: The set of available CallEndpoint CallEndpoint
.
This value cannot be null
.
onBind
Added in API level 23
public IBinder onBind (Intent intent)
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.
Parameters
intent
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.
Returns
IBinder
Return an IBinder through which clients can call on to the
service.
onBringToForeground
Added in API level 23
public void onBringToForeground (boolean showDialpad)
Called to bring the in-call screen to the foreground. The in-call experience should
respond immediately by coming to the foreground to inform the user of the state of
ongoing Call
s.
Parameters
showDialpad
boolean
: If true, put up the dialpad when the screen is shown.
onCallAdded
Added in API level 23
public void onCallAdded (Call call)
Called when a Call
has been added to this in-call session. The in-call user
experience should add necessary state listeners to the specified Call
and
immediately start to show the user information about the existence
and nature of this Call
. Subsequent invocations of getCalls()
will
include this Call
.
Parameters
call
Call
: A newly added Call
.
onCallAudioStateChanged
public void onCallAudioStateChanged (CallAudioState audioState)
This method was deprecated
in API level 34.
Use onCallEndpointChanged(android.telecom.CallEndpoint)
,
onAvailableCallEndpointsChanged(java.util.List)
and
onMuteStateChanged(boolean)
instead.
Called when the audio state changes.
Parameters
audioState
CallAudioState
: The new CallAudioState
.
onCallEndpointChanged
Added in API level 34
public void onCallEndpointChanged (CallEndpoint callEndpoint)
Called when the current CallEndpoint changes.
Parameters
callEndpoint
CallEndpoint
: The current CallEndpoint CallEndpoint
.
This value cannot be null
.
onCallRemoved
Added in API level 23
public void onCallRemoved (Call call)
Called when a Call
has been removed from this in-call session. The in-call user
experience should remove any state listeners from the specified Call
and
immediately stop displaying any information about this Call
.
Subsequent invocations of getCalls()
will no longer include this Call
.
Parameters
call
Call
: A newly removed Call
.
onCanAddCallChanged
Added in API level 23
public void onCanAddCallChanged (boolean canAddCall)
Called when the ability to add more calls changes. If the phone cannot
support more calls then canAddCall
is set to false
. If it can, then it
is set to true
. This can be used to control the visibility of UI to add more calls.
Parameters
canAddCall
boolean
: Indicates whether an additional call can be added.
onConnectionEvent
Added in API level 25
public void onConnectionEvent (Call call,
String event,
Bundle extras)
Unused; to handle connection events issued by a ConnectionService
, implement the
Call.Callback.onConnectionEvent(Call, String, Bundle)
callback.
See Connection.sendConnectionEvent(String, Bundle)
.
Parameters
call
Call
: The call the event is associated with.
event
String
: The event.
extras
Bundle
: Any associated extras.
onMuteStateChanged
Added in API level 34
public void onMuteStateChanged (boolean isMuted)
Called when the mute state changes.
Parameters
isMuted
boolean
: The current mute state.
onSilenceRinger
Added in API level 24
public void onSilenceRinger ()
Called to silence the ringer if a ringing call exists.
onUnbind
Added in API level 23
public boolean onUnbind (Intent intent)
Called when all clients have disconnected from a particular interface
published by the service. The default implementation does nothing and
returns false.
Parameters
intent
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.
Returns
boolean
Return true if you would like to have the service's
onRebind(Intent)
method later called when new clients bind to it.
requestBluetoothAudio
public final void requestBluetoothAudio (BluetoothDevice bluetoothDevice)
This method was deprecated
in API level 34.
Use requestCallEndpointChange(android.telecom.CallEndpoint, java.util.concurrent.Executor, android.os.OutcomeReceiver)
instead.
Request audio routing to a specific bluetooth device. Calling this method may result in
the device routing audio to a different bluetooth device than the one specified if the
bluetooth stack is unable to route audio to the requested device.
A list of available devices can be obtained via
CallAudioState.getSupportedBluetoothDevices()
Parameters
bluetoothDevice
BluetoothDevice
: The bluetooth device to connect to.
This value cannot be null
.
requestCallEndpointChange
Added in API level 34
public final void requestCallEndpointChange (CallEndpoint endpoint,
Executor executor,
OutcomeReceiver<Void, CallEndpointException> callback)
Request audio routing to a specific CallEndpoint. Clients should not define their own
CallEndpoint when requesting a change. Instead, the new endpoint should be one of the valid
endpoints provided by onAvailableCallEndpointsChanged(java.util.List)
.
When this request is honored, there will be change to the getCurrentCallEndpoint()
.
Parameters
endpoint
CallEndpoint
: The call endpoint to use.
This value cannot be null
.
executor
Executor
: The executor of where the callback will execute.
This value cannot be null
.
Callback and listener events are dispatched through this
Executor
, providing an easy way to control which thread is
used. To dispatch events through the main thread of your
application, you can use
Context.getMainExecutor()
.
Otherwise, provide an Executor
that dispatches to an appropriate thread.
callback
OutcomeReceiver
: The callback to notify the result of the endpoint change.
This value cannot be null
.
setAudioRoute
public final void setAudioRoute (int route)
This method was deprecated
in API level 34.
Use requestCallEndpointChange(android.telecom.CallEndpoint, java.util.concurrent.Executor, android.os.OutcomeReceiver)
instead.
Sets the audio route (speaker, bluetooth, etc...). When this request is honored, there will
be change to the getCallAudioState()
.
Parameters
route
int
: The audio route to use.
setMuted
Added in API level 23
public final void setMuted (boolean state)
Sets the microphone mute state. When this request is honored, there will be change to
the getCallAudioState()
.
Parameters
state
boolean
: true
if the microphone should be muted; false
otherwise.