HarmonyOS鸿蒙Next中应用上架的时候能否选择具体支持那些设备?

HarmonyOS鸿蒙Next中应用上架的时候能否选择具体支持那些设备? 应用上架的时候能否选具体支持那些设备? 比如应用只适配了手机,但是手机设备的形态太多了,不支持折叠屏和三折叠的设备,这些设备能不能剔除掉? 还是说说所以手机设备都要能适配?

13 回复
  1. 可以选支持哪些设备,开发者完成HarmonyOS应用开发、调试与测试后,可以在AGC正式提交应用上架申请。申请上架可以配置支持设备,在“基本信息”区域的“支持设备”栏勾选手机时,表示支持直板机与折叠屏。
  2. 手机和折叠屏、PAD是同步兼容的,需要尽量保证应用在设备上不能显示异常。

如果你暂时不做折叠屏、PAD适配,屏蔽方案如下:

开发者登录互动中心申请屏蔽。

  1. 登录AppGallery Connect平台,点击右边用户信息框里的“互动消息”进入互动中心;
  2. 在互动中心依次点击“加号”->“反馈”,进入新建问题反馈界面;
  3. 写清楚需要屏蔽的应用设备信息,并点击“提交”按钮。屏蔽内容格式参考如下: 应用ID:(APPID) 应用名称:(XXX) 屏蔽设备:(Mate X5、Mate X6、Pocket 2、Pura X系列设备) 屏蔽理由:(xxxxx)
  4. 点击“召唤人工”,咨询进展情况,此时工单才走到后台处理。等待互动中心反馈结果。

更多关于HarmonyOS鸿蒙Next中应用上架的时候能否选择具体支持那些设备?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


可以选择平板、手机、电脑、2in1等设备种类

支持什么设备是开发者在开发时自行确定的,与使用的API有关

建议看下官网:

https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-overview

不行,官方没有这种指定折叠屏的功能,但是可以通过监听折叠设备状态变化

做好兼容的处理:

let isFoldableDevice: boolean = false;
try {
  isFoldableDevice = display.isFoldable();
  // 打印此设备是否为折叠设备
  hilog.info(DOMAIN, 'DisplayTest', `This device is foldable: ${isFoldableDevice}`);
} catch (exception) {
  hilog.error(DOMAIN, 'DisplayTest',
    `Failed to get foldable message. Code: ${exception.code}, message: ${exception.message}`);
}

可通过display.off(‘foldStatusChange’)关闭对应的监听。

/**
 * 注册监听的callback参数要采用对象传递.
 * 若使用匿名函数注册,每次调用会创建一个新的底层对象,引起内存泄漏问题。
 */
let callback: Callback<display.FoldStatus> = (data: display.FoldStatus) => {
  hilog.info(DOMAIN, 'DisplayTest', 'Listening enabled. Data: ' + JSON.stringify(data));
};
try {
  display.on('foldStatusChange', callback);
  // 如果通过on注册多个callback,同时关闭所有callback监听
  hilog.info(DOMAIN, 'DisplayTest', `register foldStatusChange success`);

  // 关闭单个callback监听
  display.off('foldStatusChange', callback);
  hilog.info(DOMAIN, 'DisplayTest', `unregister all foldStatusChange success`);
  // 关闭所有callback监听
  display.off('foldStatusChange');
  hilog.info(DOMAIN, 'DisplayTest', `unregister foldStatusChange success`);
} catch (exception) {
  hilog.error(DOMAIN, 'DisplayTest',
    `Failed to register/unregister callback. Code: ${exception.code}, message: ${exception.message}`);
}

折叠屏手机没有单独拎出来细分,统一分类到手机设备,并且只适配了手机没有适配平板的也会兼容分发到平板设备上。

具体可见官网说明:

背景知识:

目前支持以下设备:

  • 标准设备列表(适用于分发到中国大陆地区):
    • 手机(Phone)
    • 平板(Tablet):如果应用包声明支持平板,直接勾选;否则,手机应用会默认以兼容模式分发到平板。
    • PC/2in1(笔记本电脑/二合一设备):系统自动测试后默认分发,无需额外勾选,但需注意其交互差异。
    • 智慧屏(Smart Screen):支持遥控器操作。
    • 智能手表(Smart Watch)
    • 运动手表(Sports Watch)

在创建app应用的时候可以进行选择:

cke_371.png

注意:

设备修改限制:在首次上架前,您可以随时更改设备类型(如从单设备改为多设备)。但一旦应用发布:

  • 升级版本时,只能增加新设备类型,不能删除已有设备(例如,如果您初始选择了手机,升级时可以添加平板,但不能移除手机)。
  • 如果需移除设备,必须创建新应用或联系华为客服处理。

不支持这么细的选择的。只有大类选择。

期待HarmonyOS能继续优化多屏协同功能,让跨设备体验更加完美。

上架APP的时候可以选择的:

cke_309.png

不能选择这么细,所有手机和平板都是默认要支持的,2in1等其他设备可以自己选择支不支持

都有适配,而且 会强制上架平板

在HarmonyOS鸿蒙Next中,应用上架时可以选择具体支持的设备类型。开发者可在AppGallery Connect中通过配置设备类型、屏幕尺寸等参数来设定应用兼容范围,确保应用仅对目标设备可见和可安装。

在HarmonyOS Next中,应用上架时可以精确选择并声明所支持的设备类型,这是应用市场分发和用户下载的重要依据。

具体到你的问题:

  1. 设备类型选择:在将应用上架到华为应用市场时,你需要在应用的元数据中明确勾选其支持的设备类型,例如“手机”、“平板”、“智慧屏”等。如果你的应用仅适配了标准形态的手机,你可以只选择“手机”这一类。

  2. 同类型设备下的细分管控:对于同一种设备类型(如手机)下的不同形态(如直板手机、折叠屏、三折叠屏),目前应用市场不提供在列表中进行逐一剔除的选项。系统主要依据你选择的“设备类型”进行过滤。

  3. 关键机制:兼容性配置与运行控制

    • 声明能力要求:你可以在应用的module.json5配置文件中,通过abilitiesextensionAbilities下的skills字段,或使用requestPermissions来声明应用正常运行所必需的特定设备能力(如特定的屏幕形状、铰链角度传感器等)。不具备这些能力的设备在应用市场会被过滤或对用户给出提示。
    • 运行时适配与降级:这是开发阶段应完成的核心工作。应用应通过API(如display.getDefaultDisplaySync().cutoutInfo)动态检测设备实际形态(如是否为折叠屏、折叠状态),并据此提供不同的布局或功能。对于完全不支持的形态,应用可以设计友好的提示界面,告知用户在该设备上可能体验不佳或功能受限。

总结: 上架时,你通过选择“设备类型”进行大类控制。对于同一大类下的细分形态(如折叠屏),无法在应用市场列表直接排除,但可以通过声明必要的设备能力来影响市场分发,并必须在应用内部通过代码进行运行时检测与适配,以确保在不支持的设备上有合理的表现。华为应用市场会根据你的配置和用户设备情况进行匹配和推荐。

回到顶部