am 5cf89a01
: am b2b02092
: Merge "Fix issue #23037899: Support for Battery Optimization permission + Dialog" into mnc-dev
* commit '5cf89a011932f1af9361e7b713e33ff5c5af3e61': 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 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 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 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 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 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";
|
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_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_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_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_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_SECURITY_SETTINGS = "android.settings.SECURITY_SETTINGS";
|
||||||
field public static final java.lang.String ACTION_SETTINGS = "android.settings.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 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 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 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 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 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";
|
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_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_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_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_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_SECURITY_SETTINGS = "android.settings.SECURITY_SETTINGS";
|
||||||
field public static final java.lang.String ACTION_SETTINGS = "android.settings.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.
|
* Activity Action: Show screen for controlling which apps can ignore battery optimizations.
|
||||||
* <p>
|
* <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".
|
* to be shown, with the "package" scheme. That is "package:com.my.app".
|
||||||
* <p>
|
* <p>
|
||||||
* Output: Nothing.
|
* Output: Nothing.
|
||||||
@ -626,8 +652,8 @@ public final class Settings {
|
|||||||
* already ignoring optimizations.
|
* already ignoring optimizations.
|
||||||
*/
|
*/
|
||||||
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
|
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
|
||||||
public static final String ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS =
|
public static final String ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS =
|
||||||
"android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS";
|
"android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @hide
|
* @hide
|
||||||
|
@ -2257,6 +2257,13 @@
|
|||||||
<permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"
|
<permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"
|
||||||
android:protectionLevel="system|signature" />
|
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 -->
|
<!-- @SystemApi Allows an application to collect battery statistics -->
|
||||||
<permission android:name="android.permission.BATTERY_STATS"
|
<permission android:name="android.permission.BATTERY_STATS"
|
||||||
android:protectionLevel="signature|privileged|development" />
|
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.INTERACT_ACROSS_USERS_FULL" />
|
||||||
<uses-permission android:name="android.permission.MANAGE_USERS" />
|
<uses-permission android:name="android.permission.MANAGE_USERS" />
|
||||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||||
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
||||||
<uses-sdk android:targetSdkVersion="22" />
|
<uses-sdk android:targetSdkVersion="22" />
|
||||||
<application android:label="ActivityTest">
|
<application android:label="ActivityTest">
|
||||||
<activity android:name="ActivityTestMain">
|
<activity android:name="ActivityTestMain">
|
||||||
|
@ -465,9 +465,12 @@ public class ActivityTestMain extends Activity {
|
|||||||
menu.add("Ignore battery optimizations").setOnMenuItemClickListener(
|
menu.add("Ignore battery optimizations").setOnMenuItemClickListener(
|
||||||
new MenuItem.OnMenuItemClickListener() {
|
new MenuItem.OnMenuItemClickListener() {
|
||||||
@Override public boolean onMenuItemClick(MenuItem item) {
|
@Override public boolean onMenuItemClick(MenuItem item) {
|
||||||
Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
|
Intent intent;
|
||||||
if (!mPower.isIgnoringBatteryOptimizations(getPackageName())) {
|
if (!mPower.isIgnoringBatteryOptimizations(getPackageName())) {
|
||||||
|
intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
|
||||||
intent.setData(Uri.fromParts("package", getPackageName(), null));
|
intent.setData(Uri.fromParts("package", getPackageName(), null));
|
||||||
|
} else {
|
||||||
|
intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
|
||||||
}
|
}
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
|
Reference in New Issue
Block a user