如何让用户恢复到应用自定义声音?
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 它。
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 它。