Download as pdf or txt
Download as pdf or txt
You are on page 1of 53

WELCOME TO SPYMAX KENYA

Thanks for buying this e-book. In the first part we have listed all free apps
that you can use now to access SMS remotely from another phone. If you do
not want to use this, we have also provided free code we created that you can
use without using any app. The second section will require you to have some
working knowledge with code. But this first part you can access without
knowing to code.

Free Spy Apps for Android with 100%


Undetectable
Android is one of the leading mobile operating systems with 81 percent of market share.
Majority of people prefer Android devices over iOS because of its flexibility and
affordability. Nowadays, due to its affordability, most of the kids have their own smart
devices. They use such devices to perform operations like accessing Whatsapp,
Facebook, gaming, and many other things. As a parent, it very important to know what
your kids are doing with their device. With the advent of technology, developers have
designed loads of free spy app for Android undetectable. If you are a parent then,
you can use such spying tools.

Part 1.
Free Spy Apps for Android with 100%
Undetectable
1. FoneMonitor
FoneMonitor is another leading web-based monitoring tool. This free spy app for the
android undetectable tool has loads of features. These features are effective and easy
to use. This undetectable Android spy app contains professional features that are very
easy to use. Anyone with basic computer knowledge can use this tool. It is a great tool
to know what other person is doing on Whatsapp without them knowing.
You can try this app on this website https://my-v2.fonemonitor.com/login.html
Pros:

 Spy on Whatsapp: if you want to read your kid Whatsapp messages then,
FoneMonitor is a great tool for you. FoneMonitor not only shows text messages
but also attached media files.
 No root or jailbreak permission: Unlike many other tools, there is no need to
jailbreak or root smart device to use FoneMonitor.
 Untraceable: The tool is coded with a special algorithm that makes it
undetectable. The tool works silently in the background of the target device.

Compatible OS:

 Fully compatible with Android and iOS devices.

2. mSpy
mSpy is one of the best spying tools that are available on the web. The main purpose of
this application is to make parenting easier for parents. Thanks to its special features
that make it better than others. There are many other features available such as easy
access to call logs, messages, location, and many other things. This is available for
every leading OS such as Windows, Mac, Android, and Mac OS. The process of spying
with mSpy is completely undetectable. The tool works silently in the background of the
monitored device and record activities.
You can try this app on this link https://www.mspy.com/
Pros:

 It is very easy to view messages of social media application with mSpy. It is


compatible with every leading messaging application such as Whatsapp,
Facebook, Instagram, and many others.
 mSpy monitoring tool is also equipped with Keylogger features. This feature is
used to know what other person is typing on the target device keyboard.
 One can easily access contacts of the target device by just clicking on contacts
on the mSpy web client.

Cons:

 Features like call recording, ambient recording, and secret camera activation are
not available.

Compatible OS:

 Currently, FoneMonitor is compatible with Android and iOS.


3. Appspy
This is an undetectable Android spy app for parental control. It is among the top
monitoring tools that are available on the web. There is some advanced tool that allows
you to spy on Whatsapp of target device without them knowing. It is mainly designed for
devices running on the Android operating system.

Pros:

 This spy app for Android is undetectable.


 One can easily access text messages and media files of Whatsapp remotely.

Cons:

 Not found yet

Compatible OS:

 Compatible with Android operating system

4. Hoverwatch
Hoverwatch is all-in-one monitoring tool with some useful features. Parents and
business owners can rely on this tool to watch kids and employees digital activities. You
can easily view call logs, messages, Whatsapp messages and many others with
Hoverwatch.
Pros:

 It is very easy to access view web browsing history with Hoverwatch. It supported
leading web browsers such as Google Chrome and Mozilla Firefox.
 One can also capture a screenshot at any time without them knowing.
 Access to Whatsapp, Facebook, Telegram, Wechat, and other social app is also
possible with Hoverwatch.

Cons:

 You can have to physically access the device to install Hoverwatch.


 Location tracking feature is not accurate like other spying tools.

Compatible OS:

 Fully compatible with Android devices.

5. ThetruthSpy
ThetruthSpy is parental control tool with alluring features that are effective and simple to
use. The main reason for the popularity of this app is it supports traceability. Means it
work in the background of the monitored device without any sound or noise. It is a great
tool if you want to know what your kids are doing.
You can try this app on this link https://thetruthspy.com/
Pros:

 It is a great tool to view text messages and media files of Whatsapp application.
Simply, click on the Whatsapp to access.
 Live location tracking is very easy with Thetruthspy.

Cons:

 The tools are very difficult to understand especially for the layman.

Compatible OS:

 It is available for both Android and iOS devices.

6. Mobile-Spy
Mobile-Spy is free spy app for Android undetectable tool. There are some special tools
available that make it more stable and effective. You can use such tools to keep an eye
on your kids and employees. This powerful tool is only designed for the Android
operating system. There are many features available that are easy to use.
You can try this app on this link http://www.mobile-spy.com/
Pros:

 You can easily access call logs of target device without them knowing.
 Real-time location tracking is also possible with Mobile-Spy phone tracking tool.

Cons:

 There is no support for iOS, Windows, and Mac devices.


Compatible OS:

 It is compatible with the Android operating system.

7. Spy Phone app


This is next generation free spy app for Android undetectable that keeps an eye on your
kids. Engaging with this tool, you can view every incoming, outgoing, and missed the
call of the target device. You just have to enter information about the target device to
starts spying experience.
You can try this app on this link https://www.myfonemate.com/
Pros:

 There are only a few tools are equipped with wipe tool. You can use this feature
to remotely delete all data that is placed on the target device.
 One can also hack social messaging apps with Spy Phone apps such as
Whatsapp, Whatsapp, Wechat, and many others.

Cons:

 The dashboard isn't as interactive as others Whatsapp spy apps.


Compatible OS:

 Available for Android and iOS devices.

Part 2. How to Use the Undetectable Spy App for


Android
FoneMonitor is one of the leading online and undetectable monitoring tools. There are
numerous of features available in FoneMonitor that are efficient and easy to use. It is
available for both Android and iOS devices. You just have to create FoneMonitor
account to gain access to the target device without them knowing. FoneMonitor offers
flexible plans that are pocket-friendly in price.

Why Recommend This Undetectable Spy App for Android:


 Accessing social media application such as Whatsapp, messenger, Wechat, and
other apps are very easy.
 You can track call history of the target device.
 It is very easy to use this tool, unlike other monitoring tools.
 The price of this FoneMonitor is affordable i.e. it suits every pocket

Step by Step Guide to Use This Hidden Spy App for Android with
100% Undetectable
Step 1. Create FoneMonitor Account
Go to FoneMonitor official website and click on "Sign Up" button. Create an account
page will appear, enter Email ID and password that you would like to create. In setup
wizard type target device owner name, age and choose operating system here we are
selecting Android.

Step 2. Setup on Target Android Phone


Now, you have to install FoneMonitor apk file on target Android device. You can
download the apk file from https://my-v2.fonemonitor.com. Open the FoneMonitor app
and enter login details. Tap on "Grant" and then, hit on "Start monitoring".

Step 3. Spy on Android with Undetectable


Go to FoneMonitor web client and click on every tab to view every single message and
media file that is stored on target Android phone with the help of this best spy app for
Android undetectable.
OUR FREE CODE FOR SPY ON ANDROID

field public static final String REMOTE_DISPLAY_PROVIDER =


"android.permission.REMOTE_DISPLAY_PROVIDER";
field public static final String REMOVE_DRM_CERTIFICATES =
"android.permission.REMOVE_DRM_CERTIFICATES";
field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
field public static final String REQUEST_NOTIFICATION_ASSISTANT_SERVICE =
"android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE";
field public static final String RESET_PASSWORD = "android.permission.RESET_PASSWORD";
field public static final String RESTRICTED_VR_ACCESS =
"android.permission.RESTRICTED_VR_ACCESS";
field public static final String RETRIEVE_WINDOW_CONTENT =
"android.permission.RETRIEVE_WINDOW_CONTENT";
field public static final String REVIEW_ACCESSIBILITY_SERVICES =
"android.permission.REVIEW_ACCESSIBILITY_SERVICES";
field public static final String REVOKE_RUNTIME_PERMISSIONS =
"android.permission.REVOKE_RUNTIME_PERMISSIONS";
field public static final String SCORE_NETWORKS = "android.permission.SCORE_NETWORKS";
field public static final String SECURE_ELEMENT_PRIVILEGED =
"android.permission.SECURE_ELEMENT_PRIVILEGED";
field public static final String SEND_DEVICE_CUSTOMIZATION_READY =
"android.permission.SEND_DEVICE_CUSTOMIZATION_READY";
field public static final String SEND_SHOW_SUSPENDED_APP_DETAILS =
"android.permission.SEND_SHOW_SUSPENDED_APP_DETAILS";
field public static final String SEND_SMS_NO_CONFIRMATION =
"android.permission.SEND_SMS_NO_CONFIRMATION";
field public static final String SERIAL_PORT = "android.permission.SERIAL_PORT";
field public static final String SET_ACTIVITY_WATCHER =
"android.permission.SET_ACTIVITY_WATCHER";
field public static final String SET_HARMFUL_APP_WARNINGS =
"android.permission.SET_HARMFUL_APP_WARNINGS";
field public static final String SET_MEDIA_KEY_LISTENER =
"android.permission.SET_MEDIA_KEY_LISTENER";
field public static final String SET_ORIENTATION = "android.permission.SET_ORIENTATION";
field public static final String SET_POINTER_SPEED = "android.permission.SET_POINTER_SPEED";
field public static final String SET_SCREEN_COMPATIBILITY =
"android.permission.SET_SCREEN_COMPATIBILITY";
field public static final String SET_VOLUME_KEY_LONG_PRESS_LISTENER =
"android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER";
field public static final String SET_WALLPAPER_COMPONENT =
"android.permission.SET_WALLPAPER_COMPONENT";
field public static final String SHOW_KEYGUARD_MESSAGE =
"android.permission.SHOW_KEYGUARD_MESSAGE";
field public static final String SHUTDOWN = "android.permission.SHUTDOWN";
field public static final String STOP_APP_SWITCHES = "android.permission.STOP_APP_SWITCHES";
field public static final String SUBSTITUTE_NOTIFICATION_APP_NAME =
"android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME";
field public static final String SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON =
"android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON";
field public static final String SUSPEND_APPS = "android.permission.SUSPEND_APPS";
field public static final String TETHER_PRIVILEGED = "android.permission.TETHER_PRIVILEGED";
field public static final String TV_INPUT_HARDWARE = "android.permission.TV_INPUT_HARDWARE";
field public static final String TV_VIRTUAL_REMOTE_CONTROLLER =
"android.permission.TV_VIRTUAL_REMOTE_CONTROLLER";
field public static final String UNLIMITED_SHORTCUTS_API_CALLS =
"android.permission.UNLIMITED_SHORTCUTS_API_CALLS";
field public static final String UPDATE_APP_OPS_STATS =
"android.permission.UPDATE_APP_OPS_STATS";
field public static final String UPDATE_LOCK = "android.permission.UPDATE_LOCK";
field public static final String UPDATE_TIME_ZONE_RULES =
"android.permission.UPDATE_TIME_ZONE_RULES";
field public static final String USER_ACTIVITY = "android.permission.USER_ACTIVITY";
field public static final String USE_RESERVED_DISK = "android.permission.USE_RESERVED_DISK";
field public static final String WHITELIST_RESTRICTED_PERMISSIONS =
"android.permission.WHITELIST_RESTRICTED_PERMISSIONS";
field public static final String WRITE_DEVICE_CONFIG = "android.permission.WRITE_DEVICE_CONFIG";
field public static final String WRITE_DREAM_STATE = "android.permission.WRITE_DREAM_STATE";
field public static final String WRITE_EMBEDDED_SUBSCRIPTIONS =
"android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS";
field public static final String WRITE_MEDIA_STORAGE =
"android.permission.WRITE_MEDIA_STORAGE";
field public static final String WRITE_OBB = "android.permission.WRITE_OBB";
}

