Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/app/backup/BackupAgent#constants) \| [Inherited Constants](https://developer.android.com/reference/android/app/backup/BackupAgent#inhconstants) \| [Ctors](https://developer.android.com/reference/android/app/backup/BackupAgent#pubctors) \| [Methods](https://developer.android.com/reference/android/app/backup/BackupAgent#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/backup/BackupAgent#inhmethods)

# BackupAgent

*** ** * ** ***


`
public


abstract
class
BackupAgent
`


`


`

`


`

`

extends https://developer.android.com/reference/android/content/ContextWrapper


`

`


`

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||||
| ↳ | [android.content.Context](https://developer.android.com/reference/android/content/Context) |||
|   | ↳ | [android.content.ContextWrapper](https://developer.android.com/reference/android/content/ContextWrapper) ||
|   |   | ↳ | android.app.backup.BackupAgent |

Known direct subclasses [BackupAgentHelper](https://developer.android.com/reference/android/app/backup/BackupAgentHelper) [BackupAgentHelper](https://developer.android.com/reference/android/app/backup/BackupAgentHelper) A convenient `https://developer.android.com/reference/android/app/backup/BackupAgent` wrapper class that automatically manages heterogeneous data sets within the backup data, each identified by a unique key prefix.   

*** ** * ** ***

Provides the central interface between an application and Android's data backup infrastructure.
An application that wishes to participate in the backup and restore mechanism will declare a
subclass of `https://developer.android.com/reference/android/app/backup/BackupAgent`, implement the `https://developer.android.com/reference/android/app/backup/BackupAgent#onBackup(android.os.ParcelFileDescriptor,%20android.app.backup.BackupDataOutput,%20android.os.ParcelFileDescriptor)` and `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)` methods, and provide the name
of its backup agent class in its `AndroidManifest.xml` file via the `
https://developer.android.com/guide/topics/manifest/application-element`
tag's `android:backupAgent` attribute.

<br />

### Developer Guides

For more information about using BackupAgent, read the [Data Backup](https://developer.android.com/guide/topics/data/backup) developer guide.

### Basic Operation

When the application makes changes to data that it wishes to keep backed up, it should call
the `https://developer.android.com/reference/android/app/backup/BackupManager#dataChanged()` method.
This notifies the Android Backup Manager that the application needs an opportunity to update its
backup image. The Backup Manager, in turn, schedules a backup pass to be performed at an
opportune time.

Restore operations are typically performed only when applications are first installed on a
device. At that time, the operating system checks to see whether there is a previously-saved data
set available for the application being installed, and if so, begins an immediate restore pass to
deliver the backup data as part of the installation process.

When a backup or restore pass is run, the application's process is launched (if not already
running), the manifest-declared backup agent class (in the `android:backupAgent` attribute)
is instantiated within that process, and the agent's `https://developer.android.com/reference/android/app/backup/BackupAgent#onCreate()` method is invoked. This
prepares the agent instance to run the actual backup or restore logic. At this point the agent's
`https://developer.android.com/reference/android/app/backup/BackupAgent#onBackup(android.os.ParcelFileDescriptor,%20android.app.backup.BackupDataOutput,%20android.os.ParcelFileDescriptor)` or
`https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)` method will be invoked
as appropriate for the operation being performed.

A backup data set consists of one or more "entities," flattened binary data records that are
each identified with a key string unique within the data set. Adding a record to the active data
set or updating an existing record is done by simply writing new entity data under the desired
key. Deleting an entity from the data set is done by writing an entity under that key with header
specifying a negative data size, and no actual entity data.

**Helper Classes**

An extensible agent based on convenient helper classes is available in `https://developer.android.com/reference/android/app/backup/BackupAgentHelper`. That class is particularly suited to handling of simple
file or `https://developer.android.com/reference/android/content/SharedPreferences` backup and restore.

**Threading**

The constructor, as well as `https://developer.android.com/reference/android/app/backup/BackupAgent#onCreate()` and `https://developer.android.com/reference/android/app/backup/BackupAgent#onDestroy()` lifecycle callbacks
run on the main thread (UI thread) of the application that implements the BackupAgent. The
data-handling callbacks: `https://developer.android.com/reference/android/app/backup/BackupAgent#onBackup(android.os.ParcelFileDescriptor,%20android.app.backup.BackupDataOutput,%20android.os.ParcelFileDescriptor)`, `https://developer.android.com/reference/android/app/backup/BackupAgent#onFullBackup(android.app.backup.FullBackupDataOutput)`, `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)`, `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestoreFile(android.os.ParcelFileDescriptor,%20long,%20java.io.File,%20int,%20long,%20long)`, `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestoreFinished()`, and `https://developer.android.com/reference/android/app/backup/BackupAgent#onQuotaExceeded(long,%20long)` run on binder
pool threads.
**See also:**

- `https://developer.android.com/reference/android/app/backup/BackupManager`
- `https://developer.android.com/reference/android/app/backup/BackupAgentHelper`
- `https://developer.android.com/reference/android/app/backup/BackupDataInput`
- `https://developer.android.com/reference/android/app/backup/BackupDataOutput`

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/app/backup/BackupAgent#FLAG_CLIENT_SIDE_ENCRYPTION_ENABLED` Transport flag indicating that the transport has client-side encryption enabled. |
| `int` | `https://developer.android.com/reference/android/app/backup/BackupAgent#FLAG_CROSS_PLATFORM_DATA_TRANSFER_IOS` Transport flag indicating that the transport is used for a cross-platform transfer to or from iOS. |
| `int` | `https://developer.android.com/reference/android/app/backup/BackupAgent#FLAG_DEVICE_TO_DEVICE_TRANSFER` Transport flag indicating that the transport is used for a device-to-device transfer. |
| `int` | `https://developer.android.com/reference/android/app/backup/BackupAgent#TYPE_DIRECTORY` During a full restore, indicates that the file system object being restored is a directory. |
| `int` | `https://developer.android.com/reference/android/app/backup/BackupAgent#TYPE_FILE` During a full restore, indicates that the file system object being restored is an ordinary file. |

### Inherited constants

From class `https://developer.android.com/reference/android/content/Context` `https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#ACCESSIBILITY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityManager` for giving the user
feedback for UI events through the registered event listeners.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#ACCOUNT_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/accounts/AccountManager` for receiving intents at a
time of your choosing.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#ACTIVITY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/ActivityManager` for interacting with the global
system state.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#ADVANCED_PROTECTION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve an
`https://developer.android.com/reference/android/security/advancedprotection/AdvancedProtectionManager`


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#ALARM_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/AlarmManager` for receiving intents at a
time of your choosing.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#APPWIDGET_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/appwidget/AppWidgetManager` for accessing AppWidgets.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#APP_FUNCTION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve an
`https://developer.android.com/reference/android/app/appfunctions/AppFunctionManager` for
executing app functions.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#APP_INTERACTION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve an
`https://developer.android.com/reference/android/app/AppInteractionManager` for managing app interactions.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#APP_OPS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/AppOpsManager` for tracking application operations
on the device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#APP_SEARCH_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve an
`https://developer.android.com/reference/android/app/appsearch/AppSearchManager` for
indexing and querying app data managed by the system.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#AUDIO_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/media/AudioManager` for handling management of volume,
ringer modes and audio routing.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#AUTHENTICATION_POLICY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve an `https://developer.android.com/reference/android/security/authenticationpolicy/AuthenticationPolicyManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#AUTOFILL_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve an
`https://developer.android.com/reference/android/view/autofill/AutofillManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#BATTERY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/os/BatteryManager` for managing battery state.


`int` `https://developer.android.com/reference/android/content/Context#BIND_ABOVE_CLIENT`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: indicates that the client application
binding to this service considers the service to be more important than
the app itself.


`int` `https://developer.android.com/reference/android/content/Context#BIND_ADJUST_WITH_ACTIVITY`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.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` `https://developer.android.com/reference/android/content/Context#BIND_ALLOW_ACTIVITY_STARTS`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: If binding from an app that is visible, the bound service is
allowed to start an activity from background.


`int` `https://developer.android.com/reference/android/content/Context#BIND_ALLOW_OOM_MANAGEMENT`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: allow the process hosting the bound
service to go through its normal memory management.


`int` `https://developer.android.com/reference/android/content/Context#BIND_AUTO_CREATE`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: automatically create the service as long
as the binding exists.


`int` `https://developer.android.com/reference/android/content/Context#BIND_DEBUG_UNBIND`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: include debugging help for mismatched
calls to unbind.


`int` `https://developer.android.com/reference/android/content/Context#BIND_EXTERNAL_SERVICE`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: The service being bound is an
`https://developer.android.com/reference/android/R.attr#isolatedProcess`,
`https://developer.android.com/reference/android/R.attr#externalService` service.


`long` `https://developer.android.com/reference/android/content/Context#BIND_EXTERNAL_SERVICE_LONG`

Works in the same way as `https://developer.android.com/reference/android/content/Context#BIND_EXTERNAL_SERVICE`, but it's defined as a `long`
value that is compatible to `https://developer.android.com/reference/android/content/Context.BindServiceFlags`.


`int` `https://developer.android.com/reference/android/content/Context#BIND_IMPORTANT`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: this service is very important to
the client, so should be brought to the foreground process level
when the client is.


`int` `https://developer.android.com/reference/android/content/Context#BIND_INCLUDE_CAPABILITIES`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.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` `https://developer.android.com/reference/android/content/Context#BIND_NOT_FOREGROUND`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: don't allow this binding to raise
the target service's process to the foreground scheduling priority.


`int` `https://developer.android.com/reference/android/content/Context#BIND_NOT_PERCEPTIBLE`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: If binding from an app that is visible or user-perceptible,
lower the target service's importance to below the perceptible level.


`int` `https://developer.android.com/reference/android/content/Context#BIND_PACKAGE_ISOLATED_PROCESS`

Flag for `https://developer.android.com/reference/android/content/Context#bindIsolatedService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.lang.String,%20java.util.concurrent.Executor,%20android.content.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` `https://developer.android.com/reference/android/content/Context#BIND_SHARED_ISOLATED_PROCESS`

Flag for `https://developer.android.com/reference/android/content/Context#bindIsolatedService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.lang.String,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: Bind the service into a shared isolated process.


`int` `https://developer.android.com/reference/android/content/Context#BIND_WAIVE_PRIORITY`

Flag for `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`: don't impact the scheduling or
memory management priority of the target service's hosting process.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#BIOMETRIC_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/hardware/biometrics/BiometricManager` for handling
biometric and PIN/pattern/password authentication.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#BLOB_STORE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/blob/BlobStoreManager` for contributing and accessing data blobs
from the blob store maintained by the system.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#BLUETOOTH_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/bluetooth/BluetoothManager` for using Bluetooth.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#BUGREPORT_SERVICE`

Service to capture a bugreport.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CAMERA_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/hardware/camera2/CameraManager` for interacting with
camera devices.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CAPTIONING_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/view/accessibility/CaptioningManager` for obtaining
captioning properties and listening for changes in captioning
preferences.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CARRIER_CONFIG_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/telephony/CarrierConfigManager` for reading carrier configuration values.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CHOOSER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/service/chooser/ChooserManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CLIPBOARD_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/content/ClipboardManager` for accessing and modifying
the contents of the global clipboard.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#COMPANION_DEVICE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/companion/CompanionDeviceManager` for managing companion devices


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CONNECTIVITY_DIAGNOSTICS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/net/ConnectivityDiagnosticsManager` for performing network connectivity diagnostics
as well as receiving network connectivity information from the system.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CONNECTIVITY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/net/ConnectivityManager` for handling management of
network connections.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CONSUMER_IR_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/hardware/ConsumerIrManager` for transmitting infrared
signals from the device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CONTACT_KEYS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/provider/E2eeContactKeysManager` to managing contact keys.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CONTENT_RESTRICTION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/contentsafety/ContentSafetyManager`.


`int` `https://developer.android.com/reference/android/content/Context#CONTEXT_IGNORE_SECURITY`

Flag for use with `https://developer.android.com/reference/android/content/Context#createPackageContext(java.lang.String,%20int)`: ignore any security
restrictions on the Context being requested, allowing it to always
be loaded.


`int` `https://developer.android.com/reference/android/content/Context#CONTEXT_INCLUDE_CODE`

Flag for use with `https://developer.android.com/reference/android/content/Context#createPackageContext(java.lang.String,%20int)`: include the application
code with the context.


`int` `https://developer.android.com/reference/android/content/Context#CONTEXT_RESTRICTED`

Flag for use with `https://developer.android.com/reference/android/content/Context#createPackageContext(java.lang.String,%20int)`: a restricted context may
disable specific features.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CREDENTIAL_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/credentials/CredentialManager` to authenticate a user to your app.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#CROSS_PROFILE_APPS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/content/pm/CrossProfileApps` for cross profile operations.


`int` `https://developer.android.com/reference/android/content/Context#DEVICE_ID_DEFAULT`

The default device ID, which is the ID of the primary (non-virtual) device.


`int` `https://developer.android.com/reference/android/content/Context#DEVICE_ID_INVALID`

Invalid device ID.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#DEVICE_LOCK_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/devicelock/DeviceLockManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#DEVICE_POLICY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/admin/DevicePolicyManager` for working with global
device policy management.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#DISPLAY_HASH_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to access
`https://developer.android.com/reference/android/view/displayhash/DisplayHashManager` to handle display hashes.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#DISPLAY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/hardware/display/DisplayManager` for interacting with display devices.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#DOMAIN_VERIFICATION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to access
`https://developer.android.com/reference/android/content/pm/verify/domain/DomainVerificationManager` to retrieve approval and
user state for declared web domains.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#DOWNLOAD_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/DownloadManager` for requesting HTTP downloads.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#DROPBOX_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/os/DropBoxManager` instance for recording
diagnostic logs.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#EUICC_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/telephony/euicc/EuiccManager` to manage the device eUICC (embedded SIM).


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#FILE_INTEGRITY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve an
`https://developer.android.com/reference/android/security/FileIntegrityManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#FILE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/os/storage/FileManager` for handling file operations.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#GAME_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/GameManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#GRAMMATICAL_INFLECTION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/GrammaticalInflectionManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#HARDWARE_PROPERTIES_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/os/HardwarePropertiesManager` for accessing the hardware properties service.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#HEALTHCONNECT_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/health/connect/HealthConnectManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#HID_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/hardware/hid/HidManager` for interacting with HID devices.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#INPUT_METHOD_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/view/inputmethod/InputMethodManager` for accessing input
methods.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#INPUT_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/hardware/input/InputManager` for interacting with input devices.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#IPSEC_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/net/IpSecManager` for encrypting Sockets or Networks with
IPSec.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#JOB_SCHEDULER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/job/JobScheduler` instance for managing occasional
background tasks.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#KEYCHAIN_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/security/KeyChainManager` for managing KeyChain certificates and grants.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#KEYGUARD_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/KeyguardManager` for controlling keyguard.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#KEYSTORE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/security/keystore/KeyStoreManager` for accessing
[Android Keystore](https://developer.android.com/privacy-and-security/keystore)
functions.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#LAUNCHER_APPS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/content/pm/LauncherApps` for querying and monitoring launchable apps across
profiles of a user.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#LAYOUT_INFLATER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/view/LayoutInflater` for inflating layout resources in this
context.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#LOCALE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/LocaleManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#LOCATION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/location/LocationManager` for controlling location
updates.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#MEDIA_COMMUNICATION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/media/MediaCommunicationManager`
for managing `https://developer.android.com/reference/android/media/MediaSession2`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#MEDIA_METRICS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/media/metrics/MediaMetricsManager` for interacting with media metrics
on the device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#MEDIA_PROJECTION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/media/projection/MediaProjectionManager` instance for managing
media projection sessions.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#MEDIA_QUALITY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/media/quality/MediaQualityManager` for standardize picture
and audio API parameters.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#MEDIA_ROUTER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.Class<T>)` to retrieve a
`https://developer.android.com/reference/android/media/MediaRouter` for controlling and managing
routing of media.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#MEDIA_SESSION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/media/session/MediaSessionManager` for managing media Sessions.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#MEMORY_BUDGET_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/MemoryBudgetManager` for monitoring memory budgets.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#MIDI_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/media/midi/MidiManager` for accessing the MIDI service.


`int` `https://developer.android.com/reference/android/content/Context#MODE_APPEND`

File creation mode: for use with `https://developer.android.com/reference/android/content/Context#openFileOutput(java.lang.String,%20int)`, if the file
already exists then write data to the end of the existing file
instead of erasing it.


`int` `https://developer.android.com/reference/android/content/Context#MODE_ENABLE_WRITE_AHEAD_LOGGING`

Database open flag: when set, the database is opened with write-ahead
logging enabled by default.


`int` `https://developer.android.com/reference/android/content/Context#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 `https://developer.android.com/reference/android/content/ContentProvider`.*


`int` `https://developer.android.com/reference/android/content/Context#MODE_NO_LOCALIZED_COLLATORS`

Database open flag: when set, the database is opened without support for
localized collators.


`int` `https://developer.android.com/reference/android/content/Context#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` `https://developer.android.com/reference/android/content/Context#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 `https://developer.android.com/reference/android/content/ContentProvider`,
`https://developer.android.com/reference/android/content/BroadcastReceiver`, and `https://developer.android.com/reference/android/app/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` `https://developer.android.com/reference/android/content/Context#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 `https://developer.android.com/reference/android/content/ContentProvider`,
`https://developer.android.com/reference/android/content/BroadcastReceiver`, and `https://developer.android.com/reference/android/app/Service`.
There are no guarantees that this access mode will remain on
a file, such as when it goes through a backup and restore.*


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#MULTISENSORY_MANAGER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve the service that plays multisensory
feedback.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#NETWORK_STATS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/usage/NetworkStatsManager` for querying network usage stats.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#NFC_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/nfc/NfcManager` for using NFC.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#NOTIFICATION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/NotificationManager` for informing the user of
background events.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#NPU_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#NSD_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/net/nsd/NsdManager` for handling management of network service
discovery


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#OVERLAY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/content/om/OverlayManager` for managing overlay packages.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#PCC_SANDBOX_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/privatecompute/PccSandboxManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#PEOPLE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to access a `https://developer.android.com/reference/android/app/people/PeopleManager` to interact
with your published conversations.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#PERFORMANCE_HINT_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/os/PerformanceHintManager` for accessing the performance hinting service.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#PERSISTENT_DATA_BLOCK_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/service/persistentdata/PersistentDataBlockManager` instance
for interacting with a storage device that lives across factory resets.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#POWER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/os/PowerManager` for controlling power management,
including "wake locks," which let you keep the device on while
you're running long tasks.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#PRINT_SERVICE`

`https://developer.android.com/reference/android/print/PrintManager` for printing and managing
printers and print tasks.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#PROFILING_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve an
`https://developer.android.com/reference/android/os/ProfilingManager`.


`int` `https://developer.android.com/reference/android/content/Context#RECEIVER_EXPORTED`

Flag for `https://developer.android.com/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter)`: The receiver can receive broadcasts from other Apps.


`int` `https://developer.android.com/reference/android/content/Context#RECEIVER_NOT_EXPORTED`

Flag for `https://developer.android.com/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter)`: The receiver cannot receive broadcasts from other Apps.


`int` `https://developer.android.com/reference/android/content/Context#RECEIVER_VISIBLE_TO_INSTANT_APPS`

Flag for `https://developer.android.com/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter)`: The receiver can receive broadcasts from Instant Apps.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#RESTRICTIONS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/content/RestrictionsManager` for retrieving application restrictions
and requesting permissions for restricted operations.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#ROLE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/role/RoleManager`
for managing roles.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#SATELLITE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/telephony/satellite/SatelliteManager` for accessing satellite functionality.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#SEARCH_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/SearchManager` for handling searches.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#SECURITY_STATE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/os/SecurityStateManager` for accessing the security state manager service.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#SENSOR_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/hardware/SensorManager` for accessing sensors.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#SERIAL_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/hardware/serial/SerialManager` for access to serial ports.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#SHORTCUT_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/content/pm/ShortcutManager` for accessing the launcher shortcut service.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#STATUS_BAR_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/StatusBarManager` for interacting with the status bar and quick settings.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#STORAGE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/os/storage/StorageManager` for accessing system storage
functions.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#STORAGE_STATS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/usage/StorageStatsManager` for accessing system storage
statistics.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#SYSTEM_HEALTH_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/os/health/SystemHealthManager` for accessing system health (battery, power,
memory, etc) metrics.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TELECOM_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/telecom/TelecomManager` to manage telecom-related features
of the device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TELEPHONY_IMS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve an
`https://developer.android.com/reference/android/telephony/ims/ImsManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TELEPHONY_PHONE_NUMBER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/telephony/PhoneNumberManager` for parsing phone numbers.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TELEPHONY_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/telephony/TelephonyManager` for handling management the
telephony features of the device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TELEPHONY_SUBSCRIPTION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/telephony/SubscriptionManager` for handling management the
telephony subscriptions of the device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TETHERING_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/net/TetheringManager`
for managing tethering functions.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TEXT_CLASSIFICATION_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/view/textclassifier/TextClassificationManager` for text classification services.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TEXT_SERVICES_MANAGER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/view/textservice/TextServicesManager` for accessing
text services.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TIME_MANAGER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/time/TimeManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TV_AD_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/media/tv/ad/TvAdManager` for interacting with TV client-side advertisement
services on the device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TV_INPUT_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/media/tv/TvInputManager` for interacting with TV inputs
on the device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#TV_INTERACTIVE_APP_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/media/tv/interactive/TvInteractiveAppManager` for interacting with TV
interactive applications on the device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#UI_MODE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/app/UiModeManager` for controlling UI modes.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#USAGE_STATS_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/app/usage/UsageStatsManager` for querying device usage stats.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#USB_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/hardware/usb/UsbManager` for access to USB devices (as a USB host)
and for controlling this device's behavior as a USB device.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#USER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/os/UserManager` for managing users on devices that support multiple users.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#VIBRATOR_MANAGER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/os/VibratorManager`
for accessing the device vibrators, interacting with individual ones and playing synchronized
effects on multiple vibrators.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#VIBRATOR_SERVICE`

*This constant was deprecated
in API level 31.
Use `https://developer.android.com/reference/android/os/VibratorManager` to retrieve the default system vibrator.*


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#VIRTUAL_DEVICE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/companion/virtual/VirtualDeviceManager` for managing virtual devices.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#VPN_MANAGEMENT_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/net/VpnManager` to
manage profiles for the platform built-in VPN.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#WALLPAPER_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
com.android.server.WallpaperService for accessing wallpapers.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#WEB_APP_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/content/pm/webapp/WebAppManager`.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#WIFI_AWARE_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/net/wifi/aware/WifiAwareManager` for handling management of
Wi-Fi Aware.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#WIFI_P2P_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager` for handling management of
Wi-Fi peer-to-peer connections.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#WIFI_RTT_RANGING_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/net/wifi/rtt/WifiRttManager` for ranging devices with wifi.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#WIFI_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a `https://developer.android.com/reference/android/net/wifi/WifiManager` for handling management of
Wi-Fi access.


`https://developer.android.com/reference/java/lang/String` `https://developer.android.com/reference/android/content/Context#WINDOW_SERVICE`

Use with `https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)` to retrieve a
`https://developer.android.com/reference/android/view/WindowManager` for accessing the system's window
manager.


| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/app/backup/BackupAgent#BackupAgent()() ` |

| ### Public methods ||
|---|---|
| ` final void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#fullBackupFile(java.io.File,%20android.app.backup.FullBackupDataOutput)(https://developer.android.com/reference/java/io/File file, https://developer.android.com/reference/android/app/backup/FullBackupDataOutput output) ` Write an entire file as part of a full-backup operation. |
| ` abstract void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onBackup(android.os.ParcelFileDescriptor,%20android.app.backup.BackupDataOutput,%20android.os.ParcelFileDescriptor)(https://developer.android.com/reference/android/os/ParcelFileDescriptor oldState, https://developer.android.com/reference/android/app/backup/BackupDataOutput data, https://developer.android.com/reference/android/os/ParcelFileDescriptor newState) ` The application is being asked to write any data changed since the last time it performed a backup operation. |
| ` void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onCreate()() ` Provided as a convenience for agent implementations that need an opportunity to do one-time initialization before the actual backup or restore operation is begun. |
| ` void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onDestroy()() ` Provided as a convenience for agent implementations that need to do some sort of shutdown process after backup or restore is completed. |
| ` long` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onEstimateFullBackupBytes(long,%20int)(long quotaBytes, int transportFlags) ` Estimate how much data in bytes a full backup will deliver. |
| ` void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onFullBackup(android.app.backup.FullBackupDataOutput)(https://developer.android.com/reference/android/app/backup/FullBackupDataOutput data) ` The application is having its entire file system contents backed up. |
| ` void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onQuotaExceeded(long,%20long)(long backupDataBytes, long quotaBytes) ` Notification that the application's current backup operation causes it to exceed the maximum size permitted by the transport. |
| ` abstract void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)(https://developer.android.com/reference/android/app/backup/BackupDataInput data, int appVersionCode, https://developer.android.com/reference/android/os/ParcelFileDescriptor newState) ` The application is being restored from backup and should replace any existing data with the contents of the backup. |
| ` void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20long,%20android.os.ParcelFileDescriptor)(https://developer.android.com/reference/android/app/backup/BackupDataInput data, long appVersionCode, https://developer.android.com/reference/android/os/ParcelFileDescriptor newState) ` New version of `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)` that handles a long app version code. |
| ` void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onRestoreFile(android.os.ParcelFileDescriptor,%20long,%20java.io.File,%20int,%20long,%20long)(https://developer.android.com/reference/android/os/ParcelFileDescriptor data, long size, https://developer.android.com/reference/java/io/File destination, int type, long mode, long mtime) ` Handle the data delivered via the given file descriptor during a full restore operation. |
| ` void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onRestoreFile(android.app.backup.FullRestoreDataInput)(https://developer.android.com/reference/android/app/backup/FullRestoreDataInput data) ` Handle the data delivered via the given file descriptor during a full restore operation. |
| ` void` | ` https://developer.android.com/reference/android/app/backup/BackupAgent#onRestoreFinished()() ` The application's restore operation has completed. |

### Inherited methods

From class `

https://developer.android.com/reference/android/content/ContextWrapper

` `


void` `
https://developer.android.com/reference/android/content/ContextWrapper#attachBaseContext(android.content.Context)(https://developer.android.com/reference/android/content/Context base)
`

Set the base context for this ContextWrapper.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#bindIsolatedService(android.content.Intent,%20int,%20java.lang.String,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)(https://developer.android.com/reference/android/content/Intent service, int flags, https://developer.android.com/reference/java/lang/String instanceName, https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/android/content/ServiceConnection conn)
`

Variation of `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.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` `
https://developer.android.com/reference/android/content/ContextWrapper#bindService(android.content.Intent,%20int,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)(https://developer.android.com/reference/android/content/Intent service, int flags, https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/android/content/ServiceConnection conn)
`

Same as `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int)` with executor to control ServiceConnection
callbacks.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#bindService(android.content.Intent,%20android.content.ServiceConnection,%20android.content.Context.BindServiceFlags)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/ServiceConnection conn, https://developer.android.com/reference/android/content/Context.BindServiceFlags flags)
`

See `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int)`
Call `https://developer.android.com/reference/android/content/Context.BindServiceFlags#of(long)` to obtain a BindServiceFlags object.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/ServiceConnection conn, int flags)
`

Connects to an application service, creating it if needed.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/Context.BindServiceFlags flags, https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/android/content/ServiceConnection conn)
`

See `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20int,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`
Call `https://developer.android.com/reference/android/content/Context.BindServiceFlags#of(long)` to obtain a BindServiceFlags object.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#bindServiceAsUser(android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/ServiceConnection conn, int flags, https://developer.android.com/reference/android/os/UserHandle user)
`

Binds to a service in the given `user` in the same manner as `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#bindServiceAsUser(android.content.Intent,%20android.content.ServiceConnection,%20android.content.Context.BindServiceFlags,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/ServiceConnection conn, https://developer.android.com/reference/android/content/Context.BindServiceFlags flags, https://developer.android.com/reference/android/os/UserHandle user)
`

See `https://developer.android.com/reference/android/content/Context#bindServiceAsUser(android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)`
Call `https://developer.android.com/reference/android/content/Context.BindServiceFlags#of(long)` to obtain a BindServiceFlags object.


`


int` `
https://developer.android.com/reference/android/content/ContextWrapper#checkCallingOrSelfPermission(java.lang.String)(https://developer.android.com/reference/java/lang/String permission)
`

Determine whether the calling process of an IPC *or you* have been
granted a particular permission.


`


int` `
https://developer.android.com/reference/android/content/ContextWrapper#checkCallingOrSelfUriPermission(android.net.Uri,%20int)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags)
`

Determine whether the calling process of an IPC *or you* has been granted
permission to access a specific URI.


`


int[]` `
https://developer.android.com/reference/android/content/ContextWrapper#checkCallingOrSelfUriPermissions(java.util.List<android.net.Uri>,%20int)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/net/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` `
https://developer.android.com/reference/android/content/ContextWrapper#checkCallingPermission(java.lang.String)(https://developer.android.com/reference/java/lang/String permission)
`

Determine whether the calling process of an IPC you are handling has been
granted a particular permission.


`


int` `
https://developer.android.com/reference/android/content/ContextWrapper#checkCallingUriPermission(android.net.Uri,%20int)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags)
`

Determine whether the calling process and uid has been
granted permission to access a specific URI.


`


int[]` `
https://developer.android.com/reference/android/content/ContextWrapper#checkCallingUriPermissions(java.util.List<android.net.Uri>,%20int)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/net/Uri> uris, int modeFlags)
`

Determine whether the calling process and uid has been
granted permission to access a list of URIs.


`


int` `
https://developer.android.com/reference/android/content/ContextWrapper#checkContentUriPermissionFull(android.net.Uri,%20int,%20int,%20int)(https://developer.android.com/reference/android/net/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` `
https://developer.android.com/reference/android/content/ContextWrapper#checkPermission(java.lang.String,%20int,%20int)(https://developer.android.com/reference/java/lang/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` `
https://developer.android.com/reference/android/content/ContextWrapper#checkSelfPermission(java.lang.String)(https://developer.android.com/reference/java/lang/String permission)
`

Determine whether *you* have been granted a particular permission.


`


int` `
https://developer.android.com/reference/android/content/ContextWrapper#checkUriPermission(android.net.Uri,%20java.lang.String,%20java.lang.String,%20int,%20int,%20int)(https://developer.android.com/reference/android/net/Uri uri, https://developer.android.com/reference/java/lang/String readPermission, https://developer.android.com/reference/java/lang/String writePermission, int pid, int uid, int modeFlags)
`

Check both a Uri and normal permission.


`


int` `
https://developer.android.com/reference/android/content/ContextWrapper#checkUriPermission(android.net.Uri,%20int,%20int,%20int)(https://developer.android.com/reference/android/net/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[]` `
https://developer.android.com/reference/android/content/ContextWrapper#checkUriPermissions(java.util.List<android.net.Uri>,%20int,%20int,%20int)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/net/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` `
https://developer.android.com/reference/android/content/ContextWrapper#clearWallpaper()()
`

*This method is deprecated.
Use `https://developer.android.com/reference/android/app/WallpaperManager#clear()` instead.*

*This method requires the caller to hold the permission
`https://developer.android.com/reference/android/Manifest.permission#SET_WALLPAPER`.*


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createAttributionContext(java.lang.String)(https://developer.android.com/reference/java/lang/String attributionTag)
`

Return a new Context object for the current Context but attribute to a different tag.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createConfigurationContext(android.content.res.Configuration)(https://developer.android.com/reference/android/content/res/Configuration overrideConfiguration)
`

Return a new Context object for the current Context but whose resources
are adjusted to match the given Configuration.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createContext(android.content.ContextParams)(https://developer.android.com/reference/android/content/ContextParams contextParams)
`

Creates a context with specific properties and behaviors.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createContextForSplit(java.lang.String)(https://developer.android.com/reference/java/lang/String splitName)
`

Return a new Context object for the given split name.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createDeviceContext(int)(int deviceId)
`

Returns a new `Context` object from the current context but with device association
given by the `deviceId`.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createDeviceProtectedStorageContext()()
`

Return a new Context object for the current Context but whose storage
APIs are backed by device-protected storage.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createDisplayContext(android.view.Display)(https://developer.android.com/reference/android/view/Display display)
`

Returns a new `Context` object from the current context but with resources
adjusted to match the metrics of `display`.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createPackageContext(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String packageName, int flags)
`

Return a new Context object for the given application name.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createWindowContext(int,%20android.os.Bundle)(int type, https://developer.android.com/reference/android/os/Bundle options)
`

Creates a Context for a non-activity window.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#createWindowContext(android.view.Display,%20int,%20android.os.Bundle)(https://developer.android.com/reference/android/view/Display display, int type, https://developer.android.com/reference/android/os/Bundle options)
`

Creates a `Context` for a non-`https://developer.android.com/reference/android/app/Activity` window on the given
`https://developer.android.com/reference/android/view/Display`.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/ContextWrapper#databaseList()()
`

Returns an array of strings naming the private databases associated with
this Context's application package.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#deleteDatabase(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Delete an existing private SQLiteDatabase associated with this Context's
application package.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#deleteFile(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Delete the given private file associated with this Context's
application package.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#deleteSharedPreferences(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Delete an existing shared preferences file.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#enforceCallingOrSelfPermission(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String permission, https://developer.android.com/reference/java/lang/String message)
`

If neither you nor the calling process of an IPC you are
handling has been granted a particular permission, throw a
`https://developer.android.com/reference/java/lang/SecurityException`.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#enforceCallingOrSelfUriPermission(android.net.Uri,%20int,%20java.lang.String)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags, https://developer.android.com/reference/java/lang/String message)
`

If the calling process of an IPC *or you* has not been
granted permission to access a specific URI, throw `https://developer.android.com/reference/java/lang/SecurityException`.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#enforceCallingPermission(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String permission, https://developer.android.com/reference/java/lang/String message)
`

If the calling process of an IPC you are handling has not been
granted a particular permission, throw a `https://developer.android.com/reference/java/lang/SecurityException`.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#enforceCallingUriPermission(android.net.Uri,%20int,%20java.lang.String)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags, https://developer.android.com/reference/java/lang/String message)
`

If the calling process and uid has not been granted
permission to access a specific URI, throw `https://developer.android.com/reference/java/lang/SecurityException`.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#enforcePermission(java.lang.String,%20int,%20int,%20java.lang.String)(https://developer.android.com/reference/java/lang/String permission, int pid, int uid, https://developer.android.com/reference/java/lang/String message)
`

If the given permission is not allowed for a particular process
and user ID running in the system, throw a `https://developer.android.com/reference/java/lang/SecurityException`.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#enforceUriPermission(android.net.Uri,%20java.lang.String,%20java.lang.String,%20int,%20int,%20int,%20java.lang.String)(https://developer.android.com/reference/android/net/Uri uri, https://developer.android.com/reference/java/lang/String readPermission, https://developer.android.com/reference/java/lang/String writePermission, int pid, int uid, int modeFlags, https://developer.android.com/reference/java/lang/String message)
`

Enforce both a Uri and normal permission.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#enforceUriPermission(android.net.Uri,%20int,%20int,%20int,%20java.lang.String)(https://developer.android.com/reference/android/net/Uri uri, int pid, int uid, int modeFlags, https://developer.android.com/reference/java/lang/String message)
`

If a particular process and uid has not been granted
permission to access a specific URI, throw `https://developer.android.com/reference/java/lang/SecurityException`.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/ContextWrapper#fileList()()
`

Returns an array of strings naming the private files associated with
this Context's application package.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#getApplicationContext()()
`

Return the context of the single, global Application object of the
current process.


`


https://developer.android.com/reference/android/content/pm/ApplicationInfo` `
https://developer.android.com/reference/android/content/ContextWrapper#getApplicationInfo()()
`

Return the full application info for this context's package.


`


https://developer.android.com/reference/android/content/res/AssetManager` `
https://developer.android.com/reference/android/content/ContextWrapper#getAssets()()
`

Returns an AssetManager instance for the application's package.


`


https://developer.android.com/reference/android/content/AttributionSource` `
https://developer.android.com/reference/android/content/ContextWrapper#getAttributionSource()()
`


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/ContextWrapper#getAttributionTag()()
`

<br />

Attribution can be used in complex apps to logically separate parts of the app.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/ContextWrapper#getBaseContext()()
` `


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getCacheDir()()
`

Returns the absolute path to the application specific cache directory on
the filesystem.


`


https://developer.android.com/reference/java/lang/ClassLoader` `
https://developer.android.com/reference/android/content/ContextWrapper#getClassLoader()()
`

Return a class loader you can use to retrieve classes in this package.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getCodeCacheDir()()
`

Returns the absolute path to the application specific cache directory on
the filesystem designed for storing cached code.


`


https://developer.android.com/reference/android/content/ContentResolver` `
https://developer.android.com/reference/android/content/ContextWrapper#getContentResolver()()
`

Return a ContentResolver instance for your application's package.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getDataDir()()
`

Returns the absolute path to the directory on the filesystem where all
private files belonging to this app are stored.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getDatabasePath(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Returns the absolute path on the filesystem where a database created with
`https://developer.android.com/reference/android/content/Context#openOrCreateDatabase(java.lang.String,%20int,%20android.database.sqlite.SQLiteDatabase.CursorFactory)` is stored.


`


int` `
https://developer.android.com/reference/android/content/ContextWrapper#getDeviceId()()
`

Gets the device ID this context is associated with.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getDir(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String name, int mode)
`

Retrieve, creating if needed, a new directory in which the application
can place its own custom data files.


`


https://developer.android.com/reference/android/view/Display` `
https://developer.android.com/reference/android/content/ContextWrapper#getDisplay()()
`

Get the display this context is associated with.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getExternalCacheDir()()
`

Returns absolute path to application-specific directory on the primary
shared/external storage device where the application can place cache
files it owns.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getExternalCacheDirs()()
`

Returns absolute paths to application-specific directories on all
shared/external storage devices where the application can place cache
files it owns.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getExternalFilesDir(java.lang.String)(https://developer.android.com/reference/java/lang/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.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getExternalFilesDirs(java.lang.String)(https://developer.android.com/reference/java/lang/String type)
`

Returns absolute paths to application-specific directories on all
shared/external storage devices where the application can place
persistent files it owns.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getExternalMediaDirs()()
`

*This method is deprecated.
These directories still exist and are scanned, but developers
are encouraged to migrate to inserting content into a
`https://developer.android.com/reference/android/provider/MediaStore` collection directly, as any app can
contribute new media to `https://developer.android.com/reference/android/provider/MediaStore` with no
permissions required, starting in
`https://developer.android.com/reference/android/os/Build.VERSION_CODES#Q`.*


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getFileStreamPath(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Returns the absolute path on the filesystem where a file created with
`https://developer.android.com/reference/android/content/Context#openFileOutput(java.lang.String,%20int)` is stored.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getFilesDir()()
`

Returns the absolute path to the directory on the filesystem where files
created with `https://developer.android.com/reference/android/content/Context#openFileOutput(java.lang.String,%20int)` are stored.


`


https://developer.android.com/reference/java/util/concurrent/Executor` `
https://developer.android.com/reference/android/content/ContextWrapper#getMainExecutor()()
`

Return an `https://developer.android.com/reference/java/util/concurrent/Executor` that will run enqueued tasks on the main
thread associated with this context.


`


https://developer.android.com/reference/android/os/Looper` `
https://developer.android.com/reference/android/content/ContextWrapper#getMainLooper()()
`

Return the Looper for the main thread of the current process.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getNoBackupFilesDir()()
`

Returns the absolute path to the directory on the filesystem similar to
`https://developer.android.com/reference/android/content/Context#getFilesDir()`.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#getObbDir()()
`

Return the primary shared/external storage directory where this
application's OBB files (if there are any) can be found.


`


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/ContextWrapper#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.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/ContextWrapper#getOpPackageName()()
`

Return the package name that should be used for `https://developer.android.com/reference/android/app/AppOpsManager` calls from
this context, so that app ops manager's uid verification will work with the name.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/ContextWrapper#getPackageCodePath()()
`

Return the full path to this context's primary Android package.


`


https://developer.android.com/reference/android/content/pm/PackageManager` `
https://developer.android.com/reference/android/content/ContextWrapper#getPackageManager()()
`

Return PackageManager instance to find global package information.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/ContextWrapper#getPackageName()()
`

Return the name of this application's package.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/ContextWrapper#getPackageResourcePath()()
`

Return the full path to this context's primary Android package.


`


https://developer.android.com/reference/android/content/ContextParams` `
https://developer.android.com/reference/android/content/ContextWrapper#getParams()()
`

Return the set of parameters which this Context was created with, if it
was created via `https://developer.android.com/reference/android/content/Context#createContext(android.content.ContextParams)`.


`


https://developer.android.com/reference/android/content/res/Resources` `
https://developer.android.com/reference/android/content/ContextWrapper#getResources()()
`

Returns a Resources instance for the application's package.


`


https://developer.android.com/reference/android/content/SharedPreferences` `
https://developer.android.com/reference/android/content/ContextWrapper#getSharedPreferences(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/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.


`


https://developer.android.com/reference/java/lang/Object` `
https://developer.android.com/reference/android/content/ContextWrapper#getSystemService(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Return the handle to a system-level service by name.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/ContextWrapper#getSystemServiceName(java.lang.Class<?>)(https://developer.android.com/reference/java/lang/Class<?> serviceClass)
`

Gets the name of the system-level service that is represented by the specified class.


`


https://developer.android.com/reference/android/content/res/Resources.Theme` `
https://developer.android.com/reference/android/content/ContextWrapper#getTheme()()
`

Return the Theme object associated with this Context.


`


https://developer.android.com/reference/android/graphics/drawable/Drawable` `
https://developer.android.com/reference/android/content/ContextWrapper#getWallpaper()()
`

*This method is deprecated.
Use `https://developer.android.com/reference/android/app/WallpaperManager#getDrawable()` instead.*


`


int` `
https://developer.android.com/reference/android/content/ContextWrapper#getWallpaperDesiredMinimumHeight()()
`

*This method is deprecated.
Use `https://developer.android.com/reference/android/app/WallpaperManager#getDesiredMinimumHeight()` instead.*


`


int` `
https://developer.android.com/reference/android/content/ContextWrapper#getWallpaperDesiredMinimumWidth()()
`

*This method is deprecated.
Use `https://developer.android.com/reference/android/app/WallpaperManager#getDesiredMinimumWidth()` instead.*


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#grantUriPermission(java.lang.String,%20android.net.Uri,%20int)(https://developer.android.com/reference/java/lang/String toPackage, https://developer.android.com/reference/android/net/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` `
https://developer.android.com/reference/android/content/ContextWrapper#isDeviceProtectedStorage()()
`

Indicates if the storage APIs of this Context are backed by
device-protected storage.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#isRestricted()()
`

Indicates whether this Context is restricted.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#isUiContext()()
`

Returns `true` if the context is a UI context which can access UI components such as
`https://developer.android.com/reference/android/view/WindowManager`, `https://developer.android.com/reference/android/view/LayoutInflater` or
`https://developer.android.com/reference/android/app/WallpaperManager`.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#moveDatabaseFrom(android.content.Context,%20java.lang.String)(https://developer.android.com/reference/android/content/Context sourceContext, https://developer.android.com/reference/java/lang/String name)
`

Move an existing database file from the given source storage context to
this context.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#moveSharedPreferencesFrom(android.content.Context,%20java.lang.String)(https://developer.android.com/reference/android/content/Context sourceContext, https://developer.android.com/reference/java/lang/String name)
`

Move an existing shared preferences file from the given source storage
context to this context.


`


https://developer.android.com/reference/java/io/FileInputStream` `
https://developer.android.com/reference/android/content/ContextWrapper#openFileInput(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Open a private file associated with this Context's application package
for reading.


`


https://developer.android.com/reference/java/io/FileOutputStream` `
https://developer.android.com/reference/android/content/ContextWrapper#openFileOutput(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String name, int mode)
`

Open a private file associated with this Context's application package
for writing.


`


https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase` `
https://developer.android.com/reference/android/content/ContextWrapper#openOrCreateDatabase(java.lang.String,%20int,%20android.database.sqlite.SQLiteDatabase.CursorFactory,%20android.database.DatabaseErrorHandler)(https://developer.android.com/reference/java/lang/String name, int mode, https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.CursorFactory factory, https://developer.android.com/reference/android/database/DatabaseErrorHandler errorHandler)
`

Open a new private SQLiteDatabase associated with this Context's
application package.


`


https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase` `
https://developer.android.com/reference/android/content/ContextWrapper#openOrCreateDatabase(java.lang.String,%20int,%20android.database.sqlite.SQLiteDatabase.CursorFactory)(https://developer.android.com/reference/java/lang/String name, int mode, https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.CursorFactory factory)
`

Open a new private SQLiteDatabase associated with this Context's
application package.


`


https://developer.android.com/reference/android/graphics/drawable/Drawable` `
https://developer.android.com/reference/android/content/ContextWrapper#peekWallpaper()()
`

*This method is deprecated.
Use `https://developer.android.com/reference/android/app/WallpaperManager#peekDrawable()` instead.*


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#rebindService(android.content.ServiceConnection,%20android.content.Context.BindServiceFlags)(https://developer.android.com/reference/android/content/ServiceConnection conn, https://developer.android.com/reference/android/content/Context.BindServiceFlags flags)
`

Rebind an application service with updated bind service flags


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#registerComponentCallbacks(android.content.ComponentCallbacks)(https://developer.android.com/reference/android/content/ComponentCallbacks callback)
`

Add a new `https://developer.android.com/reference/android/content/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` `
https://developer.android.com/reference/android/content/ContextWrapper#registerDeviceIdChangeListener(java.util.concurrent.Executor,%20java.util.function.IntConsumer)(https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/java/util/function/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.


`


https://developer.android.com/reference/android/content/Intent` `
https://developer.android.com/reference/android/content/ContextWrapper#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver, https://developer.android.com/reference/android/content/IntentFilter filter)
`

Register a BroadcastReceiver to be run in the main activity thread.


`


https://developer.android.com/reference/android/content/Intent` `
https://developer.android.com/reference/android/content/ContextWrapper#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter,%20int)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver, https://developer.android.com/reference/android/content/IntentFilter filter, int flags)
`

Register to receive intent broadcasts, with the receiver optionally being
exposed to Instant Apps.


`


https://developer.android.com/reference/android/content/Intent` `
https://developer.android.com/reference/android/content/ContextWrapper#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter,%20java.lang.String,%20android.os.Handler,%20int)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver, https://developer.android.com/reference/android/content/IntentFilter filter, https://developer.android.com/reference/java/lang/String broadcastPermission, https://developer.android.com/reference/android/os/Handler scheduler, int flags)
`

Register to receive intent broadcasts, to run in the context of
<var translate="no">scheduler</var>.


`


https://developer.android.com/reference/android/content/Intent` `
https://developer.android.com/reference/android/content/ContextWrapper#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter,%20java.lang.String,%20android.os.Handler)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver, https://developer.android.com/reference/android/content/IntentFilter filter, https://developer.android.com/reference/java/lang/String broadcastPermission, https://developer.android.com/reference/android/os/Handler scheduler)
`

Register to receive intent broadcasts, to run in the context of
<var translate="no">scheduler</var>.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#removeStickyBroadcast(android.content.Intent)(https://developer.android.com/reference/android/content/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` `
https://developer.android.com/reference/android/content/ContextWrapper#removeStickyBroadcastAsUser(android.content.Intent,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/ContextWrapper#revokeSelfPermissionsOnKill(java.util.Collection<java.lang.String>)(https://developer.android.com/reference/java/util/Collection<https://developer.android.com/reference/java/lang/String> permissions)
`

Triggers the revocation of one or more permissions for the calling package.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#revokeUriPermission(android.net.Uri,%20int)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags)
`

Remove all permissions to access a particular content provider Uri
that were previously added with `https://developer.android.com/reference/android/content/Context#grantUriPermission(java.lang.String,%20android.net.Uri,%20int)` or *any other* mechanism.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#revokeUriPermission(java.lang.String,%20android.net.Uri,%20int)(https://developer.android.com/reference/java/lang/String targetPackage, https://developer.android.com/reference/android/net/Uri uri, int modeFlags)
`

Remove permissions to access a particular content provider Uri
that were previously added with `https://developer.android.com/reference/android/content/Context#grantUriPermission(java.lang.String,%20android.net.Uri,%20int)` for a specific target
package.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendBroadcast(android.content.Intent,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/os/Bundle options)
`

Broadcast the given intent to all interested BroadcastReceivers, allowing
an optional required permission to be enforced.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendBroadcast(android.content.Intent,%20java.lang.String)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission)
`

Broadcast the given intent to all interested BroadcastReceivers, allowing
an optional required permission to be enforced.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendBroadcast(android.content.Intent)(https://developer.android.com/reference/android/content/Intent intent)
`

Broadcast the given intent to all interested BroadcastReceivers.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendBroadcastAsUser(android.content.Intent,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/UserHandle user)
`

Version of `https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent)` that allows you to specify the
user the broadcast will be sent to.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendBroadcastAsUser(android.content.Intent,%20android.os.UserHandle,%20java.lang.String)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/UserHandle user, https://developer.android.com/reference/java/lang/String receiverPermission)
`

Version of `https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent,%20java.lang.String)` that allows you to specify the
user the broadcast will be sent to.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/java/lang/String receiverAppOp, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/Bundle initialExtras)
`

Version of
`https://developer.android.com/reference/android/content/Context#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)` that allows you to specify the App Op to enforce restrictions on which receivers
the broadcast will be sent to.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendOrderedBroadcast(android.content.Intent,%20int,%20java.lang.String,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20java.lang.String,%20android.os.Bundle,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, int initialCode, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/java/lang/String receiverAppOp, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/Bundle initialExtras, https://developer.android.com/reference/android/os/Bundle options)
`


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/Bundle initialExtras)
`

Version of `https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent)` that allows you to
receive data back from the broadcast.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/ContextWrapper#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.os.Bundle,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/os/Bundle options, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/Bundle initialExtras)
`

Version of `https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent)` that allows you to
receive data back from the broadcast.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendOrderedBroadcast(android.content.Intent,%20java.lang.String)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/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` `
https://developer.android.com/reference/android/content/ContextWrapper#sendOrderedBroadcastAsUser(android.content.Intent,%20android.os.UserHandle,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/UserHandle user, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/Bundle initialExtras)
`

Version of
`https://developer.android.com/reference/android/content/Context#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)`
that allows you to specify the
user the broadcast will be sent to.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#sendStickyBroadcast(android.content.Intent)(https://developer.android.com/reference/android/content/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` `
https://developer.android.com/reference/android/content/ContextWrapper#sendStickyBroadcast(android.content.Intent,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/ContextWrapper#sendStickyBroadcastAsUser(android.content.Intent,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/ContextWrapper#sendStickyOrderedBroadcast(android.content.Intent,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/ContextWrapper#sendStickyOrderedBroadcastAsUser(android.content.Intent,%20android.os.UserHandle,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/UserHandle user, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/ContextWrapper#setTheme(int)(int resid)
`

Set the base theme for this context.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#setWallpaper(android.graphics.Bitmap)(https://developer.android.com/reference/android/graphics/Bitmap bitmap)
`

*This method is deprecated.
Use `https://developer.android.com/reference/android/app/WallpaperManager#setBitmap(android.graphics.Bitmap)` instead.*

*This method requires the caller to hold the permission
`https://developer.android.com/reference/android/Manifest.permission#SET_WALLPAPER`.*


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#setWallpaper(java.io.InputStream)(https://developer.android.com/reference/java/io/InputStream data)
`

*This method is deprecated.
Use `https://developer.android.com/reference/android/app/WallpaperManager#setStream(java.io.InputStream)` instead.*

*This method requires the caller to hold the permission
`https://developer.android.com/reference/android/Manifest.permission#SET_WALLPAPER`.*


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#shouldShowRequestPermissionRationale(java.lang.String)(https://developer.android.com/reference/java/lang/String permission)
`

Gets whether you should show UI with rationale before requesting a permission.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#startActivities(android.content.Intent[],%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intents, https://developer.android.com/reference/android/os/Bundle options)
`

Launch multiple new activities.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#startActivities(android.content.Intent[])(https://developer.android.com/reference/android/content/Intent intents)
`

Same as `https://developer.android.com/reference/android/content/Context#startActivities(android.content.Intent[],%20android.os.Bundle)` with no options
specified.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#startActivity(android.content.Intent)(https://developer.android.com/reference/android/content/Intent intent)
`

Same as `https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent,%20android.os.Bundle)` with no options
specified.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#startActivity(android.content.Intent,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/Bundle options)
`

Launch a new activity.


`


https://developer.android.com/reference/android/content/ComponentName` `
https://developer.android.com/reference/android/content/ContextWrapper#startForegroundService(android.content.Intent)(https://developer.android.com/reference/android/content/Intent service)
`

Similar to `https://developer.android.com/reference/android/content/Context#startService(android.content.Intent)`, but with an implicit promise that the
Service will call `https://developer.android.com/reference/android/app/Service#startForeground(int,%20android.app.Notification)` once it begins running.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#startInstrumentation(android.content.ComponentName,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/ComponentName className, https://developer.android.com/reference/java/lang/String profileFile, https://developer.android.com/reference/android/os/Bundle arguments)
`

Start executing an `https://developer.android.com/reference/android/app/Instrumentation` class.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#startIntentSender(android.content.IntentSender,%20android.content.Intent,%20int,%20int,%20int)(https://developer.android.com/reference/android/content/IntentSender intent, https://developer.android.com/reference/android/content/Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)
`

Same as `https://developer.android.com/reference/android/content/Context#startIntentSender(android.content.IntentSender,%20android.content.Intent,%20int,%20int,%20int,%20android.os.Bundle)`
with no options specified.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#startIntentSender(android.content.IntentSender,%20android.content.Intent,%20int,%20int,%20int,%20android.os.Bundle)(https://developer.android.com/reference/android/content/IntentSender intent, https://developer.android.com/reference/android/content/Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, https://developer.android.com/reference/android/os/Bundle options)
`

Like `https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent,%20android.os.Bundle)`, but taking a IntentSender
to start.


`


https://developer.android.com/reference/android/content/ComponentName` `
https://developer.android.com/reference/android/content/ContextWrapper#startService(android.content.Intent)(https://developer.android.com/reference/android/content/Intent service)
`

Request that a given application service be started.


`


boolean` `
https://developer.android.com/reference/android/content/ContextWrapper#stopService(android.content.Intent)(https://developer.android.com/reference/android/content/Intent name)
`

Request that a given application service be stopped.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#unbindService(android.content.ServiceConnection)(https://developer.android.com/reference/android/content/ServiceConnection conn)
`

Disconnect from an application service.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#unregisterComponentCallbacks(android.content.ComponentCallbacks)(https://developer.android.com/reference/android/content/ComponentCallbacks callback)
`

Remove a `https://developer.android.com/reference/android/content/ComponentCallbacks` object that was previously registered
with `https://developer.android.com/reference/android/content/ContextWrapper#registerComponentCallbacks(android.content.ComponentCallbacks)`.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#unregisterDeviceIdChangeListener(java.util.function.IntConsumer)(https://developer.android.com/reference/java/util/function/IntConsumer listener)
`

Removes a device ID changed listener from the Context.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#unregisterReceiver(android.content.BroadcastReceiver)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver)
`

Unregister a previously registered BroadcastReceiver.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#updateServiceBindings(java.util.Collection<android.content.Context.UpdateBindingParams>)(https://developer.android.com/reference/java/util/Collection<https://developer.android.com/reference/android/content/Context.UpdateBindingParams> params)
`

Perform a batch update of existing bindings.


`


void` `
https://developer.android.com/reference/android/content/ContextWrapper#updateServiceGroup(android.content.ServiceConnection,%20int,%20int)(https://developer.android.com/reference/android/content/ServiceConnection conn, int group, int importance)
`

For a service previously bound with `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)` or a related method, change
how the system manages that service's process in relation to other processes.


From class `

https://developer.android.com/reference/android/content/Context

` `


boolean` `
https://developer.android.com/reference/android/content/Context#bindIsolatedService(android.content.Intent,%20int,%20java.lang.String,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)(https://developer.android.com/reference/android/content/Intent service, int flags, https://developer.android.com/reference/java/lang/String instanceName, https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/android/content/ServiceConnection conn)
`

Variation of `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.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` `
https://developer.android.com/reference/android/content/Context#bindIsolatedService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.lang.String,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/Context.BindServiceFlags flags, https://developer.android.com/reference/java/lang/String instanceName, https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/android/content/ServiceConnection conn)
`

See `https://developer.android.com/reference/android/content/Context#bindIsolatedService(android.content.Intent,%20int,%20java.lang.String,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`
Call `https://developer.android.com/reference/android/content/Context.BindServiceFlags#of(long)` to obtain a BindServiceFlags object.


`


boolean` `
https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20int,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)(https://developer.android.com/reference/android/content/Intent service, int flags, https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/android/content/ServiceConnection conn)
`

Same as `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int)` with executor to control ServiceConnection
callbacks.


`


boolean` `
https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.ServiceConnection,%20android.content.Context.BindServiceFlags)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/ServiceConnection conn, https://developer.android.com/reference/android/content/Context.BindServiceFlags flags)
`

See `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int)`
Call `https://developer.android.com/reference/android/content/Context.BindServiceFlags#of(long)` to obtain a BindServiceFlags object.


`
abstract


boolean` `
https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/ServiceConnection conn, int flags)
`

Connects to an application service, creating it if needed.


`


boolean` `
https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/Context.BindServiceFlags flags, https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/android/content/ServiceConnection conn)
`

See `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20int,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`
Call `https://developer.android.com/reference/android/content/Context.BindServiceFlags#of(long)` to obtain a BindServiceFlags object.


`


boolean` `
https://developer.android.com/reference/android/content/Context#bindServiceAsUser(android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/ServiceConnection conn, int flags, https://developer.android.com/reference/android/os/UserHandle user)
`

Binds to a service in the given `user` in the same manner as `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)`.


`


boolean` `
https://developer.android.com/reference/android/content/Context#bindServiceAsUser(android.content.Intent,%20android.content.ServiceConnection,%20android.content.Context.BindServiceFlags,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent service, https://developer.android.com/reference/android/content/ServiceConnection conn, https://developer.android.com/reference/android/content/Context.BindServiceFlags flags, https://developer.android.com/reference/android/os/UserHandle user)
`

See `https://developer.android.com/reference/android/content/Context#bindServiceAsUser(android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)`
Call `https://developer.android.com/reference/android/content/Context.BindServiceFlags#of(long)` to obtain a BindServiceFlags object.


`
abstract


int` `
https://developer.android.com/reference/android/content/Context#checkCallingOrSelfPermission(java.lang.String)(https://developer.android.com/reference/java/lang/String permission)
`

Determine whether the calling process of an IPC *or you* have been
granted a particular permission.


`
abstract


int` `
https://developer.android.com/reference/android/content/Context#checkCallingOrSelfUriPermission(android.net.Uri,%20int)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags)
`

Determine whether the calling process of an IPC *or you* has been granted
permission to access a specific URI.


`


int[]` `
https://developer.android.com/reference/android/content/Context#checkCallingOrSelfUriPermissions(java.util.List<android.net.Uri>,%20int)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/net/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` `
https://developer.android.com/reference/android/content/Context#checkCallingPermission(java.lang.String)(https://developer.android.com/reference/java/lang/String permission)
`

Determine whether the calling process of an IPC you are handling has been
granted a particular permission.


`
abstract


int` `
https://developer.android.com/reference/android/content/Context#checkCallingUriPermission(android.net.Uri,%20int)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags)
`

Determine whether the calling process and uid has been
granted permission to access a specific URI.


`


int[]` `
https://developer.android.com/reference/android/content/Context#checkCallingUriPermissions(java.util.List<android.net.Uri>,%20int)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/net/Uri> uris, int modeFlags)
`

Determine whether the calling process and uid has been
granted permission to access a list of URIs.


`


int` `
https://developer.android.com/reference/android/content/Context#checkContentUriPermissionFull(android.net.Uri,%20int,%20int,%20int)(https://developer.android.com/reference/android/net/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` `
https://developer.android.com/reference/android/content/Context#checkPermission(java.lang.String,%20int,%20int)(https://developer.android.com/reference/java/lang/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` `
https://developer.android.com/reference/android/content/Context#checkSelfPermission(java.lang.String)(https://developer.android.com/reference/java/lang/String permission)
`

Determine whether *you* have been granted a particular permission.


`
abstract


int` `
https://developer.android.com/reference/android/content/Context#checkUriPermission(android.net.Uri,%20java.lang.String,%20java.lang.String,%20int,%20int,%20int)(https://developer.android.com/reference/android/net/Uri uri, https://developer.android.com/reference/java/lang/String readPermission, https://developer.android.com/reference/java/lang/String writePermission, int pid, int uid, int modeFlags)
`

Check both a Uri and normal permission.


`
abstract


int` `
https://developer.android.com/reference/android/content/Context#checkUriPermission(android.net.Uri,%20int,%20int,%20int)(https://developer.android.com/reference/android/net/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[]` `
https://developer.android.com/reference/android/content/Context#checkUriPermissions(java.util.List<android.net.Uri>,%20int,%20int,%20int)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/net/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` `
https://developer.android.com/reference/android/content/Context#clearWallpaper()()
`

*This method was deprecated
in API level 15.
Use `https://developer.android.com/reference/android/app/WallpaperManager#clear()` instead.*

*This method requires the caller to hold the permission
`https://developer.android.com/reference/android/Manifest.permission#SET_WALLPAPER`.*


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createAttributionContext(java.lang.String)(https://developer.android.com/reference/java/lang/String attributionTag)
`

Return a new Context object for the current Context but attribute to a different tag.


`
abstract


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createConfigurationContext(android.content.res.Configuration)(https://developer.android.com/reference/android/content/res/Configuration overrideConfiguration)
`

Return a new Context object for the current Context but whose resources
are adjusted to match the given Configuration.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createContext(android.content.ContextParams)(https://developer.android.com/reference/android/content/ContextParams contextParams)
`

Creates a context with specific properties and behaviors.


`
abstract


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createContextForSplit(java.lang.String)(https://developer.android.com/reference/java/lang/String splitName)
`

Return a new Context object for the given split name.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createDeviceContext(int)(int deviceId)
`

Returns a new `Context` object from the current context but with device association
given by the `deviceId`.


`
abstract


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createDeviceProtectedStorageContext()()
`

Return a new Context object for the current Context but whose storage
APIs are backed by device-protected storage.


`
abstract


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createDisplayContext(android.view.Display)(https://developer.android.com/reference/android/view/Display display)
`

Returns a new `Context` object from the current context but with resources
adjusted to match the metrics of `display`.


`
abstract


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createPackageContext(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String packageName, int flags)
`

Return a new Context object for the given application name.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createWindowContext(int,%20android.os.Bundle)(int type, https://developer.android.com/reference/android/os/Bundle options)
`

Creates a Context for a non-activity window.


`


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#createWindowContext(android.view.Display,%20int,%20android.os.Bundle)(https://developer.android.com/reference/android/view/Display display, int type, https://developer.android.com/reference/android/os/Bundle options)
`

Creates a `Context` for a non-`https://developer.android.com/reference/android/app/Activity` window on the given
`https://developer.android.com/reference/android/view/Display`.


`
abstract


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#databaseList()()
`

Returns an array of strings naming the private databases associated with
this Context's application package.


`
abstract


boolean` `
https://developer.android.com/reference/android/content/Context#deleteDatabase(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Delete an existing private SQLiteDatabase associated with this Context's
application package.


`
abstract


boolean` `
https://developer.android.com/reference/android/content/Context#deleteFile(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Delete the given private file associated with this Context's
application package.


`
abstract


boolean` `
https://developer.android.com/reference/android/content/Context#deleteSharedPreferences(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Delete an existing shared preferences file.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#enforceCallingOrSelfPermission(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String permission, https://developer.android.com/reference/java/lang/String message)
`

If neither you nor the calling process of an IPC you are
handling has been granted a particular permission, throw a
`https://developer.android.com/reference/java/lang/SecurityException`.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#enforceCallingOrSelfUriPermission(android.net.Uri,%20int,%20java.lang.String)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags, https://developer.android.com/reference/java/lang/String message)
`

If the calling process of an IPC *or you* has not been
granted permission to access a specific URI, throw `https://developer.android.com/reference/java/lang/SecurityException`.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#enforceCallingPermission(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String permission, https://developer.android.com/reference/java/lang/String message)
`

If the calling process of an IPC you are handling has not been
granted a particular permission, throw a `https://developer.android.com/reference/java/lang/SecurityException`.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#enforceCallingUriPermission(android.net.Uri,%20int,%20java.lang.String)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags, https://developer.android.com/reference/java/lang/String message)
`

If the calling process and uid has not been granted
permission to access a specific URI, throw `https://developer.android.com/reference/java/lang/SecurityException`.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#enforcePermission(java.lang.String,%20int,%20int,%20java.lang.String)(https://developer.android.com/reference/java/lang/String permission, int pid, int uid, https://developer.android.com/reference/java/lang/String message)
`

If the given permission is not allowed for a particular process
and user ID running in the system, throw a `https://developer.android.com/reference/java/lang/SecurityException`.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#enforceUriPermission(android.net.Uri,%20java.lang.String,%20java.lang.String,%20int,%20int,%20int,%20java.lang.String)(https://developer.android.com/reference/android/net/Uri uri, https://developer.android.com/reference/java/lang/String readPermission, https://developer.android.com/reference/java/lang/String writePermission, int pid, int uid, int modeFlags, https://developer.android.com/reference/java/lang/String message)
`

Enforce both a Uri and normal permission.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#enforceUriPermission(android.net.Uri,%20int,%20int,%20int,%20java.lang.String)(https://developer.android.com/reference/android/net/Uri uri, int pid, int uid, int modeFlags, https://developer.android.com/reference/java/lang/String message)
`

If a particular process and uid has not been granted
permission to access a specific URI, throw `https://developer.android.com/reference/java/lang/SecurityException`.


`
abstract


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#fileList()()
`

Returns an array of strings naming the private files associated with
this Context's application package.


`
abstract


https://developer.android.com/reference/android/content/Context` `
https://developer.android.com/reference/android/content/Context#getApplicationContext()()
`

Return the context of the single, global Application object of the
current process.


`
abstract


https://developer.android.com/reference/android/content/pm/ApplicationInfo` `
https://developer.android.com/reference/android/content/Context#getApplicationInfo()()
`

Return the full application info for this context's package.


`
abstract


https://developer.android.com/reference/android/content/res/AssetManager` `
https://developer.android.com/reference/android/content/Context#getAssets()()
`

Returns an AssetManager instance for the application's package.


`


https://developer.android.com/reference/android/content/AttributionSource` `
https://developer.android.com/reference/android/content/Context#getAttributionSource()()
` `


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#getAttributionTag()()
`

<br />

Attribution can be used in complex apps to logically separate parts of the app.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getCacheDir()()
`

Returns the absolute path to the application specific cache directory on
the filesystem.


`
abstract


https://developer.android.com/reference/java/lang/ClassLoader` `
https://developer.android.com/reference/android/content/Context#getClassLoader()()
`

Return a class loader you can use to retrieve classes in this package.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getCodeCacheDir()()
`

Returns the absolute path to the application specific cache directory on
the filesystem designed for storing cached code.


`


final

int` `
https://developer.android.com/reference/android/content/Context#getColor(int)(int id)
`

Returns a color associated with a particular resource ID and styled for
the current theme.


`


final

https://developer.android.com/reference/android/content/res/ColorStateList` `
https://developer.android.com/reference/android/content/Context#getColorStateList(int)(int id)
`

Returns a color state list associated with a particular resource ID and
styled for the current theme.


`
abstract


https://developer.android.com/reference/android/content/ContentResolver` `
https://developer.android.com/reference/android/content/Context#getContentResolver()()
`

Return a ContentResolver instance for your application's package.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getDataDir()()
`

Returns the absolute path to the directory on the filesystem where all
private files belonging to this app are stored.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getDatabasePath(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Returns the absolute path on the filesystem where a database created with
`https://developer.android.com/reference/android/content/Context#openOrCreateDatabase(java.lang.String,%20int,%20android.database.sqlite.SQLiteDatabase.CursorFactory)` is stored.


`


int` `
https://developer.android.com/reference/android/content/Context#getDeviceId()()
`

Gets the device ID this context is associated with.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getDir(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String name, int mode)
`

Retrieve, creating if needed, a new directory in which the application
can place its own custom data files.


`


https://developer.android.com/reference/android/view/Display` `
https://developer.android.com/reference/android/content/Context#getDisplay()()
`

Get the display this context is associated with.


`


final

https://developer.android.com/reference/android/graphics/drawable/Drawable` `
https://developer.android.com/reference/android/content/Context#getDrawable(int)(int id)
`

Returns a drawable object associated with a particular resource ID and
styled for the current theme.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#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


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getExternalCacheDirs()()
`

Returns absolute paths to application-specific directories on all
shared/external storage devices where the application can place cache
files it owns.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getExternalFilesDir(java.lang.String)(https://developer.android.com/reference/java/lang/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


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getExternalFilesDirs(java.lang.String)(https://developer.android.com/reference/java/lang/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


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#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
`https://developer.android.com/reference/android/provider/MediaStore` collection directly, as any app can
contribute new media to `https://developer.android.com/reference/android/provider/MediaStore` with no
permissions required, starting in
`https://developer.android.com/reference/android/os/Build.VERSION_CODES#Q`.*


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getFileStreamPath(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Returns the absolute path on the filesystem where a file created with
`https://developer.android.com/reference/android/content/Context#openFileOutput(java.lang.String,%20int)` is stored.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getFilesDir()()
`

Returns the absolute path to the directory on the filesystem where files
created with `https://developer.android.com/reference/android/content/Context#openFileOutput(java.lang.String,%20int)` are stored.


`


https://developer.android.com/reference/java/util/concurrent/Executor` `
https://developer.android.com/reference/android/content/Context#getMainExecutor()()
`

Return an `https://developer.android.com/reference/java/util/concurrent/Executor` that will run enqueued tasks on the main
thread associated with this context.


`
abstract


https://developer.android.com/reference/android/os/Looper` `
https://developer.android.com/reference/android/content/Context#getMainLooper()()
`

Return the Looper for the main thread of the current process.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getNoBackupFilesDir()()
`

Returns the absolute path to the directory on the filesystem similar to
`https://developer.android.com/reference/android/content/Context#getFilesDir()`.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#getObbDir()()
`

Return the primary shared/external storage directory where this
application's OBB files (if there are any) can be found.


`
abstract


https://developer.android.com/reference/java/io/File` `
https://developer.android.com/reference/android/content/Context#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.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#getOpPackageName()()
`

Return the package name that should be used for `https://developer.android.com/reference/android/app/AppOpsManager` calls from
this context, so that app ops manager's uid verification will work with the name.


`
abstract


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#getPackageCodePath()()
`

Return the full path to this context's primary Android package.


`
abstract


https://developer.android.com/reference/android/content/pm/PackageManager` `
https://developer.android.com/reference/android/content/Context#getPackageManager()()
`

Return PackageManager instance to find global package information.


`
abstract


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#getPackageName()()
`

Return the name of this application's package.


`
abstract


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#getPackageResourcePath()()
`

Return the full path to this context's primary Android package.


`


https://developer.android.com/reference/android/content/ContextParams` `
https://developer.android.com/reference/android/content/Context#getParams()()
`

Return the set of parameters which this Context was created with, if it
was created via `https://developer.android.com/reference/android/content/Context#createContext(android.content.ContextParams)`.


`
abstract


https://developer.android.com/reference/android/content/res/Resources` `
https://developer.android.com/reference/android/content/Context#getResources()()
`

Returns a Resources instance for the application's package.


`
abstract


https://developer.android.com/reference/android/content/SharedPreferences` `
https://developer.android.com/reference/android/content/Context#getSharedPreferences(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/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

https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#getString(int)(int resId)
`

Returns a localized string from the application's package's
default string table.


`


final

https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#getString(int,%20java.lang.Object[])(int resId, https://developer.android.com/reference/java/lang/Object formatArgs)
`

Returns a localized formatted string from the application's package's
default string table, substituting the format arguments as defined in
`https://developer.android.com/reference/java/util/Formatter` and `https://developer.android.com/reference/java/lang/String#format(java.lang.String,%20java.lang.Object[])`.


`


final
<T>
T` `
https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.Class<T>)(https://developer.android.com/reference/java/lang/Class<T> serviceClass)
`

Return the handle to a system-level service by class.


`
abstract


https://developer.android.com/reference/java/lang/Object` `
https://developer.android.com/reference/android/content/Context#getSystemService(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Return the handle to a system-level service by name.


`
abstract


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/android/content/Context#getSystemServiceName(java.lang.Class<?>)(https://developer.android.com/reference/java/lang/Class<?> serviceClass)
`

Gets the name of the system-level service that is represented by the specified class.


`


final

https://developer.android.com/reference/java/lang/CharSequence` `
https://developer.android.com/reference/android/content/Context#getText(int)(int resId)
`

Return a localized, styled CharSequence from the application's package's
default string table.


`
abstract


https://developer.android.com/reference/android/content/res/Resources.Theme` `
https://developer.android.com/reference/android/content/Context#getTheme()()
`

Return the Theme object associated with this Context.


`


https://developer.android.com/reference/android/content/Context.BindServiceFlags` `
https://developer.android.com/reference/android/content/Context#getUpdateableFlags()()
`

Gets the list of bind flags that may be updated (i.e.


`
abstract


https://developer.android.com/reference/android/graphics/drawable/Drawable` `
https://developer.android.com/reference/android/content/Context#getWallpaper()()
`

*This method was deprecated
in API level 15.
Use `https://developer.android.com/reference/android/app/WallpaperManager#getDrawable()` instead.*


`
abstract


int` `
https://developer.android.com/reference/android/content/Context#getWallpaperDesiredMinimumHeight()()
`

*This method was deprecated
in API level 15.
Use `https://developer.android.com/reference/android/app/WallpaperManager#getDesiredMinimumHeight()` instead.*


`
abstract


int` `
https://developer.android.com/reference/android/content/Context#getWallpaperDesiredMinimumWidth()()
`

*This method was deprecated
in API level 15.
Use `https://developer.android.com/reference/android/app/WallpaperManager#getDesiredMinimumWidth()` instead.*


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#grantUriPermission(java.lang.String,%20android.net.Uri,%20int)(https://developer.android.com/reference/java/lang/String toPackage, https://developer.android.com/reference/android/net/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` `
https://developer.android.com/reference/android/content/Context#isDeviceProtectedStorage()()
`

Indicates if the storage APIs of this Context are backed by
device-protected storage.


`


boolean` `
https://developer.android.com/reference/android/content/Context#isRestricted()()
`

Indicates whether this Context is restricted.


`


boolean` `
https://developer.android.com/reference/android/content/Context#isUiContext()()
`

Returns `true` if the context is a UI context which can access UI components such as
`https://developer.android.com/reference/android/view/WindowManager`, `https://developer.android.com/reference/android/view/LayoutInflater` or
`https://developer.android.com/reference/android/app/WallpaperManager`.


`
abstract


boolean` `
https://developer.android.com/reference/android/content/Context#moveDatabaseFrom(android.content.Context,%20java.lang.String)(https://developer.android.com/reference/android/content/Context sourceContext, https://developer.android.com/reference/java/lang/String name)
`

Move an existing database file from the given source storage context to
this context.


`
abstract


boolean` `
https://developer.android.com/reference/android/content/Context#moveSharedPreferencesFrom(android.content.Context,%20java.lang.String)(https://developer.android.com/reference/android/content/Context sourceContext, https://developer.android.com/reference/java/lang/String name)
`

Move an existing shared preferences file from the given source storage
context to this context.


`


final

https://developer.android.com/reference/android/content/res/TypedArray` `
https://developer.android.com/reference/android/content/Context#obtainStyledAttributes(android.util.AttributeSet,%20int[])(https://developer.android.com/reference/android/util/AttributeSet set, int[] attrs)
`

Retrieve styled attribute information in this Context's theme.


`


final

https://developer.android.com/reference/android/content/res/TypedArray` `
https://developer.android.com/reference/android/content/Context#obtainStyledAttributes(android.util.AttributeSet,%20int[],%20int,%20int)(https://developer.android.com/reference/android/util/AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes)
`

Retrieve styled attribute information in this Context's theme.


`


final

https://developer.android.com/reference/android/content/res/TypedArray` `
https://developer.android.com/reference/android/content/Context#obtainStyledAttributes(int,%20int[])(int resid, int[] attrs)
`

Retrieve styled attribute information in this Context's theme.


`


final

https://developer.android.com/reference/android/content/res/TypedArray` `
https://developer.android.com/reference/android/content/Context#obtainStyledAttributes(int[])(int[] attrs)
`

Retrieve styled attribute information in this Context's theme.


`
abstract


https://developer.android.com/reference/java/io/FileInputStream` `
https://developer.android.com/reference/android/content/Context#openFileInput(java.lang.String)(https://developer.android.com/reference/java/lang/String name)
`

Open a private file associated with this Context's application package
for reading.


`
abstract


https://developer.android.com/reference/java/io/FileOutputStream` `
https://developer.android.com/reference/android/content/Context#openFileOutput(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String name, int mode)
`

Open a private file associated with this Context's application package
for writing.


`
abstract


https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase` `
https://developer.android.com/reference/android/content/Context#openOrCreateDatabase(java.lang.String,%20int,%20android.database.sqlite.SQLiteDatabase.CursorFactory,%20android.database.DatabaseErrorHandler)(https://developer.android.com/reference/java/lang/String name, int mode, https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.CursorFactory factory, https://developer.android.com/reference/android/database/DatabaseErrorHandler errorHandler)
`

Open a new private SQLiteDatabase associated with this Context's
application package.


`
abstract


https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase` `
https://developer.android.com/reference/android/content/Context#openOrCreateDatabase(java.lang.String,%20int,%20android.database.sqlite.SQLiteDatabase.CursorFactory)(https://developer.android.com/reference/java/lang/String name, int mode, https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.CursorFactory factory)
`

Open a new private SQLiteDatabase associated with this Context's
application package.


`
abstract


https://developer.android.com/reference/android/graphics/drawable/Drawable` `
https://developer.android.com/reference/android/content/Context#peekWallpaper()()
`

*This method was deprecated
in API level 15.
Use `https://developer.android.com/reference/android/app/WallpaperManager#peekDrawable()` instead.*


`


void` `
https://developer.android.com/reference/android/content/Context#rebindService(android.content.ServiceConnection,%20android.content.Context.BindServiceFlags)(https://developer.android.com/reference/android/content/ServiceConnection conn, https://developer.android.com/reference/android/content/Context.BindServiceFlags flags)
`

Rebind an application service with updated bind service flags


`


void` `
https://developer.android.com/reference/android/content/Context#registerComponentCallbacks(android.content.ComponentCallbacks)(https://developer.android.com/reference/android/content/ComponentCallbacks callback)
`

Add a new `https://developer.android.com/reference/android/content/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` `
https://developer.android.com/reference/android/content/Context#registerDeviceIdChangeListener(java.util.concurrent.Executor,%20java.util.function.IntConsumer)(https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/java/util/function/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


https://developer.android.com/reference/android/content/Intent` `
https://developer.android.com/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver, https://developer.android.com/reference/android/content/IntentFilter filter)
`

Register a BroadcastReceiver to be run in the main activity thread.


`
abstract


https://developer.android.com/reference/android/content/Intent` `
https://developer.android.com/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter,%20int)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver, https://developer.android.com/reference/android/content/IntentFilter filter, int flags)
`

Register to receive intent broadcasts, with the receiver optionally being
exposed to Instant Apps.


`
abstract


https://developer.android.com/reference/android/content/Intent` `
https://developer.android.com/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter,%20java.lang.String,%20android.os.Handler,%20int)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver, https://developer.android.com/reference/android/content/IntentFilter filter, https://developer.android.com/reference/java/lang/String broadcastPermission, https://developer.android.com/reference/android/os/Handler scheduler, int flags)
`

Register to receive intent broadcasts, to run in the context of
<var translate="no">scheduler</var>.


`
abstract


https://developer.android.com/reference/android/content/Intent` `
https://developer.android.com/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter,%20java.lang.String,%20android.os.Handler)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver, https://developer.android.com/reference/android/content/IntentFilter filter, https://developer.android.com/reference/java/lang/String broadcastPermission, https://developer.android.com/reference/android/os/Handler scheduler)
`

Register to receive intent broadcasts, to run in the context of
<var translate="no">scheduler</var>.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#removeStickyBroadcast(android.content.Intent)(https://developer.android.com/reference/android/content/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` `
https://developer.android.com/reference/android/content/Context#removeStickyBroadcastAsUser(android.content.Intent,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/Context#revokeSelfPermissionOnKill(java.lang.String)(https://developer.android.com/reference/java/lang/String permName)
`

Triggers the asynchronous revocation of a runtime permission.


`


void` `
https://developer.android.com/reference/android/content/Context#revokeSelfPermissionsOnKill(java.util.Collection<java.lang.String>)(https://developer.android.com/reference/java/util/Collection<https://developer.android.com/reference/java/lang/String> permissions)
`

Triggers the revocation of one or more permissions for the calling package.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#revokeUriPermission(android.net.Uri,%20int)(https://developer.android.com/reference/android/net/Uri uri, int modeFlags)
`

Remove all permissions to access a particular content provider Uri
that were previously added with `https://developer.android.com/reference/android/content/Context#grantUriPermission(java.lang.String,%20android.net.Uri,%20int)` or *any other* mechanism.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#revokeUriPermission(java.lang.String,%20android.net.Uri,%20int)(https://developer.android.com/reference/java/lang/String toPackage, https://developer.android.com/reference/android/net/Uri uri, int modeFlags)
`

Remove permissions to access a particular content provider Uri
that were previously added with `https://developer.android.com/reference/android/content/Context#grantUriPermission(java.lang.String,%20android.net.Uri,%20int)` for a specific target
package.


`


void` `
https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/os/Bundle options)
`

Broadcast the given intent to all interested BroadcastReceivers, allowing
an optional required permission to be enforced.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent,%20java.lang.String)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission)
`

Broadcast the given intent to all interested BroadcastReceivers, allowing
an optional required permission to be enforced.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent)(https://developer.android.com/reference/android/content/Intent intent)
`

Broadcast the given intent to all interested BroadcastReceivers.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#sendBroadcastAsUser(android.content.Intent,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/UserHandle user)
`

Version of `https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent)` that allows you to specify the
user the broadcast will be sent to.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#sendBroadcastAsUser(android.content.Intent,%20android.os.UserHandle,%20java.lang.String)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/UserHandle user, https://developer.android.com/reference/java/lang/String receiverPermission)
`

Version of `https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent,%20java.lang.String)` that allows you to specify the
user the broadcast will be sent to.


`


void` `
https://developer.android.com/reference/android/content/Context#sendBroadcastWithMultiplePermissions(android.content.Intent,%20java.lang.String[])(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermissions)
`

Broadcast the given intent to all interested BroadcastReceivers, allowing
an array of required permissions to be enforced.


`


void` `
https://developer.android.com/reference/android/content/Context#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/java/lang/String receiverAppOp, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/Bundle initialExtras)
`

Version of
`https://developer.android.com/reference/android/content/Context#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)` that allows you to specify the App Op to enforce restrictions on which receivers
the broadcast will be sent to.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/Bundle initialExtras)
`

Version of `https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent)` that allows you to
receive data back from the broadcast.


`


void` `
https://developer.android.com/reference/android/content/Context#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/Context#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.os.Bundle,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/os/Bundle options, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/Bundle initialExtras)
`

Version of `https://developer.android.com/reference/android/content/Context#sendBroadcast(android.content.Intent)` that allows you to
receive data back from the broadcast.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#sendOrderedBroadcast(android.content.Intent,%20java.lang.String)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/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` `
https://developer.android.com/reference/android/content/Context#sendOrderedBroadcastAsUser(android.content.Intent,%20android.os.UserHandle,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/UserHandle user, https://developer.android.com/reference/java/lang/String receiverPermission, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/Bundle initialExtras)
`

Version of
`https://developer.android.com/reference/android/content/Context#sendOrderedBroadcast(android.content.Intent,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)`
that allows you to specify the
user the broadcast will be sent to.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#sendStickyBroadcast(android.content.Intent)(https://developer.android.com/reference/android/content/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` `
https://developer.android.com/reference/android/content/Context#sendStickyBroadcast(android.content.Intent,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/Context#sendStickyBroadcastAsUser(android.content.Intent,%20android.os.UserHandle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/Context#sendStickyOrderedBroadcast(android.content.Intent,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/Context#sendStickyOrderedBroadcastAsUser(android.content.Intent,%20android.os.UserHandle,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/UserHandle user, https://developer.android.com/reference/android/content/BroadcastReceiver resultReceiver, https://developer.android.com/reference/android/os/Handler scheduler, int initialCode, https://developer.android.com/reference/java/lang/String initialData, https://developer.android.com/reference/android/os/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` `
https://developer.android.com/reference/android/content/Context#setTheme(int)(int resid)
`

Set the base theme for this context.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#setWallpaper(android.graphics.Bitmap)(https://developer.android.com/reference/android/graphics/Bitmap bitmap)
`

*This method was deprecated
in API level 15.
Use `https://developer.android.com/reference/android/app/WallpaperManager#setBitmap(android.graphics.Bitmap)` instead.*

*This method requires the caller to hold the permission
`https://developer.android.com/reference/android/Manifest.permission#SET_WALLPAPER`.*


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#setWallpaper(java.io.InputStream)(https://developer.android.com/reference/java/io/InputStream data)
`

*This method was deprecated
in API level 15.
Use `https://developer.android.com/reference/android/app/WallpaperManager#setStream(java.io.InputStream)` instead.*

*This method requires the caller to hold the permission
`https://developer.android.com/reference/android/Manifest.permission#SET_WALLPAPER`.*


`


boolean` `
https://developer.android.com/reference/android/content/Context#shouldShowRequestPermissionRationale(java.lang.String)(https://developer.android.com/reference/java/lang/String permission)
`

Gets whether you should show UI with rationale before requesting a permission.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#startActivities(android.content.Intent[],%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intents, https://developer.android.com/reference/android/os/Bundle options)
`

Launch multiple new activities.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#startActivities(android.content.Intent[])(https://developer.android.com/reference/android/content/Intent intents)
`

Same as `https://developer.android.com/reference/android/content/Context#startActivities(android.content.Intent[],%20android.os.Bundle)` with no options
specified.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent)(https://developer.android.com/reference/android/content/Intent intent)
`

Same as `https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent,%20android.os.Bundle)` with no options
specified.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent,%20android.os.Bundle)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/Bundle options)
`

Launch a new activity.


`
abstract


https://developer.android.com/reference/android/content/ComponentName` `
https://developer.android.com/reference/android/content/Context#startForegroundService(android.content.Intent)(https://developer.android.com/reference/android/content/Intent service)
`

Similar to `https://developer.android.com/reference/android/content/Context#startService(android.content.Intent)`, but with an implicit promise that the
Service will call `https://developer.android.com/reference/android/app/Service#startForeground(int,%20android.app.Notification)` once it begins running.


`
abstract


boolean` `
https://developer.android.com/reference/android/content/Context#startInstrumentation(android.content.ComponentName,%20java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/android/content/ComponentName className, https://developer.android.com/reference/java/lang/String profileFile, https://developer.android.com/reference/android/os/Bundle arguments)
`

Start executing an `https://developer.android.com/reference/android/app/Instrumentation` class.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#startIntentSender(android.content.IntentSender,%20android.content.Intent,%20int,%20int,%20int)(https://developer.android.com/reference/android/content/IntentSender intent, https://developer.android.com/reference/android/content/Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)
`

Same as `https://developer.android.com/reference/android/content/Context#startIntentSender(android.content.IntentSender,%20android.content.Intent,%20int,%20int,%20int,%20android.os.Bundle)`
with no options specified.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#startIntentSender(android.content.IntentSender,%20android.content.Intent,%20int,%20int,%20int,%20android.os.Bundle)(https://developer.android.com/reference/android/content/IntentSender intent, https://developer.android.com/reference/android/content/Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, https://developer.android.com/reference/android/os/Bundle options)
`

Like `https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent,%20android.os.Bundle)`, but taking a IntentSender
to start.


`
abstract


https://developer.android.com/reference/android/content/ComponentName` `
https://developer.android.com/reference/android/content/Context#startService(android.content.Intent)(https://developer.android.com/reference/android/content/Intent service)
`

Request that a given application service be started.


`
abstract


boolean` `
https://developer.android.com/reference/android/content/Context#stopService(android.content.Intent)(https://developer.android.com/reference/android/content/Intent service)
`

Request that a given application service be stopped.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#unbindService(android.content.ServiceConnection)(https://developer.android.com/reference/android/content/ServiceConnection conn)
`

Disconnect from an application service.


`


void` `
https://developer.android.com/reference/android/content/Context#unregisterComponentCallbacks(android.content.ComponentCallbacks)(https://developer.android.com/reference/android/content/ComponentCallbacks callback)
`

Remove a `https://developer.android.com/reference/android/content/ComponentCallbacks` object that was previously registered
with `https://developer.android.com/reference/android/content/Context#registerComponentCallbacks(android.content.ComponentCallbacks)`.


`


void` `
https://developer.android.com/reference/android/content/Context#unregisterDeviceIdChangeListener(java.util.function.IntConsumer)(https://developer.android.com/reference/java/util/function/IntConsumer listener)
`

Removes a device ID changed listener from the Context.


`
abstract


void` `
https://developer.android.com/reference/android/content/Context#unregisterReceiver(android.content.BroadcastReceiver)(https://developer.android.com/reference/android/content/BroadcastReceiver receiver)
`

Unregister a previously registered BroadcastReceiver.


`


void` `
https://developer.android.com/reference/android/content/Context#updateServiceBindings(java.util.Collection<android.content.Context.UpdateBindingParams>)(https://developer.android.com/reference/java/util/Collection<https://developer.android.com/reference/android/content/Context.UpdateBindingParams> params)
`

Perform a batch update of existing bindings.


`


void` `
https://developer.android.com/reference/android/content/Context#updateServiceGroup(android.content.ServiceConnection,%20int,%20int)(https://developer.android.com/reference/android/content/ServiceConnection conn, int group, int importance)
`

For a service previously bound with `https://developer.android.com/reference/android/content/Context#bindService(android.content.Intent,%20android.content.Context.BindServiceFlags,%20java.util.concurrent.Executor,%20android.content.ServiceConnection)` or a related method, change
how the system manages that service's process in relation to other processes.


From class `

https://developer.android.com/reference/java/lang/Object

` `


https://developer.android.com/reference/java/lang/Object` `
https://developer.android.com/reference/java/lang/Object#clone()()
`

Creates and returns a copy of this object.


`


boolean` `
https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj)
`

Indicates whether some other object is "equal to" this one.


`


void` `
https://developer.android.com/reference/java/lang/Object#finalize()()
`

Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.


`


final

https://developer.android.com/reference/java/lang/Class<?>` `
https://developer.android.com/reference/java/lang/Object#getClass()()
`

Returns the runtime class of this `Object`.


`


int` `
https://developer.android.com/reference/java/lang/Object#hashCode()()
`

Returns a hash code value for the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notify()()
`

Wakes up a single thread that is waiting on this object's
monitor.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notifyAll()()
`

Wakes up all threads that are waiting on this object's monitor.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Object#toString()()
`

Returns a string representation of the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(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` `
https://developer.android.com/reference/java/lang/Object#wait(long)(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` `
https://developer.android.com/reference/java/lang/Object#wait()()
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*.


## Constants

### FLAG_CLIENT_SIDE_ENCRYPTION_ENABLED

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int FLAG_CLIENT_SIDE_ENCRYPTION_ENABLED
```

Transport flag indicating that the transport has client-side encryption enabled. i.e., the
user's backup has been encrypted with a key known only to the device, and not to the remote
storage solution. Even if an attacker had root access to the remote storage provider they
should not be able to decrypt the user's backup data.

<br />

Constant Value:

1
(0x00000001)


### FLAG_CROSS_PLATFORM_DATA_TRANSFER_IOS

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int FLAG_CROSS_PLATFORM_DATA_TRANSFER_IOS
```

Transport flag indicating that the transport is used for a cross-platform transfer to or from
iOS. The user's backup data is sent directly to another device over e.g. USB or WiFi.

<br />

Constant Value:

8
(0x00000008)


### FLAG_DEVICE_TO_DEVICE_TRANSFER

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int FLAG_DEVICE_TO_DEVICE_TRANSFER
```

Transport flag indicating that the transport is used for a device-to-device transfer. There
is no third party or intermediate storage. The user's backup data is sent directly to another
device over e.g., USB or WiFi.

<br />

Constant Value:

2
(0x00000002)


### TYPE_DIRECTORY

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_DIRECTORY
```

During a full restore, indicates that the file system object being restored is a directory.

<br />

Constant Value:

2
(0x00000002)


### TYPE_FILE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TYPE_FILE
```

During a full restore, indicates that the file system object being restored is an ordinary
file.

<br />

Constant Value:

1
(0x00000001)


## Public constructors

### BackupAgent

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BackupAgent ()
```

<br />

<br />

## Public methods

### fullBackupFile

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void fullBackupFile (File file, 
                FullBackupDataOutput output)
```

Write an entire file as part of a full-backup operation. The file's contents will be
delivered to the backup destination along with the metadata necessary to place it with the
proper location and permissions on the device where the data is restored.

Attempting to back up files in directories that are ignored by the backup
system will have no effect. For example, if the app calls this method with a file inside the
`https://developer.android.com/reference/android/content/ContextWrapper#getNoBackupFilesDir()` directory, it will be ignored. See `https://developer.android.com/reference/android/app/backup/BackupAgent#onFullBackup(android.app.backup.FullBackupDataOutput)` for details on what directories are excluded from
backups.

<br />

| Parameters ||
|---|---|
| `file` | `File`: The file to be backed up. The file must exist and be readable by the caller. <br /> |
| `output` | `FullBackupDataOutput`: The destination to which the backed-up file data will be sent. <br /> |

### onBackup

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void onBackup (ParcelFileDescriptor oldState, 
                BackupDataOutput data, 
                ParcelFileDescriptor newState)
```

The application is being asked to write any data changed since the last time it performed a
backup operation. The state data recorded during the last backup pass is provided in the
`oldState` file descriptor. If `oldState` is `null`, no old
state is available and the application should perform a full backup. In both cases, a
representation of the final backup state after this pass should be written to the file
pointed to by the file descriptor wrapped in `newState`.

Each entity written to the `https://developer.android.com/reference/android/app/backup/BackupDataOutput` `data`
stream will be transmitted over the current backup transport and stored in the remote data
set under the key supplied as part of the entity. Writing an entity with a negative data size
instructs the transport to delete whatever entity currently exists under that key from the
remote data set.

<br />

| Parameters ||
|---|---|
| `oldState` | `ParcelFileDescriptor`: An open, read-only ParcelFileDescriptor pointing to the last backup state provided by the application. May be `null`, in which case no prior state is being provided and the application should perform a full backup. <br /> |
| `data` | `BackupDataOutput`: A structured wrapper around an open, read/write file descriptor pointing to the backup data destination. Typically the application will use backup helper classes to write to this file. <br /> |
| `newState` | `ParcelFileDescriptor`: An open, read/write ParcelFileDescriptor pointing to an empty file. The application should record the final backup state here after writing the requested data to the `data` output stream. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` |   |

### onCreate

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onCreate ()
```

Provided as a convenience for agent implementations that need an opportunity to do one-time
initialization before the actual backup or restore operation is begun.

<br />

### onDestroy

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onDestroy ()
```

Provided as a convenience for agent implementations that need to do some sort of shutdown
process after backup or restore is completed.

Agents do not need to override this method.

<br />

### onEstimateFullBackupBytes

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public long onEstimateFullBackupBytes (long quotaBytes, 
                int transportFlags)
```

Estimate how much data in bytes a full backup will deliver. This is used during the preflight
check to make sure the size doesn't exceed the backup quota.

By default, the backup size is measured by calling `https://developer.android.com/reference/android/app/backup/BackupAgent#onFullBackup(android.app.backup.FullBackupDataOutput)` and looking at the size of the backup it produces while
discarding the data. This method can be overridden to provide an alternative, more efficient
estimation if necessary.


Value is a non-negative number of bytes.

<br />

| Parameters ||
|---|---|
| `quotaBytes` | `long`: The maximum data size that the transport currently permits this application to store as a backup. <br /> |
| `transportFlags` | `int`: flags with additional information about the backup transport. <br /> |

| Returns ||
|---|---|
| `long` | estimated size of the full backup. If the returned size is negative, the backup agent will fallback to using `https://developer.android.com/reference/android/app/backup/BackupAgent#onFullBackup(android.app.backup.FullBackupDataOutput)` to measure the size. Value is a non-negative number of bytes. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` |   |

### onFullBackup

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onFullBackup (FullBackupDataOutput data)
```

The application is having its entire file system contents backed up. `data` points to
the backup destination, and the app has the opportunity to choose which files are to be
stored. To commit a file as part of the backup, call the `https://developer.android.com/reference/android/app/backup/BackupAgent#fullBackupFile(java.io.File,%20android.app.backup.FullBackupDataOutput)` helper method. After all file data is written to the output, the agent
returns from this method and the backup operation concludes.

Certain parts of the app's data are never backed up even if the app explicitly sends them
to the output:

- The contents of the `https://developer.android.com/reference/android/content/ContextWrapper#getCacheDir()` directory
- The contents of the `https://developer.android.com/reference/android/content/ContextWrapper#getCodeCacheDir()` directory
- The contents of the `https://developer.android.com/reference/android/content/ContextWrapper#getNoBackupFilesDir()` directory
- The contents of the app's shared library directory

The default implementation of this method backs up the entirety of the application's
"owned" file system trees to the output other than the few exceptions listed above. Apps only
need to override this method if they need to impose special limitations on which files are
being stored beyond the control that `https://developer.android.com/reference/android/content/ContextWrapper#getNoBackupFilesDir()` offers. Alternatively
they can provide an xml resource to specify what data to include or exclude.

<br />

| Parameters ||
|---|---|
| `data` | `FullBackupDataOutput`: A structured wrapper pointing to the backup destination. <br /> |

| Throws ||
|---|---|
|   | java.io.IOException |
| `https://developer.android.com/reference/java/io/IOException` |   |

**See also:**

- `https://developer.android.com/reference/android/content/Context#getNoBackupFilesDir()`
- `https://developer.android.com/reference/android/app/backup/BackupAgent#fullBackupFile(java.io.File,%20android.app.backup.FullBackupDataOutput)`
- `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestoreFile(android.os.ParcelFileDescriptor,%20long,%20java.io.File,%20int,%20long,%20long)`

### onQuotaExceeded

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onQuotaExceeded (long backupDataBytes, 
                long quotaBytes)
```

Notification that the application's current backup operation causes it to exceed the maximum
size permitted by the transport. The ongoing backup operation is halted and rolled back: any
data that had been stored by a previous backup operation is still intact. Typically the
quota-exceeded state will be detected before any data is actually transmitted over the
network.

The `quotaBytes` value is the total data size currently permitted for this
application. If desired, the application can use this as a hint for determining how much data
to store. For example, a messaging application might choose to store only the newest
messages, dropping enough older content to stay under the quota.

Note that the maximum quota for the application can change over time. In
particular, in the future the quota may grow. Applications that adapt to the quota when
deciding what data to store should be aware of this and implement their data storage
mechanisms in a way that can take advantage of additional quota.

<br />

| Parameters ||
|---|---|
| `backupDataBytes` | `long`: The amount of data measured while initializing the backup operation, if the total exceeds the app's alloted quota. If initial measurement suggested that the data would fit but then too much data was actually submitted as part of the operation, then this value is the amount of data that had been streamed into the transport at the time the quota was reached. <br /> |
| `quotaBytes` | `long`: The maximum data size that the transport currently permits this application to store as a backup. <br /> |

### onRestore

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void onRestore (BackupDataInput data, 
                int appVersionCode, 
                ParcelFileDescriptor newState)
```

The application is being restored from backup and should replace any existing data with the
contents of the backup. The backup data is provided through the `data` parameter.
Once the restore is finished, the application should write a representation of the final
state to the `newState` file descriptor.

The application is responsible for properly erasing its old data and replacing it with the
data supplied to this method. No "clear user data" operation will be performed automatically
by the operating system. The exception to this is in the case of a failed restore attempt: if
onRestore() throws an exception, the OS will assume that the application's data may now be in
an incoherent state, and will clear it before proceeding.

<br />

| Parameters ||
|---|---|
| `data` | `BackupDataInput`: A structured wrapper around an open, read-only file descriptor pointing to a full snapshot of the application's data. The application should consume every entity represented in this data stream. <br /> |
| `appVersionCode` | `int`: The value of the [`android:versionCode`](https://developer.android.com/guide/topics/manifest/manifest-element#vcode) manifest attribute, from the application that backed up this particular data set. This makes it possible for an application's agent to distinguish among any possible older data versions when asked to perform the restore operation. <br /> |
| `newState` | `ParcelFileDescriptor`: An open, read/write ParcelFileDescriptor pointing to an empty file. The application should record the final backup state here after restoring its data from the `data` stream. When a full-backup dataset is being restored, this will be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` |   |

### onRestore

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onRestore (BackupDataInput data, 
                long appVersionCode, 
                ParcelFileDescriptor newState)
```

New version of `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)` that
handles a long app version code. Default implementation casts the version code to an int and
calls `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)`.

<br />

| Parameters ||
|---|---|
| `data` | `BackupDataInput` <br /> |
| `appVersionCode` | `long` <br /> |
| `newState` | `ParcelFileDescriptor` <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` |   |

### onRestoreFile

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onRestoreFile (ParcelFileDescriptor data, 
                long size, 
                File destination, 
                int type, 
                long mode, 
                long mtime)
```

Handle the data delivered via the given file descriptor during a full restore operation. The
agent is given the path to the file's original location as well as its size and metadata.

The file descriptor can only be read for `size` bytes; attempting to read more data
has undefined behavior.

The default implementation creates the destination file/directory and populates it with
the data from the file descriptor, then sets the file's access mode and modification time to
match the restore arguments.

<br />

| Parameters ||
|---|---|
| `data` | `ParcelFileDescriptor`: A read-only file descriptor from which the agent can read `size` bytes of file data. <br /> |
| `size` | `long`: The number of bytes of file content to be restored to the given destination. If the file system object being restored is a directory, `size` will be zero. <br /> |
| `destination` | `File`: The File on disk to be restored with the given data. <br /> |
| `type` | `int`: The kind of file system object being restored. This will be either `https://developer.android.com/reference/android/app/backup/BackupAgent#TYPE_FILE` or `https://developer.android.com/reference/android/app/backup/BackupAgent#TYPE_DIRECTORY`. <br /> |
| `mode` | `long`: The access mode to be assigned to the destination after its data is written. This is in the standard format used by `chmod()`. <br /> |
| `mtime` | `long`: The modification time of the file when it was backed up, suitable to be assigned to the file after its data is written. <br /> |

| Throws ||
|---|---|
|   | java.io.IOException |
| `https://developer.android.com/reference/java/io/IOException` |   |

### onRestoreFile

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public void onRestoreFile (FullRestoreDataInput data)
```

Handle the data delivered via the given file descriptor during a full restore operation. The
agent is given the path to the file's original location as well as its size and metadata.

The file descriptor can only be read for `size` bytes; attempting to read more data
has undefined behavior.

The default implementation creates the destination file/directory and populates it with
the data from the file descriptor, then sets the file's access mode and modification time to
match the restore arguments.

<br />

| Parameters ||
|---|---|
| `data` | `FullRestoreDataInput`: A structured wrapper containing the details of the file that's being restored and additional metadata from the backup. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
|   | java.io.IOException |
| `https://developer.android.com/reference/java/io/IOException` |   |

### onRestoreFinished

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onRestoreFinished ()
```

The application's restore operation has completed. This method is called after all available
data has been delivered to the application for restore (via either the `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)` or `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestoreFile(android.os.ParcelFileDescriptor,%20long,%20java.io.File,%20int,%20long,%20long)`
callbacks). This provides the app with a stable end-of-restore opportunity to perform any
appropriate post-processing on the data that was just delivered.

<br />

**See also:**

- `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestore(android.app.backup.BackupDataInput,%20int,%20android.os.ParcelFileDescriptor)`
- `https://developer.android.com/reference/android/app/backup/BackupAgent#onRestoreFile(android.os.ParcelFileDescriptor,%20long,%20java.io.File,%20int,%20long,%20long)`