如何从应用程序NotificationChannel> = Oreo中获取getSound(),getName()

时间:2018-12-27 07:28:46

标签: android notifications android-8.0-oreo notification-channel

如何从特定的应用程序通知频道获取以下详细信息

  • getSound(); getName(); getId(); getGroup();

我尝试使用以下代码,但是它返回系统默认的频道详细信息

Scaffold(
    floatingActionButton: FloatingActionButton(
      heroTag: "somethingUnique",
      onPressed: () {},
      child: Icon(Icons.add,),
    ),
    body: Container(),
)

O / P:-内容:// settings / system / notification_sound

1 个答案:

答案 0 :(得分:0)

经过多次搜索,我发现可以通过以下方式获取所有详细信息。

下面的链接显示了如何以编程方式打开应用程序通知频道设置。

open app notification setting

这可能会帮助某人。

  

以下代码将返回您的所有申请渠道

public static List<NotificationChannel> getNotificationChannels(Context context) {
    if (isNotificationChannelSupported(context)) {
        NotificationManager notificationManager =
                (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        if (notificationManager == null) {
            Log.e("", "Notification manager is null");
            return null;
        }
        return notificationManager.getNotificationChannels();
    }
    return null;
}

public static boolean isNotificationChannelSupported(Context context) {
    return Build.VERSION.SDK_INT >= 26 && getTargetSdkVersion(context) >= 26;
}

private static int getTargetSdkVersion(Context context) {
    int targetSdk = -1;
    if (context != null) {
        targetSdk = context.getApplicationInfo().targetSdkVersion;
    }
    return targetSdk;
}
  

下面的一行将以与获取姓名,ID等相同的方式返回声音Uri。   get(2)是您要引用的渠道,您也可以使用0,1来获取详细信息

Uri soundUri= getNotificationChannels(this).get(2).getSound()