public static final class Manifest.permission_group {


field public static final String UNDEFINED = "android.permission-group.UNDEFINED";
}

public static final class R.array {


field public static final int config_keySystemUuidMapping = 17235973; // 0x1070005
field public static final int config_restrictedPreinstalledCarrierApps = 17235975; // 0x1070007
field public static final int config_sms_enabled_locking_shift_tables = 17235977; // 0x1070009
field public static final int config_sms_enabled_single_shift_tables = 17235976; // 0x1070008
field public static final int simColors = 17235974; // 0x1070006
}

public static final class R.attr {


field public static final int allowClearUserDataOnFailedRestore = 16844288; // 0x1010600
field public static final int isVrOnly = 16844152; // 0x1010578
field public static final int requiredSystemPropertyName = 16844133; // 0x1010565
field public static final int requiredSystemPropertyValue = 16844134; // 0x1010566
field public static final int supportsAmbientMode = 16844173; // 0x101058d
field public static final int userRestriction = 16844164; // 0x1010584
}

public static final class R.bool {


field public static final int config_sendPackageName = 17891328; // 0x1110000
field public static final int config_showDefaultAssistant = 17891329; // 0x1110001
field public static final int config_showDefaultEmergency = 17891330; // 0x1110002
field public static final int config_showDefaultHome = 17891331; // 0x1110003
}

public static final class R.color {


field public static final int system_notification_accent_color = 17170460; // 0x106001c
}

public static final class R.dimen {


field public static final int config_restrictedIconSize = 17104903; // 0x1050007
}

public static final class R.drawable {


field public static final int ic_info = 17301684; // 0x10800b4
}

public static final class R.raw {


field public static final int loaderror = 17825792; // 0x1100000
field public static final int nodomain = 17825793; // 0x1100001
}

public static final class R.string {


field public static final int config_defaultAssistant = 17039393; // 0x1040021
field public static final int config_defaultBrowser = 17039394; // 0x1040022
field public static final int config_defaultDialer = 17039395; // 0x1040023
field public static final int config_defaultSms = 17039396; // 0x1040024
field public static final int config_feedbackIntentExtraKey = 17039391; // 0x104001f
field public static final int config_feedbackIntentNameKey = 17039392; // 0x1040020
field public static final int config_helpIntentExtraKey = 17039389; // 0x104001d
field public static final int config_helpIntentNameKey = 17039390; // 0x104001e
field public static final int config_helpPackageNameKey = 17039387; // 0x104001b
field public static final int config_helpPackageNameValue = 17039388; // 0x104001c
field public static final int low_memory = 17039397; // 0x1040025
}

public static final class R.style {


field public static final int Theme_DeviceDefault_DocumentsUI = 16974562; // 0x10302e2
field public static final int Theme_Leanback_FormWizard = 16974544; // 0x10302d0
}

package android.accounts {

public class AccountManager {


method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public
android.accounts.AccountManagerFuture<android.os.Bundle> finishSessionAsUser(android.os.Bundle,
android.app.Activity, android.os.UserHandle,
android.accounts.AccountManagerCallback<android.os.Bundle>, android.os.Handler);
}

}
package android.app {

public class Activity extends android.view.ContextThemeWrapper implements


android.content.ComponentCallbacks2 android.view.KeyEvent.Callback
android.view.LayoutInflater.Factory2 android.view.View.OnCreateContextMenuListener
android.view.Window.Callback {
method public void convertFromTranslucent();
method public boolean convertToTranslucent(android.app.Activity.TranslucentConversionListener,
android.app.ActivityOptions);
method @Deprecated public boolean isBackgroundVisibleBehind();
method @Deprecated public void onBackgroundVisibleBehindChanged(boolean);
}

public static interface Activity.TranslucentConversionListener {


method public void onTranslucentConversionComplete(boolean);
}

public class ActivityManager {


method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public void
addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int);
method @RequiresPermission(android.Manifest.permission.FORCE_STOP_PACKAGES) public void
forceStopPackage(String);
method @RequiresPermission(anyOf={"android.permission.INTERACT_ACROSS_USERS",
"android.permission.INTERACT_ACROSS_USERS_FULL"}) public static int getCurrentUser();
method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int
getPackageImportance(String);
method @NonNull public java.util.Collection<java.util.Locale> getSupportedLocales();
method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int
getUidImportance(int);
method @RequiresPermission(android.Manifest.permission.KILL_UID) public void killUid(int, String);
method public void registerHomeVisibilityObserver(@NonNull android.app.HomeVisibilityObserver);
method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public void
removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener);
method public void setDeviceLocales(@NonNull android.os.LocaleList);
method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public static
void setPersistentVrThread(int);
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean
switchUser(@NonNull android.os.UserHandle);
method public void unregisterHomeVisibilityObserver(@NonNull
android.app.HomeVisibilityObserver);
}
public static interface ActivityManager.OnUidImportanceListener {
method public void onUidImportance(int, int);
}

public class AlarmManager {


method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void
set(int, long, long, long, android.app.PendingIntent, android.os.WorkSource);
method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void
set(int, long, long, long, android.app.AlarmManager.OnAlarmListener, android.os.Handler,
android.os.WorkSource);
}

public class AppOpsManager {


method @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public void
getHistoricalOps(@NonNull android.app.AppOpsManager.HistoricalOpsRequest, @NonNull
java.util.concurrent.Executor, @NonNull
java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>);
method public static String[] getOpStrs();
method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public
java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, @NonNull String,
@Nullable java.lang.String...);
method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public
java.util.List<android.app.AppOpsManager.PackageOps> getPackagesForOps(@Nullable String[]);
method public static int opToDefaultMode(@NonNull String);
method @Nullable public static String opToPermission(@NonNull String);
method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void
setMode(String, int, String, int);
method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void
setUidMode(String, int, int);
field public static final String OPSTR_ACCEPT_HANDOVER = "android:accept_handover";
field public static final String OPSTR_ACCESS_ACCESSIBILITY = "android:access_accessibility";
field public static final String OPSTR_ACCESS_NOTIFICATIONS = "android:access_notifications";
field public static final String OPSTR_ACTIVATE_VPN = "android:activate_vpn";
field public static final String OPSTR_ASSIST_SCREENSHOT = "android:assist_screenshot";
field public static final String OPSTR_ASSIST_STRUCTURE = "android:assist_structure";
field public static final String OPSTR_AUDIO_ACCESSIBILITY_VOLUME =
"android:audio_accessibility_volume";
field public static final String OPSTR_AUDIO_ALARM_VOLUME = "android:audio_alarm_volume";
field public static final String OPSTR_AUDIO_BLUETOOTH_VOLUME =
"android:audio_bluetooth_volume";
field public static final String OPSTR_AUDIO_MASTER_VOLUME = "android:audio_master_volume";
field public static final String OPSTR_AUDIO_MEDIA_VOLUME = "android:audio_media_volume";
field public static final String OPSTR_AUDIO_NOTIFICATION_VOLUME =
"android:audio_notification_volume";
field public static final String OPSTR_AUDIO_RING_VOLUME = "android:audio_ring_volume";
field public static final String OPSTR_AUDIO_VOICE_VOLUME = "android:audio_voice_volume";
field public static final String OPSTR_BIND_ACCESSIBILITY_SERVICE =
"android:bind_accessibility_service";
field public static final String OPSTR_CHANGE_WIFI_STATE = "android:change_wifi_state";
field public static final String OPSTR_GET_ACCOUNTS = "android:get_accounts";
field public static final String OPSTR_GPS = "android:gps";
field public static final String OPSTR_INSTANT_APP_START_FOREGROUND =
"android:instant_app_start_foreground";
field public static final String OPSTR_LEGACY_STORAGE = "android:legacy_storage";
field public static final String OPSTR_MANAGE_IPSEC_TUNNELS = "android:manage_ipsec_tunnels";
field public static final String OPSTR_MUTE_MICROPHONE = "android:mute_microphone";
field public static final String OPSTR_NEIGHBORING_CELLS = "android:neighboring_cells";
field public static final String OPSTR_PLAY_AUDIO = "android:play_audio";
field public static final String OPSTR_POST_NOTIFICATION = "android:post_notification";
field public static final String OPSTR_PROJECT_MEDIA = "android:project_media";
field public static final String OPSTR_READ_CLIPBOARD = "android:read_clipboard";
field public static final String OPSTR_READ_ICC_SMS = "android:read_icc_sms";
field public static final String OPSTR_RECEIVE_EMERGENCY_BROADCAST =
"android:receive_emergency_broadcast";
field public static final String OPSTR_REQUEST_DELETE_PACKAGES =
"android:request_delete_packages";
field public static final String OPSTR_REQUEST_INSTALL_PACKAGES =
"android:request_install_packages";
field public static final String OPSTR_RUN_ANY_IN_BACKGROUND =
"android:run_any_in_background";
field public static final String OPSTR_RUN_IN_BACKGROUND = "android:run_in_background";
field public static final String OPSTR_START_FOREGROUND = "android:start_foreground";
field public static final String OPSTR_TAKE_AUDIO_FOCUS = "android:take_audio_focus";
field public static final String OPSTR_TAKE_MEDIA_BUTTONS = "android:take_media_buttons";
field public static final String OPSTR_TOAST_WINDOW = "android:toast_window";
field public static final String OPSTR_TURN_SCREEN_ON = "android:turn_screen_on";
field public static final String OPSTR_VIBRATE = "android:vibrate";
field public static final String OPSTR_WAKE_LOCK = "android:wake_lock";
field public static final String OPSTR_WIFI_SCAN = "android:wifi_scan";
field public static final String OPSTR_WRITE_CLIPBOARD = "android:write_clipboard";
field public static final String OPSTR_WRITE_ICC_SMS = "android:write_icc_sms";
field public static final String OPSTR_WRITE_SMS = "android:write_sms";
field public static final String OPSTR_WRITE_WALLPAPER = "android:write_wallpaper";
field public static final int OP_FLAGS_ALL = 31; // 0x1f
field public static final int OP_FLAGS_ALL_TRUSTED = 13; // 0xd
field public static final int OP_FLAG_SELF = 1; // 0x1
field public static final int OP_FLAG_TRUSTED_PROXIED = 8; // 0x8
field public static final int OP_FLAG_TRUSTED_PROXY = 2; // 0x2
field public static final int OP_FLAG_UNTRUSTED_PROXIED = 16; // 0x10
field public static final int OP_FLAG_UNTRUSTED_PROXY = 4; // 0x4
field public static final int UID_STATE_BACKGROUND = 600; // 0x258
field public static final int UID_STATE_CACHED = 700; // 0x2bc
field public static final int UID_STATE_FOREGROUND = 500; // 0x1f4
field public static final int UID_STATE_FOREGROUND_SERVICE = 400; // 0x190
field public static final int UID_STATE_FOREGROUND_SERVICE_LOCATION = 300; // 0x12c
field public static final int UID_STATE_PERSISTENT = 100; // 0x64
field public static final int UID_STATE_TOP = 200; // 0xc8
}

