firefly-rk3399 8.1双屏异显,两个app两个屏幕显示怎么做
本帖最后由 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。
可以参考
https://blog.csdn.net/wlwl0071986/article/details/48542923 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());
}
}
但是这段代码会提示“应用不支持在辅显示屏上启动” cpl 发表于 2020-11-16 16:08
Presentation可以实现副屏显示,但是需要每个app都实现Presentation代码。我想要的是单独app可以启动到副 ...
{:4_106:} 看看其他了解这方面的童鞋的回复吧 已经解决了
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
页:
[1]