因此,在我的应用程序中,当用户首次加载它时,它们会提示进入通知访问菜单。如果他们选择是,则重定向到它,如果他们说不,他们只是进入应用页面。
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());
}
当我点击“是”时,它会关闭应用程序,当我按下“否”时,它会做它应该做的事情。我已经使用其他应用程序对此进行了测试,我的应用程序确实显示在通知访问菜单中,但我无法从我自己的应用程序重定向到它。
任何人都有任何想法,为什么它不起作用?
感谢。
答案 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);
}