首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以确定屏幕现在是否是沉浸式的,即使不是在前台?

是否可以确定屏幕现在是否是沉浸式的,即使不是在前台?
EN

Stack Overflow用户
提问于 2018-06-28 10:37:45
回答 1查看 167关注 0票数 2

背景

当用户接到电话时,我正在研究如何替换拨号程序的UI (传入/传出电话)。

这在以下两方面似乎是可能的:

  • 在旧的安卓版本中,有一个由变化打电话意图触发的顶层视图是可能的。
  • 在新的安卓版本(至少是API23-AndroidM-6.0)上,扩展InCallService是可能的,并提供一个将从那里打开的活动。我甚至找到了一个例子来做到这一点,这里

问题所在

看看内置的拨号程序是如何工作的,如果用户使用的是浸没式中的应用程序(游戏或景观上的YouTube视频),而现在设备正在响(来电),则会发出通知而不是全屏活动。

但是我找不到如何使用API来实现它。

我试过的

我试过查看InCallService的所有文档。我还试图通过检查从WindowManager获得的各种值来确定是否可以区分沉浸式和非沉浸式:

代码语言:javascript
运行
复制
    val wm = getSystemService(Service.WINDOW_SERVICE) as WindowManager
    val display = wm.defaultDisplay
    val metrics = DisplayMetrics()
    display.getMetrics(metrics)
    val realMetrics = DisplayMetrics()
    display.getRealMetrics(realMetrics)
    val realSize = Point()
    display.getRealSize(realSize)
    val size = Point()
    display.getSize(size)
    Log.d("AppLog", "mode:${display.mode} state:${display.state} size:$size realSize:$realSize metrics:$metrics realMetrics:$realMetrics rotation:${display.rotation}")

我想使用可访问性服务来检查它可能是可能的(但不确定是如何实现的),但这似乎做得太多了。

问题是

应用程序是否有可能检查屏幕现在是否处于沉浸式模式?

如果可能的话,如何以及从哪个Android版本支持它?

如果这是不可能的,为什么内置应用程序知道如何检查它?

EN

回答 1

Stack Overflow用户

发布于 2018-07-03 22:22:21

您应该将您的来电发送为通知。

在通知构建器中,使用挂起的意图启动您的来电用户界面的全屏版本: builder.setContentIntent(pendingIntent);builder.setFullScreenIntent(pendingIntent,true);

如果有任何正在进行的活动,系统将显示提示通知(并且应该考虑沉浸模式)。如果用户的设备关闭并处于锁定屏幕上,则将使用全屏意图启动全屏用户界面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51080782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档