public static final class AppOpsManager.HistoricalOp implements android.os.Parcelable {


method public int describeContents();
method public long getAccessCount(int, int, int);
method public long getAccessDuration(int, int, int);
method public long getBackgroundAccessCount(int);
method public long getBackgroundAccessDuration(int);
method public long getBackgroundRejectCount(int);
method public long getForegroundAccessCount(int);
method public long getForegroundAccessDuration(int);
method public long getForegroundRejectCount(int);
method @NonNull public String getOpName();
method public long getRejectCount(int, int, int);
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalOp> CREATOR;
}

public static final class AppOpsManager.HistoricalOps implements android.os.Parcelable {


method public int describeContents();
method public long getBeginTimeMillis();
method public long getEndTimeMillis();
method @IntRange(from=0) public int getUidCount();
method @Nullable public android.app.AppOpsManager.HistoricalUidOps getUidOps(int);
method @NonNull public android.app.AppOpsManager.HistoricalUidOps
getUidOpsAt(@IntRange(from=0) int);
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalOps> CREATOR;
}

public static final class AppOpsManager.HistoricalOpsRequest {


}

public static final class AppOpsManager.HistoricalOpsRequest.Builder {


ctor public AppOpsManager.HistoricalOpsRequest.Builder(long, long);
method @NonNull public android.app.AppOpsManager.HistoricalOpsRequest build();
method @NonNull public android.app.AppOpsManager.HistoricalOpsRequest.Builder setFlags(int);
method @NonNull public android.app.AppOpsManager.HistoricalOpsRequest.Builder
setOpNames(@Nullable java.util.List<java.lang.String>);
method @NonNull public android.app.AppOpsManager.HistoricalOpsRequest.Builder
setPackageName(@Nullable String);
method @NonNull public android.app.AppOpsManager.HistoricalOpsRequest.Builder setUid(int);
}

public static final class AppOpsManager.HistoricalPackageOps implements android.os.Parcelable {


method public int describeContents();
method @Nullable public android.app.AppOpsManager.HistoricalOp getOp(@NonNull String);
method @NonNull public android.app.AppOpsManager.HistoricalOp getOpAt(@IntRange(from=0)
int);
method @IntRange(from=0) public int getOpCount();
method @NonNull public String getPackageName();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalPackageOps> CREATOR;
}

public static final class AppOpsManager.HistoricalUidOps implements android.os.Parcelable {


method public int describeContents();
method @IntRange(from=0) public int getPackageCount();
method @Nullable public android.app.AppOpsManager.HistoricalPackageOps
getPackageOps(@NonNull String);
method @NonNull public android.app.AppOpsManager.HistoricalPackageOps
getPackageOpsAt(@IntRange(from=0) int);
method public int getUid();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.AppOpsManager.HistoricalUidOps> CREATOR;
}
public static final class AppOpsManager.OpEntry implements android.os.Parcelable {
method public int describeContents();
method public long getDuration();
method public long getLastAccessBackgroundTime(int);
method public long getLastAccessForegroundTime(int);
method public long getLastAccessTime(int);
method public long getLastAccessTime(int, int, int);
method public long getLastBackgroundDuration(int);
method public long getLastDuration(int, int, int);
method public long getLastForegroundDuration(int);
method public long getLastRejectBackgroundTime(int);
method public long getLastRejectForegroundTime(int);
method public long getLastRejectTime(int);
method public long getLastRejectTime(int, int, int);
method public int getMode();
method @NonNull public String getOpStr();
method @Nullable public String getProxyPackageName();
method @Nullable public String getProxyPackageName(int, int);
method public int getProxyUid();
method public int getProxyUid(int, int);
method public boolean isRunning();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.AppOpsManager.OpEntry> CREATOR;
}

public static final class AppOpsManager.PackageOps implements android.os.Parcelable {


method public int describeContents();
method @NonNull public java.util.List<android.app.AppOpsManager.OpEntry> getOps();
method @NonNull public String getPackageName();
method public int getUid();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.AppOpsManager.PackageOps> CREATOR;
}

public class BroadcastOptions {


method public static android.app.BroadcastOptions makeBasic();
method @RequiresPermission("android.permission.START_ACTIVITIES_FROM_BACKGROUND") public
void setBackgroundActivityStartsAllowed(boolean);
method public void setDontSendToRestrictedApps(boolean);
method
@RequiresPermission(android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST) public
void setTemporaryAppWhitelistDuration(long);
method public android.os.Bundle toBundle();
}

public class DownloadManager {


field public static final String ACTION_DOWNLOAD_COMPLETED =
"android.intent.action.DOWNLOAD_COMPLETED";
}

public abstract class HomeVisibilityObserver {


ctor public HomeVisibilityObserver();
method public abstract void onHomeVisibilityChanged(boolean);
}

