Уведомление Android со звуком и вибрацией, проблема контекста?

Я пытаюсь сделать уведомление с пользовательским звуком и вибрацией.

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);

Это работает, как и ожидалось, когда я звоню из деятельности. Однако мне нужно позвонить, когда получено SMS, даже если мое приложение еще не запущено. Поэтому я расширил BroadcastReceiver и переопределил onReceive (контекстный контекст, намерение намерения). Когда я создаю уведомление оттуда, оно показывает как ожидалось, но без собственного звука и вибрации. Может быть, потому что я использую контекст, полученный в onReceive? Или, может быть, это будет конфликтовать со звуком и вибрацией, которые вызывает стандартное приложение смс при получении смс? Какие-либо предложения?

Я знаю, что могу воспроизводить звук и вибрировать напрямую, например:

((Vibrator)getSystemService(Context.VIBRATOR_SERVICE)).vibrate(500);

Но я хотел бы использовать материал уведомлений, чтобы я мог получить стандартное поведение, например, отменить звук при нажатии уведомления.

(То, что я пытаюсь сделать, это получать SMS-сообщения от моего домашнего сигнала тревоги, и если он говорит мне, что мой дом горит, я бы хотел, чтобы мой телефон издал дополнительный шум, чтобы я не читал его три часа спустя.)

0 ответов

Другие вопросы по тегам