【荣耀开发者服务平台—百亿曝光扶持等你来】智慧服务安卓卡片接入指南
荣耀开发者服务平台(HONOR Developers)是荣耀面向开发者的统一生态入口,通过聚合周边内外部系统,分全球多站点部署,为全球开发者提供业务全生命周期的商业支撑服务。
平台可为软硬件合作伙伴带来三大应用场景服务,包括主动服务的场景化体验智慧服务,智能协同的跨设备互联的智慧生态以及应用与游戏出海服务。同时,荣耀帐号服务、推送服务、运动健康等开放能力和业务也提供了多样化的合作选择。
一、 接入流程
荣耀智慧服务为开发者提供一站式接入服务能力,和全场景、多终端、多入口的 AI 分发能力,为开发者提高业务推广效率,同时给用户提供便捷、贴心、智能的服务体验。
目前包含四种接入类型:快捷服务、快应用卡片、安卓应用卡片、内容接口卡片,呈现显示包括卡片和图标等,本文将提供安卓卡片(widget 卡片)接入指南。
二、开发指南
1. 前言
本文用于指导开发者如何在荣耀手机上开发应用微件,为了让用户获取最佳应用微件的体验,同时为了让荣耀向用户更好地推荐您的应用微件,您需要遵守本文第二章节所描述的技术规范。
访问荣耀智慧服务平台了解更多:Developer (hihonor.com)
2. 技术规范
2.1 遵循 Google 原生 widget 开发规范
请参考构建应用微件 | Android 开发者 | Android Developers
2.2 在清单中添加应用微件 meta-data 信息
为了让我们识别您已经开发完成的应用微件,需要在应用的 AndroidManifest.xml 文件中对针对您已声明的 AppWidgetProvider 类,新增 meta-data 信息 com.hihonor.widget.type ,代码示例如下:
对于上述代码示例中两组 meta-data 信息说明如下:
2.2.1 第一组 meta-data 信息为 android 原生配置,若需配置仅荣耀设备读取,其他厂商设备不读取卡片信息,可将“android.appwidget.provider”更换为"android.appwidget.honor.provider".
2.2.2 第二组 meta-data 信息,是为了让荣耀识别您已经开发完成的应用微件,并在荣耀快服务中心等新入口展示卡片。此配置不影响荣耀 MagicUI6.0 以下的旧版本手机、其他厂商机型手机上卡片的展示。
2.3 集成 YOYO 建议 SDK(可选)
如果您需要使用我们的智慧能力为您推荐您的应用微件,您需要接入 YOYO 建议 SDK,接入方法请与荣耀运营人员了解。
2.4 接收并处理 YOYO 建议定向广播信息(可选)
如果您的应用微件信息已经在荣耀 HISP 平台注册,那么 YOYO 建议会根据智慧场景向您推送定向广播,您可以在您的应用微件收到广播后做相应的动作,例如改变应用微件的显示内容。
定向广播接收处理代码示例如下(JAVA):
广播消息中附加场景信息在 intent extras 中,内容如下:
2.5 卡片中的本地图片设置圆角
在制作卡片时,在使用本地图片填充 widget 布局中的 imageView 时,当 imageView 拥有固定宽高时,示例代码如下(kotlin),仅供参考。
当 imageView 未设置固定宽高,可采用给图片覆盖一个带有圆角的边框的方式来裁切圆角,示例代码如 WidgetCardDemo 的 round_x_stroke_x_foreground.xml 文件。
当边框的宽度设置为 xdp 时,对应的 imageView 也需设置 padding = “xdp”
2.6 荣耀卡片适配 PAD 及折叠屏
卡片适配基本原则:
均分:保证指定元素与元素之间的间距一致,去适应卡片容器的尺⼨变化;允许定义组件最左端和最右端是否一起均分/指定固定值,若不定义,默认一起参与均分;
左右结构:左侧距离左边固定或左侧水平居中,右侧距离右边固定或右侧水平居中,保证卡片拉伸后显示效果无误。
左右结构、均分:可以往水平/垂直方向拉伸,来适应卡片大小的变化
占比:定义了占比能力的组件,保证指定元素始终在卡片内的某一个比例空间中进行布局。⽔平方向或垂直方向有占比能力,也可均有
拉伸:在布局宽度变化的时候,列表会随宽度变化⽽体现拉伸能力
宫格样式:卡片在 pad 下,可显示更多的元素。例:手机竖屏,图片可展示 3 个,相同卡片 pad 上可展示 4 个;
缩放:沉浸式背景图可以往⽔平/垂直⽅向拉伸,来适应组件容器的变化,进行自适应撑满容器,不得出现图片拉伸比例等情况。图文列表的图片比例不变,文字根据宽度拉伸
按照荣耀公司卡片适配 UX 规范,卡片分为纯文本类、图文类、列表类、宫格类。
为了在 PAD 展示情况下有更好的用户体验效果,所有类型卡片建议至少要实现横向拉伸,宽度通过权重方式设置。
2.7 widget 卡片点击跳转指定页面实现
卡片跳转指定页面通过 PendingIntent 实现,具体实现方式如下(kotlin):
提示:
Test:是需要跳转的页面或路由页面;
layoutId:点击的控件 id;
若不同卡片需要跳转不同 activity,需设置不同的 requestCode。
2.8 深色模式适配
深色模式适配按照原生系统适配方式,在 values 和 values-night 分别配置通用模式和深色模式下使用的颜色,在 drawable 和 drawable-night 下分别配置通用模式和深色模式使用的资源文件。
2.9 卡片圆角处理
荣耀的 widget 卡片容器已做圆角处理,大小是 16dp,卡片提供方外层四周圆角不用单独设置,卡片内部元素使用圆角还需自行设置。
2.10 折叠屏手机折叠和展开态卡片适配
在安卓 S 版本关于 widget 应用小部件新增了响应式布局方案,根据当前 widget 展示的大小,显示指定的样式具体实现如下(kotlin):
注意:该方案仅针对 Android 12 及以上版本有效, 即要求 compileSdkVersion = 31
安卓官网地址:https://developer.android.com/guide/topics/appwidgets/layouts
2.11 大字体大显示为保证所有三方卡片的整体效果一致,建议文字统一使用 dp 为单位,来禁止文字字体跟随系统设置变化,例如:android:textSize="14dp"
评论