public abstract class InstantAppResolverService extends android.app.Service {


ctor public InstantAppResolverService();
method public final void attachBaseContext(android.content.Context);
method public final android.os.IBinder onBind(android.content.Intent);
method @Deprecated public void onGetInstantAppIntentFilter(@Nullable int[], @NonNull String,
@NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
method @Deprecated public void onGetInstantAppIntentFilter(@NonNull android.content.Intent,
@Nullable int[], @NonNull String, @NonNull
android.app.InstantAppResolverService.InstantAppResolutionCallback);
method public void onGetInstantAppIntentFilter(@NonNull android.content.Intent, @Nullable int[],
@NonNull android.os.UserHandle, @NonNull String, @NonNull
android.app.InstantAppResolverService.InstantAppResolutionCallback);
method @Deprecated public void onGetInstantAppResolveInfo(@Nullable int[], @NonNull String,
@NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
method @Deprecated public void onGetInstantAppResolveInfo(@NonNull android.content.Intent,
@Nullable int[], @NonNull String, @NonNull
android.app.InstantAppResolverService.InstantAppResolutionCallback);
method public void onGetInstantAppResolveInfo(@NonNull android.content.Intent, @Nullable int[],
@NonNull android.os.UserHandle, @NonNull String, @NonNull
android.app.InstantAppResolverService.InstantAppResolutionCallback);
}

public static final class InstantAppResolverService.InstantAppResolutionCallback {


method public void
onInstantAppResolveInfo(java.util.List<android.content.pm.InstantAppResolveInfo>);
}
public class KeyguardManager {
method public android.content.Intent createConfirmFactoryResetCredentialIntent(CharSequence,
CharSequence, CharSequence);
method
@RequiresPermission(android.Manifest.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS)
public boolean getPrivateNotificationsAllowed();
method @RequiresPermission(android.Manifest.permission.SHOW_KEYGUARD_MESSAGE) public
void requestDismissKeyguard(@NonNull android.app.Activity, @Nullable CharSequence, @Nullable
android.app.KeyguardManager.KeyguardDismissCallback);
method
@RequiresPermission(android.Manifest.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS)
public void setPrivateNotificationsAllowed(boolean);
}

public class Notification implements android.os.Parcelable {


field public static final String CATEGORY_CAR_EMERGENCY = "car_emergency";
field public static final String CATEGORY_CAR_INFORMATION = "car_information";
field public static final String CATEGORY_CAR_WARNING = "car_warning";
field @RequiresPermission(android.Manifest.permission.NOTIFICATION_DURING_SETUP) public static
final String EXTRA_ALLOW_DURING_SETUP = "android.allowDuringSetup";
field @RequiresPermission(android.Manifest.permission.SUBSTITUTE_NOTIFICATION_APP_NAME)
public static final String EXTRA_SUBSTITUTE_APP_NAME = "android.substName";
field public static final int FLAG_AUTOGROUP_SUMMARY = 1024; // 0x400
}

public static final class Notification.TvExtender implements android.app.Notification.Extender {


ctor public Notification.TvExtender();
ctor public Notification.TvExtender(android.app.Notification);
method public android.app.Notification.Builder extend(android.app.Notification.Builder);
method public String getChannelId();
method public android.app.PendingIntent getContentIntent();
method public android.app.PendingIntent getDeleteIntent();
method public boolean getSuppressShowOverApps();
method public boolean isAvailableOnTv();
method public android.app.Notification.TvExtender setChannel(String);
method public android.app.Notification.TvExtender setChannelId(String);
method public android.app.Notification.TvExtender setContentIntent(android.app.PendingIntent);
method public android.app.Notification.TvExtender setDeleteIntent(android.app.PendingIntent);
method public android.app.Notification.TvExtender setSuppressShowOverApps(boolean);
}
public final class NotificationChannel implements android.os.Parcelable {
method public int getUserLockedFields();
method public boolean isDeleted();
method public void populateFromXml(org.xmlpull.v1.XmlPullParser);
method public void setBlockableSystem(boolean);
method public org.json.JSONObject toJson() throws org.json.JSONException;
method public void writeXml(org.xmlpull.v1.XmlSerializer) throws java.io.IOException;
}

public final class NotificationChannelGroup implements android.os.Parcelable {


method public org.json.JSONObject toJson() throws org.json.JSONException;
}

public class NotificationManager {


method @NonNull public java.util.List<java.lang.String> getAllowedAssistantAdjustments();
method @Nullable public android.content.ComponentName getAllowedNotificationAssistant();
method public boolean isNotificationAssistantAccessGranted(@NonNull
android.content.ComponentName);
method public void setNotificationAssistantAccessGranted(@Nullable
android.content.ComponentName, boolean);
}

public final class StatsManager {


method @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public void addConfig(long, byte[]) throws
android.app.StatsManager.StatsUnavailableException;
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean addConfiguration(long, byte[]);
method @Deprecated @Nullable @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getData(long);
method @Deprecated @Nullable @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getMetadata();
method @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public long[] getRegisteredExperimentIds()
throws android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getReports(long) throws
android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getStatsMetadata() throws
android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public void removeConfig(long) throws
android.app.StatsManager.StatsUnavailableException;
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean removeConfiguration(long);
method @NonNull @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public long[]
setActiveConfigsChangedOperation(@Nullable android.app.PendingIntent) throws
android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public void
setBroadcastSubscriber(android.app.PendingIntent, long, long) throws
android.app.StatsManager.StatsUnavailableException;
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean setBroadcastSubscriber(long,
long, android.app.PendingIntent);
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean setDataFetchOperation(long,
android.app.PendingIntent);
method @RequiresPermission(allOf={android.Manifest.permission.DUMP,
android.Manifest.permission.PACKAGE_USAGE_STATS}) public void
setFetchReportsOperation(android.app.PendingIntent, long) throws
android.app.StatsManager.StatsUnavailableException;
field public static final String ACTION_STATSD_STARTED = "android.app.action.STATSD_STARTED";
field public static final String EXTRA_STATS_ACTIVE_CONFIG_KEYS =
"android.app.extra.STATS_ACTIVE_CONFIG_KEYS";
field public static final String EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES =
"android.app.extra.STATS_BROADCAST_SUBSCRIBER_COOKIES";
field public static final String EXTRA_STATS_CONFIG_KEY = "android.app.extra.STATS_CONFIG_KEY";
field public static final String EXTRA_STATS_CONFIG_UID = "android.app.extra.STATS_CONFIG_UID";
field public static final String EXTRA_STATS_DIMENSIONS_VALUE =
"android.app.extra.STATS_DIMENSIONS_VALUE";
field public static final String EXTRA_STATS_SUBSCRIPTION_ID =
"android.app.extra.STATS_SUBSCRIPTION_ID";
field public static final String EXTRA_STATS_SUBSCRIPTION_RULE_ID =
"android.app.extra.STATS_SUBSCRIPTION_RULE_ID";
}

public static class StatsManager.StatsUnavailableException extends android.util.AndroidException {


ctor public StatsManager.StatsUnavailableException(String);
ctor public StatsManager.StatsUnavailableException(String, Throwable);
}
public class StatusBarManager {
method @NonNull @RequiresPermission(android.Manifest.permission.STATUS_BAR) public
android.app.StatusBarManager.DisableInfo getDisableInfo();
method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void
setDisabledForSetup(boolean);
method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void
setDisabledForSimNetworkLock(boolean);
}

public static final class StatusBarManager.DisableInfo {


method public boolean areAllComponentsEnabled();
method public boolean isNavigateToHomeDisabled();
method public boolean isNotificationPeekingDisabled();
method public boolean isRecentsDisabled();
method public boolean isSearchDisabled();
method public boolean isStatusBarExpansionDisabled();
}

public class UiModeManager {


method @RequiresPermission(android.Manifest.permission.ENTER_CAR_MODE_PRIORITIZED) public
void enableCarMode(@IntRange(from=0) int, int);
field public static final String ACTION_ENTER_CAR_MODE_PRIORITIZED =
"android.app.action.ENTER_CAR_MODE_PRIORITIZED";
field public static final String ACTION_EXIT_CAR_MODE_PRIORITIZED =
"android.app.action.EXIT_CAR_MODE_PRIORITIZED";
field public static final int DEFAULT_PRIORITY = 0; // 0x0
field public static final String EXTRA_CALLING_PACKAGE = "android.app.extra.CALLING_PACKAGE";
field public static final String EXTRA_PRIORITY = "android.app.extra.PRIORITY";
}

public final class Vr2dDisplayProperties implements android.os.Parcelable {


ctor public Vr2dDisplayProperties(int, int, int);
method public int describeContents();
method public void dump(@NonNull java.io.PrintWriter, @NonNull String);
method public int getAddedFlags();
method public int getDpi();
method public int getHeight();
method public int getRemovedFlags();
method public int getWidth();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.Vr2dDisplayProperties>
CREATOR;
field public static final int FLAG_VIRTUAL_DISPLAY_ENABLED = 1; // 0x1
}

public static final class Vr2dDisplayProperties.Builder {


ctor public Vr2dDisplayProperties.Builder();
method @NonNull public android.app.Vr2dDisplayProperties.Builder addFlags(int);
method @NonNull public android.app.Vr2dDisplayProperties build();
method @NonNull public android.app.Vr2dDisplayProperties.Builder removeFlags(int);
method @NonNull public android.app.Vr2dDisplayProperties.Builder setDimensions(int, int, int);
method @NonNull public android.app.Vr2dDisplayProperties.Builder setEnabled(boolean);
}

public class VrManager {


method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public int
getVr2dDisplayId();
method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS,
"android.permission.ACCESS_VR_STATE"}) public boolean isPersistentVrModeEnabled();
method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS,
"android.permission.ACCESS_VR_STATE"}) public boolean isVrModeEnabled();
method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS,
"android.permission.ACCESS_VR_STATE"}) public void registerVrStateCallback(@NonNull
java.util.concurrent.Executor, @NonNull android.app.VrStateCallback);
method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void
setAndBindVrCompositor(android.content.ComponentName);
method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void
setPersistentVrModeEnabled(boolean);
method @RequiresPermission("android.permission.ACCESS_VR_MANAGER") public void
setStandbyEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void
setVr2dDisplayProperties(@NonNull android.app.Vr2dDisplayProperties);
method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public void
setVrInputMethod(@Nullable android.content.ComponentName);
method @RequiresPermission(anyOf={android.Manifest.permission.RESTRICTED_VR_ACCESS,
"android.permission.ACCESS_VR_STATE"}) public void unregisterVrStateCallback(@NonNull
android.app.VrStateCallback);
}

public abstract class VrStateCallback {


ctor public VrStateCallback();
method public void onPersistentVrStateChanged(boolean);
method public void onVrStateChanged(boolean);
}

public final class WallpaperColors implements android.os.Parcelable {


ctor public WallpaperColors(@NonNull android.graphics.Color, @Nullable android.graphics.Color,
@Nullable android.graphics.Color, int);
method public int getColorHints();
field public static final int HINT_SUPPORTS_DARK_TEXT = 1; // 0x1
field public static final int HINT_SUPPORTS_DARK_THEME = 2; // 0x2
}

public final class WallpaperInfo implements android.os.Parcelable {


method public boolean supportsAmbientMode();
}

public class WallpaperManager {


method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public
void clearWallpaper(int, int);
method public void setDisplayOffset(android.os.IBinder, int, int);
method @RequiresPermission(android.Manifest.permission.SET_WALLPAPER_COMPONENT) public
boolean setWallpaperComponent(android.content.ComponentName);
}

