华为荣耀负一屏卡片接入 您所在的位置:网站首页 华为负一屏怎么关闭附近服务 华为荣耀负一屏卡片接入

华为荣耀负一屏卡片接入

2023-08-24 17:32| 来源: 网络整理| 查看: 265

前言

前段时间来了个需求,说是要将我们的应用在荣耀手机的负一屏以卡片(小组件)的形式展示,因为之前也没有弄过android原生的小组件(AppWidget)开发,没办法,面向百度开发吧,好在一顿操作之后,完美的实现了需求。总结一下。带几个问题去研究: 1.开发之前先搞明白荣耀卡片到底是什么东西?android 原生的小组件(appWidget)是什么东西?他俩有什么关系? 2.荣耀卡片是否如同其他三方的sdk一样,接入进去配置就可以? 3.要通过什么手段、方法去实现;

AppWidget

附上一篇通俗易懂的文章链接,说的比较详细了 链接: appWidget介绍

总结来说,这玩意就是一个存在于系统进程中、并且有界面的一个View,可以将他理解成一个activity,有自己的xml布局,我们想要实现的页面效果,当然也就是在这个xml中去实现的。 搞明白什么是小组件后,那荣耀的小卡片又是怎么回事—— 其实就是一个东西,荣耀并不提供sdk或者实现方式,我们需要先写一个android原生的AppWidget,然后去按照荣耀开放平台的文档做一些配置就ok了。

荣耀开放平台的配置

搞明白到底我们要写一个什么东西之后,那就去看看荣耀的官方文档 链接: 荣耀开放平台 在这里插入图片描述 如果不知道android 原生小组件的话,看到这个文档真的非常懵,因为通过这个文档真的不知道要如何下手,这个文档,好像说了点什么,又好像什么都没说。如果做过原生小组件开发的同学应该一眼就能看明白:这个地方就是在清单文件声明了一个广播,作用就是实现跨进程通信,因为前面我们说过,android 原生小组件是存在于系统进程的,那我们自己的app又是一个单独进程,想要实现两端的数据同步,自然是要有一个通信手段的,同时这个地方荣耀加了一个自己的节点,方便能够调起app

看完接入文档后,然后去管理中心添加一个应用,前面三个步骤就是输入一些自己的项目信息,这个按照要求填写就行, 在这里插入图片描述 到了第四步实现的时候,这个地方就是我们配置卡片地方。默认一张卡片,但荣耀负一屏的卡片一般会提供多个尺寸供用户选择,这个看具体需求,需要多个就添加多个不同尺寸的就ok。 在这里插入图片描述 卡片AppWidgetProvider这个地方,这就是你在应用中创建的原生小组件的路径

填写完卡片信息后,就去发布测试吧,需要注意的是,荣耀卡片目前只在magicUI6.0以上的荣耀手机上显示,所以还需要一台满足条件的测试机。 在这里插入图片描述

到这一步的时候,我们大致应该是有个思路:实现荣耀卡片就是写一个android 原生的小组件(appWidget),然后在荣耀平台上添加路径,配置完成后就可以在负一屏展示了。

发布测试之后,平台配置就算是完成了,然后就需要专心去实现我们原生小组件了 首先就是先new一个新的widget,会自动生成3个文件 在这里插入图片描述 在这里插入图片描述 MyAppWidgetProvider:这是一个BroadCast,我们在这个类中,通过广播接受数据——>RemoteView获取到view的id——>然后绑定数据——>最后通过appWidgetManager刷新界面 new_app_widget::这个就是我们小组件的布局文件 new_app_widget_info :这个文件是android 小组件的一些配置,具体的属性用法在上文中的链接中都能看到,这里不在详细说明

文件创建之后,搭建我们自己的小组件界面,然后绑定数据即可: 详细说明一下MyAppWidgetProvider的执行流程

MyAppWidgetProvider有自己的声明周期方法,最重要的就是onReceive() 和 onUpdate(), onReceive() 在接受到广播action时会被调用,同时他也会在底层调用onUpdate() onUpdate() 在第一次添加小组件时就会被调用,每次调用appWidgetManager.update时都会被调用

这个地方很关键 需要自己仔细想一下: 我们项目中的业务逻辑,一般就是第一次添加小组件时,需要刷新小组件界面上的数据,然后就是在app中,用户操作事件时,需要同步数据给小组件,那么在这两个方法中,我们都可以完成了。

需要重点说明一下:小组件接收app发过来的数据,是通过这个action发过来的,就是在数据改变的地方发送一个广播,onReceive()中就一定会接受到。 在这里插入图片描述 最后写完就是发布了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有