如何处理ActionAppNotificationSettings?

问题描述

我有一个xamarin应用程序,无法打开特定的设置页面

设置->应用->特殊应用访问->通知访问

我了解了这个意图,对于普通设置,它看起来像这样:

var intent = new Intent(Android.Provider.Settings.ActionNotificationListenerSettings);
// ActionAppNotificationSettings  <-- does not work
// ActionManageOverlayPermission  <-- does not work 
// ActionNotificationListenerSettings  <-- does not work
// ActionApplicationDetailsSettings <-- works
intent.AddFlags(ActivityFlags.NewTask);
var uri = Android.Net.Uri.FromParts("package",Application.Context.PackageName,null);
intent.SetData(uri);
Application.Context.StartActivity(intent);

我只能使用ActionApplicationDetailsS​​ettings打开常规的“设置”页面 但是我猜想ActionNotificationListenerSettings应该打开我想要的位置(我不知道它是否确实打开了这个位置:设置->应用程序->特殊应用程序访问->通知访问)

但是使用ActionNotificationListenerSettings时,应用会引发以下错误

No Activity found to handle Intent { act=android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS

这是什么问题?

解决方法

您应该使用ActionAppNotificationSettings而不是ActionNotificationListenerSettings。这是代码示例:

public void goToSetting()
{

    //startActivity(new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));

    var intent = new Intent(Android.Provider.Settings.ActionAppNotificationSettings);

    intent.AddFlags(ActivityFlags.NewTask);
    intent.PutExtra(Android.Provider.Settings.ExtraAppPackage,Application.Context.PackageName);
    intent.PutExtra(Android.Provider.Settings.ExtraChannelId,Application.Context.ApplicationInfo.Uid);

    StartActivity(intent);

}