我正在使用android中的紧急消息传递应用程序。此应用程序最重要的部分是当应用程序处于后台并且用户未与应用程序交互时显示新消息的通知。通知要求是在向通知栏发布通知时,手机应振动并播放通知声音。
我的大多数通知部分都在工作,并且通知在大多数情况下都能正常工作。我面临的问题是,无论何时用户正在通话并收到通知,手机都不会振动或播放通知声音,但通知会显示在通知栏中。
因此,如果用户在通话时收到通知,则在他下车之前他无法知道通知。由于该应用程序的整个目的是紧急消息,我无法负担这一点,并希望应用程序在收到通知后立即振动并播放声音。
我用于生成通知的代码如下所示
int requestID = (int) System.currentTimeMillis();
PendingIntent pendingIntent = PendingIntent.getActivity(context, requestID,notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new NotificationCompat
.Builder(context)
.setContentTitle("Title")
.setContentText("Text")
.setSmallIcon(R.drawable.app_icon)
.setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND)
.setWhen(Calendar.getInstance().getTimeInMillis())
.setContentIntent(pendingIntent)
.setAutoCancel(true) //cancel the notification on click
.build();
notificationManager.notify(notificationId++, notification);
当用户未在通话中且手机振动并播放传入通知的通知声音时,此代码可正常工作。但是当该用户正在进行通话时,它无法这样做。
我的问题是,第三方应用是否可以创建通知,即使用户正在通话,它们也会振动并播放通知声音?如果是,那么正确的方法是什么,如果没有,那么最好的工作是什么?
我的目标是Android api等级16及以上。
提前谢谢。