为通知设置声音

4

如何为我的安卓应用程序设置通知声音。在我的应用程序中,将在30秒后显示通知。我希望为这些警报提供选项,例如静音模式、振动模式以及从设备上可用的铃声中选择的选项。我正在使用首选项屏幕显示设置菜单。我想将通知铃声类型设置为特定于应用程序。是否有任何方法可以建立这个。

2个回答

11

如何为Android通知设置自定义提示音

将.mp3或.wav文件放置在res/raw目录中,例如下面的示例中的 "notification_sound.mp3"(文件名不能使用大写字母)。

在创建通知时设置Notification.sound,像这样:

final int iconResId = R.drawable.my_icon;
final int soundResId = R.raw.notification_sound;
final Notification notification =
    new Notification(iconResId, tickerText, System.currentTimeMillis());
final String packageName = context.getPackageName();
notification.sound =
    Uri.parse("android.resource://" + packageName + "/" + soundResId);

可选地,将振动添加到您的通知中:

notification.defaults = Notification.DEFAULT_VIBRATE;

2

谢谢Marcus。然而,当我尝试通过为铃声首选项设置onclick监听器来获取铃声的id时,我收到以下错误: 03-01 10:49:59.021: DEBUG/MediaPlayer(308): 无法在客户端打开文件,尝试在服务器端打开 03-01 10:49:59.031: ERROR/MediaPlayerService(34): 无法打开内容为content://settings/system/notification_sound的fd 03-01 10:49:59.031: ERROR/MediaPlayer(308): 无法创建媒体播放器 03-01 10:49:59.041: ERROR/RingtoneManager(308): 打开铃声内容content://settings/system/notification_sound失败 - Dijo David
2
通知.声音 = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, 铃声Id); - Dijo David
2
您还可以引用与应用程序捆绑的声音资源:notification.sound = Uri.parse("android.resource://com.company.package/" + soundResourceId); - Jerry Brady

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接