gpt4 book ai didi

android - 双屏HDMI输出编程

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:11 25 4
gpt4 key购买 nike

在我的搜索中我发现,Android SDK 目前不支持控制 HDMI 端口 Activity 和处理 HDMI 输出。虽然某些设备制造商,如摩托罗拉(不知道是否有其他制造商也这样做)提供 API 以实现更好的控制。下面是其中两个的链接,其中不推荐使用双屏(非常符合我的要求)。

motorola hdmi status api

motorola hdmi dual screen api

镜像是连接 HDMI 时的默认行为,但我希望我的应用程序在 HDMI 输出上运行绑定(bind)服务。这将允许手机同时执行任何其他任务,而不会干扰我在 HDMI 屏幕上运行的服务。

有人可以建议我该怎么做吗?或者是否有任何其他制造商提供与摩托罗拉类似的灵 active ?

最佳答案

像这样创建一个服务类。

public class MultiDisplayService extends Service {
@Override
public void onCreate() {
super.onCreate();
DisplayManager dm = (DisplayManager)getApplicationContext().getSystemService(DISPLAY_SERVICE);
if (dm != null){
Display dispArray[] = dm.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION);

if (dispArray.length>0){
Display display = dispArray[0];
Log.e(TAG,"Service using display:"+display.getName());
Context displayContext = getApplicationContext().createDisplayContext(display);
WindowManager wm = (WindowManager)displayContext.getSystemService(WINDOW_SERVICE);
View view = LayoutInflater.from(displayContext).inflate(R.layout.fragment_main,null);
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.TYPE_TOAST,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT);
wm.addView(view, params);
}
}
}

启动服务,可能在您的应用程序类中。

public class MultiDisplayApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
startService(new Intent(this, MultiDisplayService.class));
}
}

您可能需要基于 DisplayManager.DisplayListener 的更复杂的显示添加/删除逻辑

mDisplayManager = (DisplayManager) this.getSystemService(Context.DISPLAY_SERVICE);
mDisplayManager.registerDisplayListener(this, null);

使用 WindowManager.LayoutParams.TYPE_TOAST 不需要任何权限,但看起来像是 hack。 WindowManager.LayoutParams.TYPE_SYSTEM_ALERT 可能更合理,但要求

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

在您的 AndroidManifest 中。

关于android - 双屏HDMI输出编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10822097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com