如何让用户恢复到应用自定义声音?

How to let the user revert to an app-custom sound?

AndroidO 应用可以使用应用声音资源在 NotificationChannel 上设置自定义声音:

NotificationChannel channel = new NotificationChannel(channelId, name, importance);
Uri uri = Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.customSound);
AudioAttributes audioAttributes = new AudioAttributes.Builder()
    .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
    .setUsage(AudioAttributes.USAGE_ALARM)
    .build();
channel.setSound(uri, audioAttributes);

现在在系统设置中,用户可以重新配置NotificationChannel,从系统的声音资源中选择不同的声音。

问题:该声音列表不包括应用程序自己的声音资源,因此用户在更改后永远无法恢复到应用程序的自定义声音资源。

Q.应用如何让用户恢复应用的自定义声音资源?该应用是否必须 copy the sound file to a shared directory(并使其正常运行)?

频道是一次性的,创建后应用无法修改。因此,您可以删除频道并重新创建它,也可以将您的声音资源文件复制到 public 目录中,以便用户在调整频道设置时 select 它。