问题标签 [android-virtualdisplay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
186 浏览

android - 如何在表面视图中显示其他应用程序?

我想在我的应用 SurfaceView 中镜像例如 Waze:

我收到权限被拒绝错误:

我有解决方法吗?这有没有可能?

0 投票
1 回答
942 浏览

android - 在辅助虚拟显示器上启动时活动显示不正确

在我的场景中,我想在我的应用程序中镜像另一个应用程序。

我习惯于DisplayManagercreateVirtualDisplaySurfaceView. 然后我在开始活动时设置DisplayId为这个。VirtualDisplayAcitivityOptions

通过这个过程,可以在我的surfaceview中成功启动另一个应用程序。但是有一些显示问题。根据我的测试,只有图像、背景颜色和GLSurfaceView.Renderer正确渲染。ui 组件,例如TextViewButton不呈现在SurfaceView.

从上面的测试结果来看,我猜可能和渲染的深度或者顺序有关。

示例代码如下:

相比之下,如果我将相同的活动镜像到 aDisplay而不是VirtualDisplay,则可以由MediaRouteror捕获DisplayManager。这样,一切都正确显示(在我的测试中,我通过“开发人员选项”->“模拟辅助显示器”模拟第二台显示器):

是否有我错过的任何进程或我在虚拟显示模式下错误配置的任何标志?谢谢你的帮助。

PS为了镜像另一个应用程序,我已经root并作为系统应用程序启动。

0 投票
1 回答
206 浏览

android - Android VirtualDisplay resize "on flight"

Recently in project I faced challenge of resizing VirtualDisplay "on flight". So the use case is :

  • Start stream
  • In undetermined period of stream there may come specific data which indicates that my streaming capabilities have changed
  • Update VirtualDisplay's parameters without recreation, so that state loss is avoided

I've found in documentation for VirtualDisplay resize method, though it seems to have no effect on new parameters incoming. For implementation I am using

where inputSurface is created by mediaEncoder.createInputSurface() and cofigured properly by this moment. So, the question is, how can I resize VirtualDisplay? I also didn't find any examples how to do it in official sources, would appreciate any help!

UPDATE Just forgot to mention, I've put Listener for VirtualDisplays and onChange method is triggered, though check if actual metrics were changed shows negative results

0 投票
2 回答
124 浏览

android - 无法在 android studio 中创建虚拟设备,错误:HAXM 安装失败

在创建虚拟设备时,它说没有安装haxm。

在我的笔记本电脑中,我有 AMD Ryzen 5 ,而 haxm 是英特尔的工具,甚至我在我的系统中也找不到 Hyper-V 的选项。错误说:

0 投票
1 回答
1589 浏览

android - Android 10 向外部显示器/虚拟显示器注入输入

概念:

我有一个用 Kotlin 编写的 Android 应用程序,它只是在外部显示器上启动一个 Android 应用程序。显示器可以是 AirServer、Miracast、Microsoft Connect、USB-OTG HDMI、USB-C HDMI 或模拟辅助显示器(见屏幕截图)。

这是执行“繁重”的代码的除外:

应用程序开始正常。查看屏幕截图,我用它来将 Minecraft Pocket Edition 启动到模拟辅助显示器(就像连接了外部 HDMI 显示器一样)。问题是我无法将触摸或光标输入发送到虚拟显示器。

什么有效:

  • adb shell input -d <display-id> tap <x> <y>
  • 无线控制器
  • 无线键盘

什么不起作用:

  • 无线/有线鼠标(光标碰到手机屏幕边缘,从不进入虚拟显示器/外接显示器屏幕)
  • 触摸(见截图)

我试过的:

的输出dumpsys display显示虚拟显示器都缺少touch VIRTUAL内部显示器所具有的参数。我不确定这是否意味着显示器本身不支持触摸屏输入,或者它只是没有启用。

我尝试强制应用程序进入前台,这使应用程序检测到键盘和控制器输入,但光标仍被锁定到内部显示窗口。

值得注意的是,Android 10 桌面模式开发者设置确实将光标置于外部显示器而不是内部显示器。这就是我想要完成的。

Androids SDK 中似乎有一个隐藏的 Java API:

https://github.com/aosp-mirror/platform_frameworks_base/blob/a4ddee215e41ea232340c14ef92d6e9f290e5174/services/core/jni/com_android_server_input_InputManagerService.cpp#L825

我试图通过反射访问这个类并调用 setFocusedDisplay,但我不断收到 ClassNotFound 异常,即使更改了私有 API 黑名单安全设置。

任何帮助将不胜感激。与此相关的唯一其他相关威胁就在这里,但从未解决:

Android Q VirtualDisplay 触摸输入事件

虚拟显示器使用示例

0 投票
2 回答
1273 浏览

android - 使用 xamarin.forms.android 检测屏幕镜像

我想检测到 android 屏幕镜像到 pc。我目前正在使用c# Xamarin Forms Android进行编码。

我做了什么

这里有人推荐使用DisplayManagerVirtualDisplay文档。但我不知道如何在代码中实现这一点。

这里有人建议检查 DisplayManager.getDisplays(),看看它是否 >1。再次无法检测到我尝试使用代码的 vysor。

0 投票
0 回答
160 浏览

android - 在Android11中触摸多个ActivityView

如何在 Android11 中正确使用多个 ActivityView?

我已经在 P+Q 中创建了一个工作示例。但在 R touch 中停止工作。活动显示得很好,但只有最高的视图对触摸有反应。所有其他活动都没有响应。如果我在运行时重新排序视图,新的最高活动将变为可交互的。其他视图将再次没有响应。

经过大量测试后,我看到,如果我在托管应用程序中添加相应的侦听器,那些不可交互的 ActivityView 将接收触摸事件。奇怪的是,运行良好的视图不会得到任何事件。我假设触摸通过虚拟显示器直接重定向到托管活动。但我没有证据。

如何使所有托管活动可交互?因为我有系统访问权限,所以我可以访问隐藏的 API。不幸的是,我找不到 R 中的哪个变化导致了这个问题。因此,至少提示在哪里搜索会有所帮助,因为我的想法已经不多了。

0 投票
1 回答
342 浏览

android - 创建虚拟显示后调用 release() 不起作用

我曾经MediaProjection创建VirtualDisplay截屏。之后,我尝试释放virtualDisplay,但没有奏效:

几分钟后,我调用了这个函数displayManager.getDisplays()--> 我看到了一些没有被释放的虚拟显示器。

如何彻底释放?有什么我错过的吗?

P/s:这很像这个问题:Android VirtualDisplay.release() not release the display,但我还没有找到解决方案。

0 投票
0 回答
406 浏览

android-studio - Android 模拟器 - 抖音崩溃

我正在使用 Android Studio 4.2.1(最新),并在我尝试的两种设备中观察到这种行为:Pixel C (API 30) 13.5 Freeform (API 30)

按照这些说明在我的 android 模拟器上获取 Play 商店,然后下载Tiktok ,每次我尝试打开它时,应用加载的很少,几秒钟后就崩溃了。我什至从谷歌搜索结果中点击了一个 Tiktok 视频,它打开了应用程序,没有加载任何内容,然后它就崩溃了。

TL;DR:当我尝试在我的 Android 模拟器中打开 Tiktok 应用程序时,应用程序(不是模拟器)崩溃了。

任何人都知道解决这个问题(或者我应该向谷歌报告这个错误?)?

0 投票
0 回答
53 浏览

android - 如何显示在 VirtualDisplay 中打开的最后一个活动?

我创建了一个虚拟显示器并在其中打开了设置。如果我在设置中打开了一些其他活动,例如:wifi 页面。然后我按下主页按钮并返回最后打开的活动应该在虚拟显示器中。

现在,它即将到来的空白页。请指导在已创建的虚拟显示中检索上次打开的活动。