3

我们正在开发一个可以从电话号码识别来电名称的应用程序。(我们的问题与类似,但解决方案不同)我们创建了一个 CallScreeningService,它接收来电的电话号码,并且我们能够在有电话时显示显示来电显示的 toast。但是,我们想要显示通知,而不是显示 toast。(我们还尝试在 Android 原生来电屏幕上显示一个弹出窗口,例如真正的来电 Android 应用程序,但当应用程序处于后台或关闭状态时无法显示)现在我们还可以在有来电显示时创建来电显示通知一个电话,但它没有直观地出现在屏幕上。

是否可以在来电的同时使通知直观地出现在屏幕上?如果是,如何?

太感谢了!

4

1 回答 1

0

假设您找到了一种让您的应用程序在打盹模式下保持活动状态的方法,您需要将通知的频道重要性或通知的优先级设置为高或最大(旁注:通知频道的重要性覆盖通知构建器的优先级)。

通知频道:

NotificationChannel chan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, channelName, NotificationManager.IMPORTANCE_HIGH);

通知生成器:

NotificationCompat.Builder mBuilder =
            (NotificationCompat.Builder) new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.some_small_icon)
            .setContentTitle("Title")
            .setContentText("This is a test notification with MAX priority")
            .setPriority(Notification.PRIORITY_MAX);

如果打盹模式正在杀死您的应用程序,您可以使用前台服务并返回 Service.START_STICKY;或 WakefulBroadcastReceiver 与 startWakefulService() 混合。

于 2021-06-20T02:27:17.937 回答