我正在尝试使用自定义声音和振动进行通知。
Notification.Builder nb = new Notification.Builder(context)
.setContentTitle(context.getString(R.string.tickerHdr))
.setContentText(context.getString(R.string.tickerInfo))
.setSmallIcon(R.drawable.alarm)
.setAutoCancel(true)
.setWhen((new Date()).getTime());
if (isAlarm) {
nb.setSound(Uri.parse(sirenSoundPath));
nb.setVibrate(vibratePattern);
nb.setPriority(Notification.PRIORITY_MAX);
}
Notification notification = nb.build();
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager)context.getSystemService(ns);
mNotificationManager.notify(NOTIFIC_ID, notification);
当我从活动中调用它时,这可以正常工作。但是,即使我的应用尚未启动,我也需要在收到短信时拨打此电话。所以我扩展了BroadcastReceiver并覆盖了onReceive(Context context,Intent intent)。当我从那里创建通知时,它按预期显示,但没有自定义声音和振动。也许是因为我正在使用onReceive中收到的上下文?或者这可能与标准短信应用程序在收到短信时引起的声音和振动相冲突?有什么建议吗?
我知道我可以直接播放声音和振动:
((Vibrator)getSystemService(Context.VIBRATOR_SERVICE)).vibrate(500);
但我想使用通知内容,以便我可以获得标准行为,例如点击通知时取消声音。
(我要做的是接收来自家庭闹钟的短信,如果它告诉我我的房子着火了,我希望我的手机发出一些额外的噪音,所以我不读三小时后面。)