Firefly开源社区

打印 上一主题 下一主题

[Android] firefly-rk3399 8.1双屏异显,两个app两个屏幕显示怎么做

17

积分

0

威望

0

贡献

技术小白

积分
17

firefly-rk3399 8.1双屏异显,两个app两个屏幕显示怎么做

发表于 2020-11-16 14:16:17      浏览:8161 | 回复:4        打印      只看该作者   [复制链接] 楼主
本帖最后由 cpl 于 2020-11-18 16:59 编辑

我这边刷的官方8.1hdmi的那个固件,通过hdmi+dp接了两个显示器,执行am start -W -n com.android.settings/com.android.settings.Settings --display 1 后提示应用不支持在辅显示屏上启动,两个
显示器都显示的同一个activity...

自己也写了app,加了android:resizeableActivity="true" 和 android:supportsPictureInPicture="true",效果还是两个屏幕启动同一个activity,提示“应用不支持在辅显示屏上启动

想要知道异显如何实现,两个屏幕显示两个单独的apk。




回复

使用道具 举报

3747

积分

17

威望

18

贡献

官方团队

Rank: 9Rank: 9Rank: 9

积分
3747
发表于 2020-11-16 14:48:16        只看该作者  沙发
回复

使用道具 举报

17

积分

0

威望

0

贡献

技术小白

积分
17
发表于 2020-11-16 16:08:39        只看该作者  板凳
jpchen 发表于 2020-11-16 14:48
可以参考
https://blog.csdn.net/wlwl0071986/article/details/48542923

Presentation可以实现副屏显示,但是需要每个app都实现Presentation代码。我想要的是单独app可以启动到副屏显示。通过intent跳转
DisplayManager displayManager = (DisplayManager) this.getSystemService(DISPLAY_SERVICE);
        Display[] dis = displayManager.getDisplays();
        Intent intent = new Intent(this, ClassActivity.class);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            ActivityOptions ao = ActivityOptions.makeBasic();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                ao.setLaunchDisplayId(3);
                startActivity(intent, ao.toBundle());
            }
        }



但是这段代码会提示“应用不支持在辅显示屏上启动”
回复

使用道具 举报

3747

积分

17

威望

18

贡献

官方团队

Rank: 9Rank: 9Rank: 9

积分
3747
发表于 2020-11-16 17:51:28        只看该作者  地板
cpl 发表于 2020-11-16 16:08
Presentation可以实现副屏显示,但是需要每个app都实现Presentation代码。我想要的是单独app可以启动到副 ...

看看其他了解这方面的童鞋的回复吧
回复

使用道具 举报

17

积分

0

威望

0

贡献

技术小白

积分
17
发表于 2020-11-20 14:46:42        只看该作者  5#
已经解决了

3.原因:系统不支持多屏显示特性
类似于双屏异显的特性是通过/system/etc/permissions/下面的xml配置文件来进行控制的。

多屏显示的特性xml文件:
\frameworks\native\data\etc\android.software.activities_on_secondary_displays.xml

android.software.activities_on_secondary_displays.xml文件:

<permissions>
    <feature name="android.software.activities_on_secondary_displays" />
</permissions>
1
2
3
4.解决
1、需要将android.software.activities_on_secondary_displays.xml文件拷贝到/system/etc/permissions/下面,双屏异显才可生效。否则就会报错。adb push命令。

2、或者在编译时在mk文件中增加编译脚本:
PRODUCT_COPY_FILES += frameworks/native/data/etc/android.software.activities_on_secondary_displays.xml : system/etc/permissions/android.software.activities_on_secondary_displays.xml重新编译系统生效。

关于安卓hasSystemFeature及系统特性配置,请参考文章:
https://blog.csdn.net/lzpdz/article/details/51841213
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表