am afacdbe1
: am 09e77852
: am 5cf89a01
: am b2b02092
: Merge "Fix issue #23037899: Support for Battery Optimization permission + Dialog" into mnc-dev
* commit 'afacdbe1e824845917d038a5848ae515d44393bb': Fix issue #23037899: Support for Battery Optimization permission + Dialog
This commit is contained in:
@ -106,6 +106,7 @@ package android {
|
||||
field public static final java.lang.String RECEIVE_WAP_PUSH = "android.permission.RECEIVE_WAP_PUSH";
|
||||
field public static final java.lang.String RECORD_AUDIO = "android.permission.RECORD_AUDIO";
|
||||
field public static final java.lang.String REORDER_TASKS = "android.permission.REORDER_TASKS";
|
||||
field public static final java.lang.String REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
|
||||
field public static final java.lang.String REQUEST_INSTALL_PACKAGES = "android.permission.REQUEST_INSTALL_PACKAGES";
|
||||
field public static final deprecated java.lang.String RESTART_PACKAGES = "android.permission.RESTART_PACKAGES";
|
||||
field public static final java.lang.String SEND_RESPOND_VIA_MESSAGE = "android.permission.SEND_RESPOND_VIA_MESSAGE";
|
||||
@ -26444,6 +26445,7 @@ package android.provider {
|
||||
field public static final java.lang.String ACTION_PRINT_SETTINGS = "android.settings.ACTION_PRINT_SETTINGS";
|
||||
field public static final java.lang.String ACTION_PRIVACY_SETTINGS = "android.settings.PRIVACY_SETTINGS";
|
||||
field public static final java.lang.String ACTION_QUICK_LAUNCH_SETTINGS = "android.settings.QUICK_LAUNCH_SETTINGS";
|
||||
field public static final java.lang.String ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
|
||||
field public static final java.lang.String ACTION_SEARCH_SETTINGS = "android.search.action.SEARCH_SETTINGS";
|
||||
field public static final java.lang.String ACTION_SECURITY_SETTINGS = "android.settings.SECURITY_SETTINGS";
|
||||
field public static final java.lang.String ACTION_SETTINGS = "android.settings.SETTINGS";
|
||||
|
@ -180,6 +180,7 @@ package android {
|
||||
field public static final java.lang.String REGISTER_SIM_SUBSCRIPTION = "android.permission.REGISTER_SIM_SUBSCRIPTION";
|
||||
field public static final java.lang.String REMOVE_DRM_CERTIFICATES = "android.permission.REMOVE_DRM_CERTIFICATES";
|
||||
field public static final java.lang.String REORDER_TASKS = "android.permission.REORDER_TASKS";
|
||||
field public static final java.lang.String REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
|
||||
field public static final java.lang.String REQUEST_INSTALL_PACKAGES = "android.permission.REQUEST_INSTALL_PACKAGES";
|
||||
field public static final deprecated java.lang.String RESTART_PACKAGES = "android.permission.RESTART_PACKAGES";
|
||||
field public static final java.lang.String RETRIEVE_WINDOW_CONTENT = "android.permission.RETRIEVE_WINDOW_CONTENT";
|
||||
@ -28502,6 +28503,7 @@ package android.provider {
|
||||
field public static final java.lang.String ACTION_PRINT_SETTINGS = "android.settings.ACTION_PRINT_SETTINGS";
|
||||
field public static final java.lang.String ACTION_PRIVACY_SETTINGS = "android.settings.PRIVACY_SETTINGS";
|
||||
field public static final java.lang.String ACTION_QUICK_LAUNCH_SETTINGS = "android.settings.QUICK_LAUNCH_SETTINGS";
|
||||
field public static final java.lang.String ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
|
||||
field public static final java.lang.String ACTION_SEARCH_SETTINGS = "android.search.action.SEARCH_SETTINGS";
|
||||
field public static final java.lang.String ACTION_SECURITY_SETTINGS = "android.settings.SECURITY_SETTINGS";
|
||||
field public static final java.lang.String ACTION_SETTINGS = "android.settings.SETTINGS";
|
||||
|
@ -616,7 +616,33 @@ public final class Settings {
|
||||
/**
|
||||
* Activity Action: Show screen for controlling which apps can ignore battery optimizations.
|
||||
* <p>
|
||||
* Input: Optionally, the Intent's data URI specifies the application package name
|
||||
* Input: Nothing.
|
||||
* <p>
|
||||
* Output: Nothing.
|
||||
* <p>
|
||||
* You can use {@link android.os.PowerManager#isIgnoringBatteryOptimizations
|
||||
* PowerManager.isIgnoringBatteryOptimizations()} to determine if an application is
|
||||
* already ignoring optimizations. You can use
|
||||
* {@link #ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS} to ask the user to put you
|
||||
* on this list.
|
||||
*/
|
||||
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
|
||||
public static final String ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS =
|
||||
"android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS";
|
||||
|
||||
/**
|
||||
* Activity Action: Ask the user to allow an to ignore battery optimizations (that is,
|
||||
* put them on the whitelist of apps shown by
|
||||
* {@link #ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS}). For an app to use this, it also
|
||||
* must hold the {@link android.Manifest.permission#REQUEST_IGNORE_BATTERY_OPTIMIZATIONS}
|
||||
* permission.
|
||||
* <p><b>Note:</b> most applications should <em>not</em> use this; there are many facilities
|
||||
* provided by the platform for applications to operate correctly in the various power
|
||||
* saving mode. This is only for unusual applications that need to deeply control their own
|
||||
* execution, at the potential expense of the user's battery life. Note that these applications
|
||||
* greatly run the risk of showing to the user has how power consumers on their device.</p>
|
||||
* <p>
|
||||
* Input: The Intent's data URI must specify the application package name
|
||||
* to be shown, with the "package" scheme. That is "package:com.my.app".
|
||||
* <p>
|
||||
* Output: Nothing.
|
||||
@ -626,8 +652,8 @@ public final class Settings {
|
||||
* already ignoring optimizations.
|
||||
*/
|
||||
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
|
||||
public static final String ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS =
|
||||
"android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS";
|
||||
public static final String ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS =
|
||||
"android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
|
||||
|
||||
/**
|
||||
* @hide
|
||||
|
@ -2257,6 +2257,13 @@
|
||||
<permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"
|
||||
android:protectionLevel="system|signature" />
|
||||
|
||||
<!-- Permission an application must hold in order to use
|
||||
{@link android.provider.Settings#ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS}.
|
||||
This is a normal permission: an app requesting it will always be granted the
|
||||
permission, without the user needing to approve or see it. -->
|
||||
<permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"
|
||||
android:protectionLevel="normal" />
|
||||
|
||||
<!-- @SystemApi Allows an application to collect battery statistics -->
|
||||
<permission android:name="android.permission.BATTERY_STATS"
|
||||
android:protectionLevel="signature|privileged|development" />
|
||||
|
@ -24,6 +24,7 @@
|
||||
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
|
||||
<uses-permission android:name="android.permission.MANAGE_USERS" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
||||
<uses-sdk android:targetSdkVersion="22" />
|
||||
<application android:label="ActivityTest">
|
||||
<activity android:name="ActivityTestMain">
|
||||
|
@ -465,9 +465,12 @@ public class ActivityTestMain extends Activity {
|
||||
menu.add("Ignore battery optimizations").setOnMenuItemClickListener(
|
||||
new MenuItem.OnMenuItemClickListener() {
|
||||
@Override public boolean onMenuItemClick(MenuItem item) {
|
||||
Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
|
||||
Intent intent;
|
||||
if (!mPower.isIgnoringBatteryOptimizations(getPackageName())) {
|
||||
intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
|
||||
intent.setData(Uri.fromParts("package", getPackageName(), null));
|
||||
} else {
|
||||
intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
|
||||
}
|
||||
startActivity(intent);
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user