android.provider.Settings#ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS源码实例Demo

下面列出了android.provider.Settings#ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: FairEmail   文件: FragmentSetup.java
@Override
public void onResume() {
    super.onResume();

    // Doze
    Boolean ignoring = true;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
        PackageManager pm = getContext().getPackageManager();
        if (intent.resolveActivity(pm) != null) { // system whitelisted
            ignoring = Helper.isIgnoringOptimizations(getContext());
            if (ignoring == null)
                ignoring = true;
        }
    }

    btnDoze.setEnabled(!ignoring);

    // https://issuetracker.google.com/issues/37070074
    //ignoring = (ignoring || Build.VERSION.SDK_INT != Build.VERSION_CODES.M);

    tvDozeDone.setText(ignoring ? R.string.title_setup_done : R.string.title_setup_to_do);
    tvDozeDone.setTextColor(ignoring ? textColorPrimary : colorWarning);
    tvDozeDone.setCompoundDrawablesWithIntrinsicBounds(ignoring ? check : null, null, null, null);

    // https://developer.android.com/training/basics/network-ops/data-saver.html
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
        if (cm != null) {
            int status = cm.getRestrictBackgroundStatus();
            grpDataSaver.setVisibility(
                    status == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED
                            ? View.VISIBLE : View.GONE);
        }
    }
}
 
源代码2 项目: TowerCollector   文件: MainActivity.java
@TargetApi(Build.VERSION_CODES.M)
private void startBatteryOptimizationsSystemActivity() {
    try {
        Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
        startActivityForResult(intent, BATTERY_OPTIMIZATIONS_ACTIVITY_RESULT);
    } catch (ActivityNotFoundException ex) {
        Timber.w(ex, "startBatteryOptimizationsSystemActivity(): Could not open Settings to change battery optimizations");
        MyApplication.handleSilentException(ex);
        showCannotOpenAndroidSettingsDialog();
    }
}
 
源代码3 项目: SmsCode   文件: SettingsUtils.java
/**
 * Go to ignore battery optimization settings.
 */
@RequiresApi(api = Build.VERSION_CODES.M)
public static void gotoIgnoreBatteryOptimizationSettings(Context context) {
    Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
    context.startActivity(intent);
}
 
源代码4 项目: XposedSmsCode   文件: SettingsUtils.java
/**
 * Go to ignore battery optimization settings.
 */
@RequiresApi(api = Build.VERSION_CODES.M)
public static void gotoIgnoreBatteryOptimizationSettings(Context context) {
    Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
    context.startActivity(intent);
}
 
static private void showNotification(Context context, String title, String text) {
    String nTitle = title;
    String nText = text;
    if (Build.VERSION.SDK_INT < 24) {
        nTitle = context.getString(R.string.ppp_app_name);
        nText = title+": "+text;
    }
    PPApplication.createExclamationNotificationChannel(context);
    NotificationCompat.Builder mBuilder =   new NotificationCompat.Builder(context, PPApplication.EXCLAMATION_NOTIFICATION_CHANNEL)
            .setColor(ContextCompat.getColor(context, R.color.notificationDecorationColor))
            .setSmallIcon(R.drawable.ic_exclamation_notify) // notification icon
            .setContentTitle(nTitle) // title for notification
            .setContentText(nText) // message for notification
            .setAutoCancel(true); // clear notification after click
    mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(nText));
    Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pi = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    mBuilder.setContentIntent(pi);
    mBuilder.setPriority(NotificationCompat.PRIORITY_MAX);
    //if (android.os.Build.VERSION.SDK_INT >= 21)
    //{
        mBuilder.setCategory(NotificationCompat.CATEGORY_RECOMMENDATION);
        mBuilder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
    //}
    mBuilder.setOnlyAlertOnce(true);

    /*
    Intent disableIntent = new Intent(IGNORE_BATTERY_OPTIMIZATION_NOTIFICATION_DISABLE_ACTION);
    PendingIntent pDisableIntent = PendingIntent.getBroadcast(context, 0, disableIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    NotificationCompat.Action.Builder actionBuilder = new NotificationCompat.Action.Builder(
            R.drawable.ic_action_exit_app_white,
            context.getString(R.string.ignore_battery_optimization_notification_disable_button),
            pDisableIntent);
    mBuilder.addAction(actionBuilder.build());
    */

    NotificationManagerCompat mNotificationManager = NotificationManagerCompat.from(context);
    try {
        mNotificationManager.notify(
                PPApplication.IGNORE_BATTERY_OPTIMIZATION_NOTIFICATION_TAG,
                PPApplication.IGNORE_BATTERY_OPTIMIZATION_NOTIFICATION_ID, mBuilder.build());
    } catch (Exception e) {
        //Log.e("IgnoreBatteryOptimizationNotification.showNotification", Log.getStackTraceString(e));
        PPApplication.recordException(e);
    }
}
 
源代码6 项目: DeviceConnect-Android   文件: DConnectUtil.java
/**
 * Dozeモードの設定画面を開きます.
 * <p>
 * Dozeモードの解除には必ずユーザの許諾が必要になります。<br>
 * Android M 以前の OS の場合には、このメソッドは処理を行いません。
 * </p>
 *
 * @param context コンテキスト
 */
public static void startDozeModeSettingActivity(final Context context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }
}