Android Pie 9.0 将用户带到通知中心

Posted

技术标签:

【中文标题】Android Pie 9.0 将用户带到通知中心【英文标题】:Android Pie 9.0 take user to Notification Center 【发布时间】:2019-02-16 00:30:59 【问题描述】:

我将用户带到通知中心以控制他们的推送通知首选项并从我的应用程序中读取它,并设置为开关切换。我对 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.

【问题讨论】:

显示堆栈跟踪和发生它的部分代码。 您能否分享导致崩溃的stack trace 和codes you used?我们看不到您的代码、IDE 和手机,因此这里的任何人都不可能知道问题所在。 【参考方案1】:

更新,

我通过添加解决了这个问题,

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

在我的第一个 if 块中。

【讨论】:

以上是关于Android Pie 9.0 将用户带到通知中心的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 9.0(PIE) 中获取 WIFI SSID?

多进程中的 Android Pie (9.0) WebView

FusedLocationProviderClient 在 Android Pie 9.0 中返回错误的纬度经度

下载管理器在 Android Pie 9.0 NetworkSecurityConfig 中不起作用:未指定网络安全配置,使用平台默认值

Android 再爆新漏洞,9.0 以下所有手机全部中招!

Android 9.0更新