android - 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));
}
这个问题有什么解决办法吗?
解决方案
推荐阅读
- javascript - 我可以使用 pactjs 测试通过事件流和消息队列进行通信的微服务吗?
- python - 从 pandas datafrmae 开始有条件地删除行
- sql - 内连接 SQL 与 like 运算符
- javascript - Draft-js 保存和显示 HTML
- xml - 错误:'不支持的 XSL 元素'http://www.w3.org/1999/XSL/Transform:for-each-group''
- jquery - 在 jVectorMap 中设置标记图像的宽度/高度
- scala - Spark中的rdd.map函数可以在特定条件下没有返回吗?
- php - 自定义 404 显示 php 文件的“找不到文件”而不是重定向
- linear-programming - Gurobi ILP:添加新约束后的解决方案起点
- macros - AHK 模拟按住键同时物理按住键