首页 > 解决方案 > NotificationManager.notify() 在屏幕打开时不启动全屏意图

问题描述

我有一个闹钟应用程序,从 android 10 开始,我必须使用全屏意图来触发警报。当设备关闭时,一切正常,但是当设备打开时,它只会在屏幕顶部显示一条用户可以单击的消息,然后导航到它应该自动启动的屏幕。这是代码:

NotificationManager mgr = (NotificationManager) context.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { // This is at least android 10...

            if (mgr.getNotificationChannel(CHANNEL_WHATEVER) == null) {
                mgr.createNotificationChannel(new NotificationChannel(CHANNEL_WHATEVER,
                        context.getString(R.string.alarms_channel_name), NotificationManager.IMPORTANCE_HIGH));
                }

                mgr.notify(NOTIFY_ID, buildNormal(context, i).build());

            } else { // This is android 9 or below...

                context.startActivity(i);

            }
}

private NotificationCompat.Builder buildNormal(Context context, Intent intent) {

    NotificationCompat.Builder b =
            new NotificationCompat.Builder(context, CHANNEL_WHATEVER);

    b.setAutoCancel(true)
            .setDefaults(Notification.DEFAULT_ALL)
            .setSmallIcon(android.R.drawable.ic_lock_idle_alarm)
            .setStyle(new NotificationCompat.BigTextStyle()
                    .bigText(context.getString(R.string.message, context.getString(R.string.alarms_channel_name))))
            .setContentText(context.getString(R.string.message, context.getString(R.string.alarms_channel_name)))
            .setFullScreenIntent(buildPendingIntent(context, intent), true);

    return (b);

}

private PendingIntent buildPendingIntent(Context context, Intent intent) {

    return (PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
}

这个问题有什么解决办法吗?

标签: androidandroid-10.0

解决方案


推荐阅读