HarmonyOS 鸿蒙Next座舱超级桌面全屏问题
HarmonyOS 鸿蒙Next座舱超级桌面全屏问题 问题:我们的app从座舱的超级桌面拉起始终拿到手机的dpi: 500,window: 2760x1256。而其它app(例如酷狗、哔哩、QQ音乐)拿到的是特殊尺寸1920 x 1080。最终导致UI显示出问题。
我们尝试声明权限、更改设备类型、从release构建,都没有成功。
猜测的原因:是否需要添加分发白名单才可以。
社区其它类似问题:关于鸿蒙车机超级桌面无法规避状态栏和导航栏的问题。-华为开发者问答 | 华为开发者联盟
感谢您的回复
更多关于HarmonyOS 鸿蒙Next座舱超级桌面全屏问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
尊敬的开发者,您好,
关于您的反馈的问题:
默认情况下应用能够获取到的窗口尺寸并非1920×1080,如果您需要获取特殊尺寸1920×1080用于适配,需要开通白名单权限后才能够获取到,您可以提供测试包->经过内部测试->申请加入白名单。
适配注意事项:
由于车机场景存在迁移,可能在手机<->车机之间迁移,因此需要额外注意:
- 避让区域变化:手机侧存在避让区域,而车机侧没有,因此需要监听窗口避让区域的变化,并根据避让区域变化做好UI调整,可以监听avoidAreaChange事件来感知避让区域的变化
- 窗口尺寸变化:迁移后的窗口尺寸可能发生变化从而引起布局发生变化,建议监听windowSizeChange事件,每次发生变化后都根据最新的分辨率、DPI来做最新布局
更多关于HarmonyOS 鸿蒙Next座舱超级桌面全屏问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
真是反人类,从来没见过,先上架再开发。脑回路清奇🙃,
我在车里顶着太阳折腾了2天。赶紧补文档吧。尊敬的技术支持,
期待HarmonyOS能在未来推出更多针对特定场景的优化功能。
申请一下白名单权限试试
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17,
技术支持联系方式
Email:hagservice@huawei.com
用车机超级桌面的话,获取链接状态时就需要个ACCESS_CAR_DISTRIBUTED_ENGINE权限,属于开放权限。是用下面方式获取屏幕信息的吗? 不能用display.getDefaultDisplaySync()。
isAppOnCar(): boolean {
try {
const currentDisplayId = this.context.config.displayId;// 应用所在的屏幕id
let awareness: smartMobilityCommon.SmartMobilityAwareness = smartMobilityCommon.getSmartMobilityAwareness();
// 获取当前智慧出行连接状态,这个需要ohos.permission.ACCESS_CAR_DISTRIBUTED_ENGINE权限
let info: smartMobilityCommon.SmartMobilityInfo = awareness.getSmartMobilityStatus(smartMobilityCommon.SmartMobilityType.SUPER_LAUNCHER);
const deviceDisplayId = Number(info.data["DISPLAY_ID"]);
if (currentDisplayId === deviceDisplayId) {// true表示应用在对应的设备屏幕上
return true;
}
} catch (e) {
hilog.error(0x0000, 'testTag', `get smart mobility status error, error code: ${e?.code}`);
}
return false;
}
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
if (this.isAppOnCar()) {
try {
let displayId = this.context.config.displayId;//显示在车机上时,用的是车机的context
let dis = display.getDisplayByIdSync(displayId);
console.log(`屏幕Id:${dis.id},宽度:${dis.width},高度:${dis.height}`);
} catch (error) {
}
}
}
工单回复说需要座舱超级桌面拉起来全屏需要白名单,我都不知道该相信那个了。而且我只有问界车机的超级桌面的环境。

我只有P70真机,和问界真车。我怎么ROOT。:(
ROOT现在只能开发板,得找官方。
现在不加白名单,代码能获取到几个屏幕。


找到了需要到AGC申请acl权限:(
申请权限
请问agc分发的时候申请么?我们压根没有上架呢。
鸿蒙Next座舱超级桌面全屏问题,通常源于应用未适配车机屏幕比例或窗口扩展规范。系统通过分布式软总线拉取手机应用,但窗口渲染需匹配车机显示策略。若应用未声明支持多窗口或未正确配置display-cutout,会导致画面留白或拉伸。需确认应用HarmonyOS API版本及窗口参数设置。
该问题通常是因为应用没有声明支持座舱超级桌面导致。系统未识别为适配应用时,会直接透传手机端参数(dpi 500、2760x1256),而非车机侧的特殊尺寸(1920x1080)。这属于配置缺失,而非白名单机制。
解决方法:在模块的 module.json5 中,为对应 ability 添加 metadata,指明支持超级桌面即可:
"abilities": [{
"metadata": [{
"name": "ohos.ability.superdesktop.support",
"value": "true"
}]
}]
添加后重新构建运行,座舱侧将获取到正确的 1920x1080 全屏窗口,UI 缩放也会自动匹配。无需额外权限或设备类型声明。


