我正在寻找一种直接从我的应用程序打开MIUI 应用程序通知设置屏幕的方法。就像这样:设置、->安装了应用程序、-> MY_APP ->通知。
如何构造打开这个屏幕的意图?
这与Oreo (小米)中添加的Notification不同,小米有自己的通知管理器。
发布于 2018-10-04 11:00:54
此代码适用于MIUI 10:
Intent settingsIntent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra(Settings.EXTRA_APP_PACKAGE, "YourPackage");
startActivity(settingsIntent);发布于 2018-11-27 08:01:37
Intent intent = new Intent();
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
//for Android 5-7
intent.putExtra("app_package", getPackageName());
intent.putExtra("app_uid", getApplicationInfo().uid);
// for Android O
intent.putExtra("android.provider.extra.APP_PACKAGE", getPackageName());
startActivity(intent);发布于 2018-11-27 15:38:28
为打开通知设置而构造的意图在不同的sdk版本上是不同的,您可以尝试下面的代码,它在我的设备上运行良好,假设您在某个活动的上下文中运行:
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//above android 8.0 jump to notification channels
if (Build.VERSION.SDK_INT >= 26) {
intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
intent.setData(Uri.fromParts("package", "your.package.name", null));
}
//android 5.0-7.0 notification settings
if (Build.VERSION.SDK_INT >= 21 && Build.VERSION.SDK_INT < 26) {
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
intent.putExtra("app_package", "your.package.name");
intent.putExtra("app_uid", getApplicationInfo().uid);
}
//others
if (Build.VERSION.SDK_INT < 21) {
intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
intent.setData(Uri.fromParts("package", "your.package.name", null));
}
startActivity(intent);https://stackoverflow.com/questions/52372142
复制相似问题