无法将用户带到通知设置

时间:2017-07-25 12:52:21

标签: java android xml

因此,在我的应用程序中,当用户首次加载它时,它们会提示进入通知访问菜单。如果他们选择是,则重定向到它,如果他们说不,他们只是进入应用页面。

private AlertDialog buildNotificationServiceAlertDialog() {
    final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setTitle("one");
    alertDialogBuilder.setMessage("two");
    alertDialogBuilder.setPositiveButton("yes",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    startActivity(new Intent(ACTION_NOTIFICATION_LISTENER_SETTINGS));
                }
            });
    alertDialogBuilder.setNegativeButton("no",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                }
            });
    return (alertDialogBuilder.create());
}

当我点击“是”时,它会关闭应用程序,当我按下“否”时,它会做它应该做的事情。我已经使用其他应用程序对此进行了测试,我的应用程序确实显示在通知访问菜单中,但我无法从我自己的应用程序重定向到它。

任何人都有任何想法,为什么它不起作用?

感谢。

2 个答案:

答案 0 :(得分:1)

添加包名称以进行工作。

Intent notifIntent = new Intent();
notifIntent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");

//for Android 5-7
notifIntent.putExtra("app_package", getPackageName());
notifIntent.putExtra("app_uid", getApplicationInfo().uid);

// for Android 8
notifIntent.putExtra("android.provider.extra.APP_PACKAGE", getPackageName());

startActivity(notifIntent);

它适用于Android 5.0及更高版本。

答案 1 :(得分:0)

尝试这样做。

 private void enableNotification(){
    Intent intent = new Intent();
    intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
    if(Build.VERSION.PREVIEW_SDK_INT<=Build.VERSION_CODES.M) {
        intent.putExtra("app_package", getPackageName());
        intent.putExtra("app_uid", getApplicationInfo().uid);
    }else{
    intent.putExtra("android.provider.extra.APP_PACKAGE", getPackageName());
    }
    startActivity(intent);
}