Android Pie 9.0 доставит пользователя в Центр уведомлений - PullRequest
0 голосов
/ 16 февраля 2019

Я перевожу пользователя в центр уведомлений, чтобы контролировать его настройки push-уведомлений, читать его из моего приложения и устанавливать переключатель.У меня разные действия для Lollipop и Oreo, но в настоящий момент происходит сбой приложения для Android Pie 9.0.Как я могу исправить эту проблему?

public void onPushSwitchChanged(View v){
    if(v.isPressed()){
        Intent intent = new Intent();
        if(android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1){
            intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
            intent.putExtra("android.provider.extra.APP_PACKAGE", mContext.getPackageName());
        }else if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
            intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
            intent.putExtra("app_package", mContext.getPackageName());
            intent.putExtra("app_uid", mContext.getApplicationInfo().uid);
        }else {
            intent.setAction(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
            intent.addCategory(Intent.CATEGORY_DEFAULT);
            intent.setData(Uri.parse("package:" + mContext.getPackageName()));
        }
        mContext.startActivity(intent);
    }
}

И ошибка

android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.

1 Ответ

0 голосов
/ 18 февраля 2019

Обновление,

Я исправил проблему, добавив

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

в мой первый блок if.

...