HarmonyOS鸿蒙Next中卓易通是否有提供给android app接口判断当前是由卓易通打开的?

HarmonyOS鸿蒙Next中卓易通是否有提供给android app接口判断当前是由卓易通打开的? 卓易通打开的 app 给了桌面快捷方式权限也不支持添加快捷方式到桌面,线上经常有用户反馈此问题,想知道是否有方法提供给 android app判断当前打开 app 的环境是否是卓易通内的环境?

目的是想针对卓易通用户来添加一个暂不支持的提示并引导下载鸿蒙版 app,如果不能判断的话只能针对所有华为机型添加失败的场景做提示了,范围会比较大。

11 回复

更多关于HarmonyOS鸿蒙Next中卓易通是否有提供给android app接口判断当前是由卓易通打开的?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


目前卓易通没有公开提供官方 Android SDK 接口,能直接判断:

“当前 APP 是否运行在卓易通环境”

至少目前公开文档里没有类似:

  • getIsZhuoYiTong()
  • EMUI API
  • 系统 Intent
  • 特殊权限

这种标准接口。

你现在遇到的:

卓易通里无法创建桌面快捷方式

这个其实是很多 Android APP 在卓易通里的共性问题。

因为卓易通本质上:

不是完整 Android Launcher 环境

它对:

  • ShortcutManager
  • Launcher权限
  • 桌面固定快捷方式
  • Widget
  • 部分系统Intent

兼容并不完整。

所以即使:

requestPinShortcut()

返回成功,

实际桌面也可能不会生成图标。

目前比较常见的判断方式只有“间接判断”。

例如:

1、检测系统特征

有些设备会存在:

Build.MANUFACTURER
Build.DISPLAY
Build.FINGERPRINT

包含:

EasyAbroad
卓易通
Exyroid

之类字段。

但这个不稳定,不同版本可能变化。

2、检测特定包名

例如检测:

com.huawei.easyabroad

或卓易通相关服务是否存在。

但这个也不是官方保证方案。

3、功能探测(更推荐)

比起判断“是不是卓易通”,更建议:

直接判断:

当前环境是否支持快捷方式

例如:

ShortcutManager shortcutManager

shortcutManager.isRequestPinShortcutSupported()

如果返回 false:

就提示:

当前环境不支持添加桌面快捷方式

这种兼容性会更好。

因为即使不是卓易通:

  • 某些国产ROM
  • 企业模式
  • 平板模式
  • 多用户模式

也可能禁用快捷方式。

一句话:

目前卓易通没有公开官方接口给 Android APP 判断运行环境,通常只能通过系统特征/包名做间接识别;实际更推荐直接检测 ShortcutManager 是否支持快捷方式,而不是强依赖“是否卓易通”判断。

感谢大佬回答,我们线上是有通过ShortcutManager 判断的,判断不支持会提醒用户授权,但线上一些卓易通用户反馈给了权限但还是没能添加到桌面上。所以想针对卓易通用户来添加一个暂不支持的提示,如果不能判断的话只能针对所有华为机型添加失败的场景做提示了,范围会比较大。

Build里的各个值都对比试下,基本能覆盖80-90%的机子了。

卓只是暂时的,总有一天会从鸿蒙中彻底移除~

您好,建议app内自行判断

卓易通都要没了,应该不会支持了,

怎么说?卓易通要没了?

坊间传闻,

卓易通未提供公开接口供Android应用检测自身运行环境。在HarmonyOS NEXT中,Android应用无法通过系统API或卓易通特定方法判断是否由卓易通启动。

目前没有官方公开的 API。但可以通过读取系统属性间接判断:在卓易通环境下,Build.DISPLAY 通常会包含 "ZYT" 字符串;也可尝试读取 persist.sys.zyt_flag 或检查 ro.vendor.build.ohos.family 是否为 "zyt"。示例:

String display = Build.DISPLAY;
boolean isZyt = display != null && display.contains("ZYT");

注意该方法依赖卓易通固件的具体实现,非官方标准,未来版本可能变化。

回到顶部