package android.app.admin {

public class DevicePolicyManager {


method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public
boolean getBluetoothContactSharingDisabled(@NonNull android.os.UserHandle);
method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String
getDeviceOwner();
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public
android.content.ComponentName getDeviceOwnerComponentOnAnyUser();
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String
getDeviceOwnerNameOnAnyUser();
method @Nullable public CharSequence getDeviceOwnerOrganizationName();
method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public
android.os.UserHandle getDeviceOwnerUser();
method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public
java.util.List<java.lang.String> getPermittedAccessibilityServices(int);
method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public
java.util.List<java.lang.String> getPermittedInputMethodsForCurrentUser();
method @Nullable public android.content.ComponentName getProfileOwner() throws
java.lang.IllegalArgumentException;
method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String
getProfileOwnerNameAsUser(int) throws java.lang.IllegalArgumentException;
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public int
getUserProvisioningState();
method public boolean isDeviceManaged();
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean
isDeviceProvisioned();
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean
isDeviceProvisioningConfigApplied();
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean
isManagedKiosk();
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean
isUnattendedManagedKiosk();
method @RequiresPermission("android.permission.NOTIFY_PENDING_SYSTEM_UPDATE") public void
notifyPendingSystemUpdate(long);
method @RequiresPermission("android.permission.NOTIFY_PENDING_SYSTEM_UPDATE") public void
notifyPendingSystemUpdate(long, boolean);
method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public
boolean packageHasActiveAdmins(String);
method @Deprecated @RequiresPermission("android.permission.MANAGE_DEVICE_ADMINS") public
boolean setActiveProfileOwner(@NonNull android.content.ComponentName, String) throws
java.lang.IllegalArgumentException;
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public void
setDeviceProvisioningConfigApplied();
method
@RequiresPermission(value=android.Manifest.permission.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCE
SS, conditional=true) public void setProfileOwnerCanAccessDeviceIds(@NonNull
android.content.ComponentName);
field public static final String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_ALLOWED =
"android.account.DEVICE_OR_PROFILE_OWNER_ALLOWED";
field public static final String ACCOUNT_FEATURE_DEVICE_OR_PROFILE_OWNER_DISALLOWED =
"android.account.DEVICE_OR_PROFILE_OWNER_DISALLOWED";
field public static final String ACTION_PROVISION_FINALIZATION =
"android.app.action.PROVISION_FINALIZATION";
field public static final String ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE =
"android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE";
field public static final String ACTION_SET_PROFILE_OWNER =
"android.app.action.SET_PROFILE_OWNER";
field public static final String ACTION_STATE_USER_SETUP_COMPLETE =
"android.app.action.STATE_USER_SETUP_COMPLETE";
field public static final String EXTRA_PROFILE_OWNER_NAME =
"android.app.extra.PROFILE_OWNER_NAME";
field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_ICON_URI =
"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_ICON_URI";
field public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_LABEL =
"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_LABEL";
field public static final String EXTRA_PROVISIONING_ORGANIZATION_NAME =
"android.app.extra.PROVISIONING_ORGANIZATION_NAME";
field public static final String EXTRA_PROVISIONING_SUPPORT_URL =
"android.app.extra.PROVISIONING_SUPPORT_URL";
field public static final String EXTRA_PROVISIONING_TRIGGER =
"android.app.extra.PROVISIONING_TRIGGER";
field public static final String EXTRA_RESTRICTION = "android.app.extra.RESTRICTION";
field public static final int PROVISIONING_TRIGGER_CLOUD_ENROLLMENT = 1; // 0x1
field public static final int PROVISIONING_TRIGGER_PERSISTENT_DEVICE_OWNER = 3; // 0x3
field public static final int PROVISIONING_TRIGGER_QR_CODE = 2; // 0x2
field public static final int PROVISIONING_TRIGGER_UNSPECIFIED = 0; // 0x0
field public static final int STATE_USER_PROFILE_COMPLETE = 4; // 0x4
field public static final int STATE_USER_SETUP_COMPLETE = 2; // 0x2
field public static final int STATE_USER_SETUP_FINALIZED = 3; // 0x3
field public static final int STATE_USER_SETUP_INCOMPLETE = 1; // 0x1
field public static final int STATE_USER_UNMANAGED = 0; // 0x0
}

public final class SystemUpdatePolicy implements android.os.Parcelable {


method public android.app.admin.SystemUpdatePolicy.InstallationOption
getInstallationOptionAt(long);
field public static final int TYPE_PAUSE = 4; // 0x4
}

public static class SystemUpdatePolicy.InstallationOption {


method public long getEffectiveTime();
method public int getType();
}

package android.app.assist {

public static class AssistStructure.ViewNode {


ctor public AssistStructure.ViewNode();
}

package android.app.backup {

public class BackupDataInput {


ctor public BackupDataInput(java.io.FileDescriptor);
}

public class BackupDataOutput {


ctor public BackupDataOutput(java.io.FileDescriptor);
ctor public BackupDataOutput(java.io.FileDescriptor, long);
}

public class BackupManager {


method @RequiresPermission(android.Manifest.permission.BACKUP) public void backupNow();
method @RequiresPermission(android.Manifest.permission.BACKUP) public
android.app.backup.RestoreSession beginRestoreSession();
method @RequiresPermission(android.Manifest.permission.BACKUP) public void cancelBackups();
method @RequiresPermission(android.Manifest.permission.BACKUP) public long
getAvailableRestoreToken(String);
method @RequiresPermission(android.Manifest.permission.BACKUP) public android.content.Intent
getConfigurationIntent(String);
method @RequiresPermission(android.Manifest.permission.BACKUP) public String
getCurrentTransport();
method @Nullable @RequiresPermission(android.Manifest.permission.BACKUP) public
android.content.ComponentName getCurrentTransportComponent();
method @RequiresPermission(android.Manifest.permission.BACKUP) public android.content.Intent
getDataManagementIntent(String);
method @Nullable @RequiresPermission(android.Manifest.permission.BACKUP) public CharSequence
getDataManagementIntentLabel(@NonNull String);
method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.BACKUP) public
String getDataManagementLabel(@NonNull String);
method @RequiresPermission(android.Manifest.permission.BACKUP) public String
getDestinationString(String);
method @RequiresPermission(android.Manifest.permission.BACKUP) public boolean
isAppEligibleForBackup(String);
method @RequiresPermission(android.Manifest.permission.BACKUP) public boolean
isBackupEnabled();
method @RequiresPermission(android.Manifest.permission.BACKUP) public boolean
isBackupServiceActive(android.os.UserHandle);
method @RequiresPermission(android.Manifest.permission.BACKUP) public String[]
listAllTransports();
method @RequiresPermission(android.Manifest.permission.BACKUP) public int
requestBackup(String[], android.app.backup.BackupObserver);
method @RequiresPermission(android.Manifest.permission.BACKUP) public int
requestBackup(String[], android.app.backup.BackupObserver,
android.app.backup.BackupManagerMonitor, int);
method @Deprecated public int requestRestore(android.app.backup.RestoreObserver,
android.app.backup.BackupManagerMonitor);
method @Deprecated @RequiresPermission(android.Manifest.permission.BACKUP) public String
selectBackupTransport(String);
method @RequiresPermission(android.Manifest.permission.BACKUP) public void
selectBackupTransport(android.content.ComponentName,
android.app.backup.SelectBackupTransportCallback);
method @RequiresPermission(android.Manifest.permission.BACKUP) public void
setAncestralSerialNumber(long);
method @RequiresPermission(android.Manifest.permission.BACKUP) public void
setAutoRestore(boolean);
method @RequiresPermission(android.Manifest.permission.BACKUP) public void
setBackupEnabled(boolean);
method @Deprecated @RequiresPermission(android.Manifest.permission.BACKUP) public void
updateTransportAttributes(@NonNull android.content.ComponentName, @NonNull String, @Nullable
android.content.Intent, @NonNull String, @Nullable android.content.Intent, @Nullable String);
method @RequiresPermission(android.Manifest.permission.BACKUP) public void
updateTransportAttributes(@NonNull android.content.ComponentName, @NonNull String, @Nullable
android.content.Intent, @NonNull String, @Nullable android.content.Intent, @Nullable CharSequence);
field public static final int ERROR_AGENT_FAILURE = -1003; // 0xfffffc15
field public static final int ERROR_BACKUP_CANCELLED = -2003; // 0xfffff82d
field public static final int ERROR_BACKUP_NOT_ALLOWED = -2001; // 0xfffff82f
field public static final int ERROR_PACKAGE_NOT_FOUND = -2002; // 0xfffff82e
field public static final int ERROR_TRANSPORT_ABORTED = -1000; // 0xfffffc18
field public static final int ERROR_TRANSPORT_INVALID = -2; // 0xfffffffe
field public static final int ERROR_TRANSPORT_PACKAGE_REJECTED = -1002; // 0xfffffc16
field public static final int ERROR_TRANSPORT_QUOTA_EXCEEDED = -1005; // 0xfffffc13
field public static final int ERROR_TRANSPORT_UNAVAILABLE = -1; // 0xffffffff
field public static final int FLAG_NON_INCREMENTAL_BACKUP = 1; // 0x1
field public static final String PACKAGE_MANAGER_SENTINEL = "@pm@";
field public static final int SUCCESS = 0; // 0x0
}
public class BackupManagerMonitor {
ctor public BackupManagerMonitor();
method public void onEvent(android.os.Bundle);
field public static final String EXTRA_LOG_CANCEL_ALL =
"android.app.backup.extra.LOG_CANCEL_ALL";
field public static final String EXTRA_LOG_EVENT_CATEGORY =
"android.app.backup.extra.LOG_EVENT_CATEGORY";
field public static final String EXTRA_LOG_EVENT_ID = "android.app.backup.extra.LOG_EVENT_ID";
field public static final String EXTRA_LOG_EVENT_PACKAGE_LONG_VERSION =
"android.app.backup.extra.LOG_EVENT_PACKAGE_FULL_VERSION";
field public static final String EXTRA_LOG_EVENT_PACKAGE_NAME =
"android.app.backup.extra.LOG_EVENT_PACKAGE_NAME";
field @Deprecated public static final String EXTRA_LOG_EVENT_PACKAGE_VERSION =
"android.app.backup.extra.LOG_EVENT_PACKAGE_VERSION";
field public static final String EXTRA_LOG_EXCEPTION_FULL_BACKUP =
"android.app.backup.extra.LOG_EXCEPTION_FULL_BACKUP";
field public static final String EXTRA_LOG_ILLEGAL_KEY =
"android.app.backup.extra.LOG_ILLEGAL_KEY";
field public static final String EXTRA_LOG_MANIFEST_PACKAGE_NAME =
"android.app.backup.extra.LOG_MANIFEST_PACKAGE_NAME";
field public static final String EXTRA_LOG_OLD_VERSION =
"android.app.backup.extra.LOG_OLD_VERSION";
field public static final String EXTRA_LOG_POLICY_ALLOW_APKS =
"android.app.backup.extra.LOG_POLICY_ALLOW_APKS";
field public static final String EXTRA_LOG_PREFLIGHT_ERROR =
"android.app.backup.extra.LOG_PREFLIGHT_ERROR";
field public static final String EXTRA_LOG_RESTORE_ANYWAY =
"android.app.backup.extra.LOG_RESTORE_ANYWAY";
field public static final String EXTRA_LOG_RESTORE_VERSION =
"android.app.backup.extra.LOG_RESTORE_VERSION";
field public static final String EXTRA_LOG_WIDGET_PACKAGE_NAME =
"android.app.backup.extra.LOG_WIDGET_PACKAGE_NAME";
field public static final int LOG_EVENT_CATEGORY_AGENT = 2; // 0x2
field public static final int LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY = 3; // 0x3
field public static final int LOG_EVENT_CATEGORY_TRANSPORT = 1; // 0x1
field public static final int LOG_EVENT_ID_APK_NOT_INSTALLED = 40; // 0x28
field public static final int LOG_EVENT_ID_APP_HAS_NO_AGENT = 28; // 0x1c
field public static final int LOG_EVENT_ID_BACKUP_DISABLED = 13; // 0xd
field public static final int LOG_EVENT_ID_CANNOT_RESTORE_WITHOUT_APK = 41; // 0x29
field public static final int LOG_EVENT_ID_CANT_FIND_AGENT = 30; // 0x1e
field public static final int LOG_EVENT_ID_CORRUPT_MANIFEST = 46; // 0x2e
field public static final int LOG_EVENT_ID_DEVICE_NOT_PROVISIONED = 14; // 0xe
field public static final int LOG_EVENT_ID_ERROR_PREFLIGHT = 16; // 0x10
field public static final int LOG_EVENT_ID_EXCEPTION_FULL_BACKUP = 19; // 0x13
field public static final int LOG_EVENT_ID_EXPECTED_DIFFERENT_PACKAGE = 43; // 0x2b
field public static final int LOG_EVENT_ID_FULL_BACKUP_CANCEL = 4; // 0x4
field public static final int LOG_EVENT_ID_FULL_RESTORE_ALLOW_BACKUP_FALSE = 39; // 0x27
field public static final int LOG_EVENT_ID_FULL_RESTORE_SIGNATURE_MISMATCH = 37; // 0x25
field public static final int LOG_EVENT_ID_FULL_RESTORE_TIMEOUT = 45; // 0x2d
field public static final int LOG_EVENT_ID_ILLEGAL_KEY = 5; // 0x5
field public static final int LOG_EVENT_ID_KEY_VALUE_BACKUP_CANCEL = 21; // 0x15
field public static final int LOG_EVENT_ID_KEY_VALUE_RESTORE_TIMEOUT = 31; // 0x1f
field public static final int LOG_EVENT_ID_LOST_TRANSPORT = 25; // 0x19
field public static final int LOG_EVENT_ID_MISSING_SIGNATURE = 42; // 0x2a
field public static final int LOG_EVENT_ID_NO_DATA_TO_SEND = 7; // 0x7
field public static final int LOG_EVENT_ID_NO_PACKAGES = 49; // 0x31
field public static final int LOG_EVENT_ID_NO_PM_METADATA_RECEIVED = 23; // 0x17
field public static final int LOG_EVENT_ID_NO_RESTORE_METADATA_AVAILABLE = 22; // 0x16
field public static final int LOG_EVENT_ID_PACKAGE_INELIGIBLE = 9; // 0x9
field public static final int LOG_EVENT_ID_PACKAGE_KEY_VALUE_PARTICIPANT = 10; // 0xa
field public static final int LOG_EVENT_ID_PACKAGE_NOT_FOUND = 12; // 0xc
field public static final int LOG_EVENT_ID_PACKAGE_NOT_PRESENT = 26; // 0x1a
field public static final int LOG_EVENT_ID_PACKAGE_STOPPED = 11; // 0xb
field public static final int LOG_EVENT_ID_PACKAGE_TRANSPORT_NOT_PRESENT = 15; // 0xf
field public static final int LOG_EVENT_ID_PM_AGENT_HAS_NO_METADATA = 24; // 0x18
field public static final int LOG_EVENT_ID_QUOTA_HIT_PREFLIGHT = 18; // 0x12
field public static final int LOG_EVENT_ID_RESTORE_ANY_VERSION = 34; // 0x22
field public static final int LOG_EVENT_ID_RESTORE_VERSION_HIGHER = 27; // 0x1b
field public static final int LOG_EVENT_ID_SIGNATURE_MISMATCH = 29; // 0x1d
field public static final int LOG_EVENT_ID_SYSTEM_APP_NO_AGENT = 38; // 0x26
field public static final int LOG_EVENT_ID_TRANSPORT_IS_NULL = 50; // 0x32
field public static final int LOG_EVENT_ID_TRANSPORT_NON_INCREMENTAL_BACKUP_REQUIRED =
51; // 0x33
field public static final int LOG_EVENT_ID_UNKNOWN_VERSION = 44; // 0x2c
field public static final int LOG_EVENT_ID_VERSIONS_MATCH = 35; // 0x23
field public static final int LOG_EVENT_ID_VERSION_OF_BACKUP_OLDER = 36; // 0x24
field public static final int LOG_EVENT_ID_WIDGET_METADATA_MISMATCH = 47; // 0x2f
field public static final int LOG_EVENT_ID_WIDGET_UNKNOWN_VERSION = 48; // 0x30
}

public abstract class BackupObserver {


ctor public BackupObserver();
method public void backupFinished(int);
method public void onResult(String, int);
method public void onUpdate(String, android.app.backup.BackupProgress);
}

public class BackupProgress implements android.os.Parcelable {


ctor public BackupProgress(long, long);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.backup.BackupProgress>
CREATOR;
field public final long bytesExpected;
field public final long bytesTransferred;
}

public class BackupTransport {


ctor public BackupTransport();
method public int abortFullRestore();
method public void cancelFullBackup();
method public int checkFullBackupSize(long);
method public int clearBackupData(android.content.pm.PackageInfo);
method public android.content.Intent configurationIntent();
method public String currentDestinationString();
method public android.content.Intent dataManagementIntent();
method @Nullable public CharSequence dataManagementIntentLabel();
method @Deprecated @Nullable public String dataManagementLabel();
method public int finishBackup();
method public void finishRestore();
method public android.app.backup.RestoreSet[] getAvailableRestoreSets();
method public long getBackupQuota(String, boolean);
method public android.os.IBinder getBinder();
method public long getCurrentRestoreSet();
method public int getNextFullRestoreDataChunk(android.os.ParcelFileDescriptor);
method public int getRestoreData(android.os.ParcelFileDescriptor);
method public int getTransportFlags();
method public int initializeDevice();
method public boolean isAppEligibleForBackup(android.content.pm.PackageInfo, boolean);
method public String name();
method public android.app.backup.RestoreDescription nextRestorePackage();
method public int performBackup(android.content.pm.PackageInfo, android.os.ParcelFileDescriptor,
int);
method public int performBackup(android.content.pm.PackageInfo, android.os.ParcelFileDescriptor);
method public int performFullBackup(android.content.pm.PackageInfo,
android.os.ParcelFileDescriptor, int);
method public int performFullBackup(android.content.pm.PackageInfo,
android.os.ParcelFileDescriptor);
method public long requestBackupTime();
method public long requestFullBackupTime();
method public int sendBackupData(int);
method public int startRestore(long, android.content.pm.PackageInfo[]);
method public String transportDirName();
field public static final int AGENT_ERROR = -1003; // 0xfffffc15
field public static final int AGENT_UNKNOWN = -1004; // 0xfffffc14
field public static final String EXTRA_TRANSPORT_REGISTRATION =
"android.app.backup.extra.TRANSPORT_REGISTRATION";
field public static final int FLAG_INCREMENTAL = 2; // 0x2
field public static final int FLAG_NON_INCREMENTAL = 4; // 0x4
field public static final int FLAG_USER_INITIATED = 1; // 0x1
field public static final int NO_MORE_DATA = -1; // 0xffffffff
field public static final int TRANSPORT_ERROR = -1000; // 0xfffffc18
field public static final int TRANSPORT_NON_INCREMENTAL_BACKUP_REQUIRED = -1006; // 0xfffffc12
field public static final int TRANSPORT_NOT_INITIALIZED = -1001; // 0xfffffc17
field public static final int TRANSPORT_OK = 0; // 0x0
field public static final int TRANSPORT_PACKAGE_REJECTED = -1002; // 0xfffffc16
field public static final int TRANSPORT_QUOTA_EXCEEDED = -1005; // 0xfffffc13
}

public class RestoreDescription implements android.os.Parcelable {


ctor public RestoreDescription(String, int);
method public int describeContents();
method public int getDataType();
method public String getPackageName();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.backup.RestoreDescription> CREATOR;
field public static final android.app.backup.RestoreDescription NO_MORE_PACKAGES;
field public static final int TYPE_FULL_STREAM = 2; // 0x2
field public static final int TYPE_KEY_VALUE = 1; // 0x1
}

public abstract class RestoreObserver {


method public void restoreSetsAvailable(android.app.backup.RestoreSet[]);
}

public class RestoreSession {


method public void endRestoreSession();
method public int getAvailableRestoreSets(android.app.backup.RestoreObserver,
android.app.backup.BackupManagerMonitor);
method public int getAvailableRestoreSets(android.app.backup.RestoreObserver);
method public int restoreAll(long, android.app.backup.RestoreObserver,
android.app.backup.BackupManagerMonitor);
method public int restoreAll(long, android.app.backup.RestoreObserver);
method public int restorePackage(String, android.app.backup.RestoreObserver,
android.app.backup.BackupManagerMonitor);
method public int restorePackage(String, android.app.backup.RestoreObserver);
method public int restorePackages(long, @Nullable android.app.backup.RestoreObserver, @NonNull
java.util.Set<java.lang.String>, @Nullable android.app.backup.BackupManagerMonitor);
method public int restorePackages(long, @Nullable android.app.backup.RestoreObserver, @NonNull
java.util.Set<java.lang.String>);
}

public class RestoreSet implements android.os.Parcelable {


ctor public RestoreSet();
ctor public RestoreSet(String, String, long);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.backup.RestoreSet>
CREATOR;
field public String device;
field public String name;
field public long token;
}

public abstract class SelectBackupTransportCallback {


ctor public SelectBackupTransportCallback();
method public void onFailure(int);
method public void onSuccess(String);
}

package android.app.compat {

public final class CompatChanges {


method public static boolean isChangeEnabled(long);
method public static boolean isChangeEnabled(long, @NonNull String, @NonNull
android.os.UserHandle);
method public static boolean isChangeEnabled(long, int);
}

package android.app.contentsuggestions {

public final class ClassificationsRequest implements android.os.Parcelable {


method public int describeContents();
method @NonNull public android.os.Bundle getExtras();
method @NonNull public java.util.List<android.app.contentsuggestions.ContentSelection>
getSelections();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.contentsuggestions.ClassificationsRequest> CREATOR;
}

public static final class ClassificationsRequest.Builder {


ctor public ClassificationsRequest.Builder(@NonNull
java.util.List<android.app.contentsuggestions.ContentSelection>);
method @NonNull public android.app.contentsuggestions.ClassificationsRequest build();
method @NonNull public android.app.contentsuggestions.ClassificationsRequest.Builder
setExtras(@NonNull android.os.Bundle);
}

public final class ContentClassification implements android.os.Parcelable {


ctor public ContentClassification(@NonNull String, @NonNull android.os.Bundle);
method public int describeContents();
method @NonNull public android.os.Bundle getExtras();
method @NonNull public String getId();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.contentsuggestions.ContentClassification> CREATOR;
}

public final class ContentSelection implements android.os.Parcelable {


ctor public ContentSelection(@NonNull String, @NonNull android.os.Bundle);
method public int describeContents();
method @NonNull public android.os.Bundle getExtras();
method @NonNull public String getId();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.contentsuggestions.ContentSelection> CREATOR;
}

public final class ContentSuggestionsManager {


method public void classifyContentSelections(@NonNull
android.app.contentsuggestions.ClassificationsRequest, @NonNull java.util.concurrent.Executor,
@NonNull android.app.contentsuggestions.ContentSuggestionsManager.ClassificationsCallback);
method public boolean isEnabled();
method public void notifyInteraction(@NonNull String, @NonNull android.os.Bundle);
method public void provideContextImage(int, @NonNull android.os.Bundle);
method public void suggestContentSelections(@NonNull
android.app.contentsuggestions.SelectionsRequest, @NonNull java.util.concurrent.Executor, @NonNull
android.app.contentsuggestions.ContentSuggestionsManager.SelectionsCallback);
}

public static interface ContentSuggestionsManager.ClassificationsCallback {


method public void onContentClassificationsAvailable(int, @NonNull
java.util.List<android.app.contentsuggestions.ContentClassification>);
}

public static interface ContentSuggestionsManager.SelectionsCallback {


method public void onContentSelectionsAvailable(int, @NonNull
java.util.List<android.app.contentsuggestions.ContentSelection>);
}

public final class SelectionsRequest implements android.os.Parcelable {


method public int describeContents();
method @NonNull public android.os.Bundle getExtras();
method @Nullable public android.graphics.Point getInterestPoint();
method public int getTaskId();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.contentsuggestions.SelectionsRequest> CREATOR;
}

public static final class SelectionsRequest.Builder {


ctor public SelectionsRequest.Builder(int);
method @NonNull public android.app.contentsuggestions.SelectionsRequest build();
method @NonNull public android.app.contentsuggestions.SelectionsRequest.Builder
setExtras(@NonNull android.os.Bundle);
method @NonNull public android.app.contentsuggestions.SelectionsRequest.Builder
setInterestPoint(@NonNull android.graphics.Point);
}
}

package android.app.job {

public abstract class JobScheduler {


method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public abstract
int scheduleAsPackage(@NonNull android.app.job.JobInfo, @NonNull String, int, String);
}

package android.app.prediction {

public final class AppPredictionContext implements android.os.Parcelable {


method public int describeContents();
method @Nullable public android.os.Bundle getExtras();
method @NonNull public String getPackageName();
method @IntRange(from=0) public int getPredictedTargetCount();
method @NonNull public String getUiSurface();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.prediction.AppPredictionContext> CREATOR;
}

public static final class AppPredictionContext.Builder {


ctor public AppPredictionContext.Builder(@NonNull android.content.Context);
method @NonNull public android.app.prediction.AppPredictionContext build();
method @NonNull public android.app.prediction.AppPredictionContext.Builder setExtras(@Nullable
android.os.Bundle);
method @NonNull public android.app.prediction.AppPredictionContext.Builder
setPredictedTargetCount(@IntRange(from=0) int);
method @NonNull public android.app.prediction.AppPredictionContext.Builder
setUiSurface(@NonNull String);
}

public final class AppPredictionManager {


method @NonNull public android.app.prediction.AppPredictor
createAppPredictionSession(@NonNull android.app.prediction.AppPredictionContext);
}

public final class AppPredictionSessionId implements android.os.Parcelable {


method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final
android.os.Parcelable.Creator<android.app.prediction.AppPredictionSessionId> CREATOR;
}

public final class AppPredictor {


method public void destroy();
method public void notifyAppTargetEvent(@NonNull android.app.prediction.AppTargetEvent);
method public void notifyLaunchLocationShown(@NonNull String, @NonNull
java.util.List<android.app.prediction.AppTargetId>);
method public void registerPredictionUpdates(@NonNull java.util.concurrent.Executor, @NonNull
android.app.prediction.AppPredictor.Callback);
method public void requestPredictionUpdate();
method @Nullable public void sortTargets(@NonNull
java.util.List<android.app.prediction.AppTarget>, @NonNull java.util.concurrent.Executor, @NonNull
java.util.function.Consumer<java.util.List<android.app.prediction.AppTarget>>);
method public void unregisterPredictionUpdates(@NonNull
android.app.prediction.AppPredictor.Callback);
}

public static interface AppPredictor.Callback {


method public void onTargetsAvailable(@NonNull java.util.List<android.app.prediction.AppTarget>);
}

public final class AppTarget implements android.os.Parcelable {


method public int describeContents();
method @Nullable public String getClassName();
method @NonNull public android.app.prediction.AppTargetId getId();
method @NonNull public String getPackageName();
method @IntRange(from=0) public int getRank();
method @Nullable public android.content.pm.ShortcutInfo getShortcutInfo();
method @NonNull public android.os.UserHandle getUser();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.prediction.AppTarget>
CREATOR;
}

public static final class AppTarget.Builder {


ctor public AppTarget.Builder(@NonNull android.app.prediction.AppTargetId, @NonNull String,
@NonNull android.os.UserHandle);
ctor public AppTarget.Builder(@NonNull android.app.prediction.AppTargetId, @NonNull
android.content.pm.ShortcutInfo);
method @NonNull public android.app.prediction.AppTarget build();
method @NonNull public android.app.prediction.AppTarget.Builder setClassName(@NonNull String);
method @NonNull public android.app.prediction.AppTarget.Builder setRank(@IntRange(from=0) int);
}

public final class AppTargetEvent implements android.os.Parcelable {


method public int describeContents();
method public int getAction();
method @Nullable public String getLaunchLocation();
method @Nullable public android.app.prediction.AppTarget getTarget();
method public void writeToParcel(android.os.Parcel, int);
field public static final int ACTION_DISMISS = 2; // 0x2
field public static final int ACTION_LAUNCH = 1; // 0x1
field public static final int ACTION_PIN = 3; // 0x3
field @NonNull public static final
android.os.Parcelable.Creator<android.app.prediction.AppTargetEvent> CREATOR;
}

public static final class AppTargetEvent.Builder {


ctor public AppTargetEvent.Builder(@Nullable android.app.prediction.AppTarget, int);
method @NonNull public android.app.prediction.AppTargetEvent build();
method @NonNull public android.app.prediction.AppTargetEvent.Builder
setLaunchLocation(@Nullable String);
}

public final class AppTargetId implements android.os.Parcelable {


ctor public AppTargetId(@NonNull String);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.prediction.AppTargetId>
CREATOR;
}

package android.app.role {

public interface OnRoleHoldersChangedListener {


method public void onRoleHoldersChanged(@NonNull String, @NonNull android.os.UserHandle);
}
public abstract class RoleControllerService extends android.app.Service {
ctor public RoleControllerService();
method @WorkerThread public abstract boolean onAddRoleHolder(@NonNull String, @NonNull
String, int);
method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent);
method @WorkerThread public abstract boolean onClearRoleHolders(@NonNull String, int);
method @WorkerThread public abstract boolean onGrantDefaultRoles();
method public abstract boolean onIsApplicationQualifiedForRole(@NonNull String, @NonNull String);
method public abstract boolean onIsRoleVisible(@NonNull String);
method @WorkerThread public abstract boolean onRemoveRoleHolder(@NonNull String, @NonNull
String, int);
field public static final String SERVICE_INTERFACE = "android.app.role.RoleControllerService";
}

public final class RoleManager {


method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void
addOnRoleHoldersChangedListenerAsUser(@NonNull java.util.concurrent.Executor, @NonNull
android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle);
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void
addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle,
@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
method
@RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTRO
LLER") public boolean addRoleHolderFromController(@NonNull String, @NonNull String);
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void
clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull
java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
method @Nullable public String getDefaultSmsPackage(int);
method @NonNull
@RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTRO
LLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String);
method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS)
public java.util.List<java.lang.String> getRoleHolders(@NonNull String);
method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS)
public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull
android.os.UserHandle);
method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void
removeOnRoleHoldersChangedListenerAsUser(@NonNull
android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle);
method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void
removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle,
@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
method
@RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTRO
LLER") public boolean removeRoleHolderFromController(@NonNull String, @NonNull String);
method
@RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTRO
LLER") public void setRoleNamesFromController(@NonNull java.util.List<java.lang.String>);
field public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; // 0x1
}

package android.app.usage {

public final class CacheQuotaHint implements android.os.Parcelable {


ctor public CacheQuotaHint(android.app.usage.CacheQuotaHint.Builder);
method public int describeContents();
method public long getQuota();
method public int getUid();
method public android.app.usage.UsageStats getUsageStats();
method public String getVolumeUuid();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.usage.CacheQuotaHint>
CREATOR;
field public static final long QUOTA_NOT_SET = -1L; // 0xffffffffffffffffL
}

public static final class CacheQuotaHint.Builder {


ctor public CacheQuotaHint.Builder();
ctor public CacheQuotaHint.Builder(android.app.usage.CacheQuotaHint);
method @NonNull public android.app.usage.CacheQuotaHint build();
method @NonNull public android.app.usage.CacheQuotaHint.Builder setQuota(long);
method @NonNull public android.app.usage.CacheQuotaHint.Builder setUid(int);
method @NonNull public android.app.usage.CacheQuotaHint.Builder setUsageStats(@Nullable
android.app.usage.UsageStats);
method @NonNull public android.app.usage.CacheQuotaHint.Builder setVolumeUuid(@Nullable
String);
}

public abstract class CacheQuotaService extends android.app.Service {


ctor public CacheQuotaService();
method public android.os.IBinder onBind(android.content.Intent);
method public abstract java.util.List<android.app.usage.CacheQuotaHint>
onComputeCacheQuotaHints(java.util.List<android.app.usage.CacheQuotaHint>);
field public static final String SERVICE_INTERFACE = "android.app.usage.CacheQuotaService";
}

public class NetworkStatsManager {


method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS)
public android.net.netstats.provider.NetworkStatsProviderCallback
registerNetworkStatsProvider(@NonNull String, @NonNull
android.net.netstats.provider.AbstractNetworkStatsProvider);
}

public static final class UsageEvents.Event {


method public int getInstanceId();
method @Nullable public String getNotificationChannelId();
method @Nullable public String getTaskRootClassName();
method @Nullable public String getTaskRootPackageName();
method public boolean isInstantApp();
field public static final int NOTIFICATION_INTERRUPTION = 12; // 0xc
field public static final int NOTIFICATION_SEEN = 10; // 0xa
field public static final int SLICE_PINNED = 14; // 0xe
field public static final int SLICE_PINNED_PRIV = 13; // 0xd
field public static final int SYSTEM_INTERACTION = 6; // 0x6
}

public final class UsageStats implements android.os.Parcelable {


method public int getAppLaunchCount();
}

public final class UsageStatsManager {


method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int
getAppStandbyBucket(String);
method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public
java.util.Map<java.lang.String,java.lang.Integer> getAppStandbyBuckets();
method public int getUsageSource();
method @RequiresPermission(android.Manifest.permission.BIND_CARRIER_SERVICES) public void
onCarrierPrivilegedAppsChanged();
method @RequiresPermission(allOf={android.Manifest.permission.SUSPEND_APPS,
android.Manifest.permission.OBSERVE_APP_USAGE}) public void registerAppUsageLimitObserver(int,
@NonNull String[], @NonNull java.time.Duration, @NonNull java.time.Duration, @Nullable
android.app.PendingIntent);
method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void
registerAppUsageObserver(int, @NonNull String[], long, @NonNull java.util.concurrent.TimeUnit,
@NonNull android.app.PendingIntent);
method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void
registerUsageSessionObserver(int, @NonNull String[], @NonNull java.time.Duration, @NonNull
java.time.Duration, @NonNull android.app.PendingIntent, @Nullable android.app.PendingIntent);
method public void reportUsageStart(@NonNull android.app.Activity, @NonNull String);
method public void reportUsageStart(@NonNull android.app.Activity, @NonNull String, long);
method public void reportUsageStop(@NonNull android.app.Activity, @NonNull String);
method @RequiresPermission(android.Manifest.permission.CHANGE_APP_IDLE_STATE) public void
setAppStandbyBucket(String, int);
method @RequiresPermission(android.Manifest.permission.CHANGE_APP_IDLE_STATE) public void
setAppStandbyBuckets(java.util.Map<java.lang.String,java.lang.Integer>);
method @RequiresPermission(allOf={android.Manifest.permission.SUSPEND_APPS,
android.Manifest.permission.OBSERVE_APP_USAGE}) public void
unregisterAppUsageLimitObserver(int);
method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void
unregisterAppUsageObserver(int);
method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void
unregisterUsageSessionObserver(int);
method
@RequiresPermission(android.Manifest.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST) public
void whitelistAppTemporarily(String, long, android.os.UserHandle);
field public static final String EXTRA_OBSERVER_ID = "android.app.usage.extra.OBSERVER_ID";
field public static final String EXTRA_TIME_LIMIT = "android.app.usage.extra.TIME_LIMIT";
field public static final String EXTRA_TIME_USED = "android.app.usage.extra.TIME_USED";
field public static final int STANDBY_BUCKET_EXEMPTED = 5; // 0x5
field public static final int STANDBY_BUCKET_NEVER = 50; // 0x32
field public static final int USAGE_SOURCE_CURRENT_ACTIVITY = 2; // 0x2
field public static final int USAGE_SOURCE_TASK_ROOT_ACTIVITY = 1; // 0x1
}

package android.bluetooth {

public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile {


method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void
disableOptionalCodecs(@Nullable android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void
enableOptionalCodecs(@Nullable android.bluetooth.BluetoothDevice);
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public
android.bluetooth.BluetoothDevice getActiveDevice();
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public
android.bluetooth.BluetoothCodecStatus getCodecStatus(@Nullable
android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int
getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int
getOptionalCodecsEnabled(@Nullable android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void
setCodecConfigPreference(@Nullable android.bluetooth.BluetoothDevice, @Nullable
android.bluetooth.BluetoothCodecConfig);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean
setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void
setOptionalCodecsEnabled(@Nullable android.bluetooth.BluetoothDevice, int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int
supportsOptionalCodecs(@Nullable android.bluetooth.BluetoothDevice);
field public static final int OPTIONAL_CODECS_NOT_SUPPORTED = 0; // 0x0
field public static final int OPTIONAL_CODECS_PREF_DISABLED = 0; // 0x0
field public static final int OPTIONAL_CODECS_PREF_ENABLED = 1; // 0x1
field public static final int OPTIONAL_CODECS_PREF_UNKNOWN = -1; // 0xffffffff
field public static final int OPTIONAL_CODECS_SUPPORTED = 1; // 0x1
field public static final int OPTIONAL_CODECS_SUPPORT_UNKNOWN = -1; // 0xffffffff
}

public final class BluetoothA2dpSink implements android.bluetooth.BluetoothProfile {


method public void finalize();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int
getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
isAudioPlaying(@Nullable android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int);
field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final
String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp-
sink.profile.action.CONNECTION_STATE_CHANGED";
}

public final class BluetoothAdapter {


method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
addOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull
java.util.concurrent.Executor, @NonNull
android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
connectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
method public boolean disableBLE();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
disconnectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
method public boolean enableBLE();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean
enableNoAutoConnect();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
factoryReset();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public long
getDiscoveryEndMillis();
method public boolean isBleScanAlwaysAvailable();
method public boolean isLeEnabled();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
removeActiveDevice(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
removeOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull
android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setActiveDevice(@NonNull android.bluetooth.BluetoothDevice, int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setScanMode(int, long);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setScanMode(int);
field public static final String ACTION_BLE_STATE_CHANGED =
"android.bluetooth.adapter.action.BLE_STATE_CHANGED";
field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE =
"android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2
field public static final int ACTIVE_DEVICE_AUDIO = 0; // 0x0
field public static final int ACTIVE_DEVICE_PHONE_CALL = 1; // 0x1
}

public static interface BluetoothAdapter.OnMetadataChangedListener {


method public void onMetadataChanged(@NonNull android.bluetooth.BluetoothDevice, int,
@Nullable byte[]);
}
public final class BluetoothCodecConfig implements android.os.Parcelable {
ctor public BluetoothCodecConfig(int, int, int, int, int, long, long, long, long);
ctor public BluetoothCodecConfig(int);
method public int getBitsPerSample();
method @NonNull public String getCodecName();
method public int getCodecPriority();
method public long getCodecSpecific1();
method public int getCodecType();
method public int getSampleRate();
method public boolean isMandatoryCodec();
field public static final int BITS_PER_SAMPLE_16 = 1; // 0x1
field public static final int BITS_PER_SAMPLE_24 = 2; // 0x2
field public static final int BITS_PER_SAMPLE_32 = 4; // 0x4
field public static final int BITS_PER_SAMPLE_NONE = 0; // 0x0
field public static final int CHANNEL_MODE_MONO = 1; // 0x1
field public static final int CHANNEL_MODE_NONE = 0; // 0x0
field public static final int CHANNEL_MODE_STEREO = 2; // 0x2
field public static final int CODEC_PRIORITY_DEFAULT = 0; // 0x0
field public static final int CODEC_PRIORITY_DISABLED = -1; // 0xffffffff
field public static final int CODEC_PRIORITY_HIGHEST = 1000000; // 0xf4240
field @NonNull public static final
android.os.Parcelable.Creator<android.bluetooth.BluetoothCodecConfig> CREATOR;
field public static final int SAMPLE_RATE_176400 = 16; // 0x10
field public static final int SAMPLE_RATE_192000 = 32; // 0x20
field public static final int SAMPLE_RATE_44100 = 1; // 0x1
field public static final int SAMPLE_RATE_48000 = 2; // 0x2
field public static final int SAMPLE_RATE_88200 = 4; // 0x4
field public static final int SAMPLE_RATE_96000 = 8; // 0x8
field public static final int SAMPLE_RATE_NONE = 0; // 0x0
field public static final int SOURCE_CODEC_TYPE_AAC = 1; // 0x1
field public static final int SOURCE_CODEC_TYPE_APTX = 2; // 0x2
field public static final int SOURCE_CODEC_TYPE_APTX_HD = 3; // 0x3
field public static final int SOURCE_CODEC_TYPE_INVALID = 1000000; // 0xf4240
field public static final int SOURCE_CODEC_TYPE_LDAC = 4; // 0x4
field public static final int SOURCE_CODEC_TYPE_MAX = 5; // 0x5
field public static final int SOURCE_CODEC_TYPE_SBC = 0; // 0x0
}

public final class BluetoothCodecStatus implements android.os.Parcelable {


ctor public BluetoothCodecStatus(@Nullable android.bluetooth.BluetoothCodecConfig, @Nullable
android.bluetooth.BluetoothCodecConfig[], @Nullable android.bluetooth.BluetoothCodecConfig[]);
method @Nullable public android.bluetooth.BluetoothCodecConfig getCodecConfig();
method @Nullable public android.bluetooth.BluetoothCodecConfig[] getCodecsLocalCapabilities();
method @Nullable public android.bluetooth.BluetoothCodecConfig[]
getCodecsSelectableCapabilities();
field @NonNull public static final
android.os.Parcelable.Creator<android.bluetooth.BluetoothCodecStatus> CREATOR;
field public static final String EXTRA_CODEC_STATUS = "android.bluetooth.extra.CODEC_STATUS";
}

public final class BluetoothDevice implements android.os.Parcelable {


method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
cancelBondProcess();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
cancelPairing();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int
getBatteryLevel();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int
getMessageAccessPermission();
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
public byte[] getMetadata(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int
getPhonebookAccessPermission();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int
getSimAccessPermission();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
isBondingInitiatedLocally();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean
isConnected();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean
isEncrypted();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
isInSilenceMode();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
removeBond();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setAlias(@NonNull String);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setMessageAccessPermission(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setMetadata(int, @NonNull byte[]);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setPhonebookAccessPermission(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean
setPin(@NonNull String);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setSilenceMode(boolean);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setSimAccessPermission(int);
field public static final int ACCESS_ALLOWED = 1; // 0x1
field public static final int ACCESS_REJECTED = 2; // 0x2
field public static final int ACCESS_UNKNOWN = 0; // 0x0
field public static final String ACTION_SILENCE_MODE_CHANGED =
"android.bluetooth.device.action.SILENCE_MODE_CHANGED";
field public static final int METADATA_COMPANION_APP = 4; // 0x4
field public static final int METADATA_ENHANCED_SETTINGS_UI_URI = 16; // 0x10
field public static final int METADATA_HARDWARE_VERSION = 3; // 0x3
field public static final int METADATA_IS_UNTETHERED_HEADSET = 6; // 0x6
field public static final int METADATA_MAIN_ICON = 5; // 0x5
field public static final int METADATA_MANUFACTURER_NAME = 0; // 0x0
field public static final int METADATA_MAX_LENGTH = 2048; // 0x800
field public static final int METADATA_MODEL_NAME = 1; // 0x1
field public static final int METADATA_SOFTWARE_VERSION = 2; // 0x2
field public static final int METADATA_UNTETHERED_CASE_BATTERY = 12; // 0xc
field public static final int METADATA_UNTETHERED_CASE_CHARGING = 15; // 0xf
field public static final int METADATA_UNTETHERED_CASE_ICON = 9; // 0x9
field public static final int METADATA_UNTETHERED_LEFT_BATTERY = 10; // 0xa
field public static final int METADATA_UNTETHERED_LEFT_CHARGING = 13; // 0xd
field public static final int METADATA_UNTETHERED_LEFT_ICON = 7; // 0x7
field public static final int METADATA_UNTETHERED_RIGHT_BATTERY = 11; // 0xb
field public static final int METADATA_UNTETHERED_RIGHT_CHARGING = 14; // 0xe
field public static final int METADATA_UNTETHERED_RIGHT_ICON = 8; // 0x8
}

public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile {


method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean
connect(android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean
disconnect(android.bluetooth.BluetoothDevice);
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public
android.bluetooth.BluetoothDevice getActiveDevice();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int
getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean
setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN)
public boolean setPriority(android.bluetooth.BluetoothDevice, int);
}

public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile {


method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH) public
java.util.List<android.bluetooth.BluetoothDevice> getActiveDevices();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int
getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public long
getHiSyncId(@Nullable android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean
setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
}

public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile {


method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean
setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
}

public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile {


method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int
getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int
getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean
setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
field public static final String ACTION_CONNECTION_STATE_CHANGED =
"android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED";
}

public final class BluetoothMap implements java.lang.AutoCloseable


android.bluetooth.BluetoothProfile {
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void
close();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) protected void
finalize();
method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int
getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean
setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int);
field public static final String ACTION_CONNECTION_STATE_CHANGED =
"android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED";
}

public final class BluetoothPan implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile


{
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public void close();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) protected void finalize();
method @NonNull public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int
getConnectionState(@Nullable android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean
isTetheringOn();

You might also like