卡片显示方法及装置与流程



1.本技术涉及终端技术领域,尤其涉及卡片显示方法及装置。


背景技术:



2.目前,当电子设备接收到消息后,在一种场景下,用户需要先打开应用,到对应的联系人对话界面,然后查看或回复消息。在另一种场景下,用户可以从通知列表中到相应联系人的通知消息,然后,点击该通知消息进入对应的会话界面查看或回复消息。可见,目前的使用场景,用户查看或回复消息的操作比较复杂,导致人机交互效率低。


技术实现要素:



3.有鉴于此,本技术提供了一种卡片显示方法及装置,以解决上述的技术问题,其公开的技术方案如下:
4.第一方面,本技术提供了一种卡片显示方法,应用于电子设备,该电子设备包括会话类应用,该方法包括:显示第一桌面,第一桌面包括第一卡片,第一卡片包括第一会话应用中第一联系人的名称;接收第一联系人发送的第一会话消息;响应于第一会话消息,在第一卡片中显示第一会话消息;接收用户对第一卡片输入的第一操作;响应于第一操作,从第一桌面跳转至第一会话应用中与第一联系人的对话界面,对话界面中包括第一会话消息。这样,用户可以点击第一卡片直接进入第一联系人的对话界面,不需要先打开第一会话应用或从打开通知栏进入该第一会话应用,再进入第一联系人对应的对话界面,因此,简化了用户进入该联系人的对话界面的操作,提高了人机交互效率,同时还提高了用户体验。
5.在第一方面一种可能的实现方式中,响应于第一会话消息,在第一卡片中显示第一会话消息,包括:响应于第一会话消息,第一卡片由包括第一联系人的名称更新为包括第一会话消息和第一联系人的名称。
6.在第一方面另一种可能的实现方式中,该方法还包括:接收第一联系人发送的第二会话消息;响应于第二会话消息,第一卡片中的第一会话消息更新为第二会话消息。可见,第一卡片中显示第一会话消息后,若再次接收到第一联系人发送的第二会话消息,则第一卡片中的会话消息更新为最新的第二会话消息。从而方便用户查看到最新的消息。
7.在第一方面又一种可能的实现方式中,该方法还包括:接收发送至第一联系人的第三会话消息;响应于所述第三会话消息,在所述第一卡片中显示所述第三会话消息。可见,第一卡片还可以显示用户发送给第一联系人的会话消息,以便用户查看第一卡片就能够获知与第一联系人之间的最新会话,进一步提高了人机交互效率。
8.在第一方面再一种可能的实现方式中,响应于第一会话消息,在第一卡片中显示第一会话消息包括:监听到通知中心收到新通知消息后,获取新通知消息的信息,新通知消息的信息包括消息内容、联系人信息及状态信息,状态信息表征通知消息是否是会话类型消息;基于新通知消息对应的状态信息及联系人信息,确定新通知消息的消息内容是第一会话消息后,查询第一映射关系获得与第一联系人的全局唯一标识关联的目标卡片标识;
在目标卡片标识对应的卡片中显示第一会话消息;其中,第一映射关系包括卡片的卡片标识与卡片对应的联系人的全局唯一标识之间对应关系,全局唯一标识用于唯一标示会话类应用的联系人,卡片标识用于唯一标示第一桌面上的卡片。
9.在第一方面另一种可能的实现方式中,该方法还包括:监听到通知中心的通知消息被移除后,获取被移除的通知消息的信息,通知消息的信息包括联系人信息,以及状态信息,状态信息表征通知消息是否是会话类型消息;基于被移除的通知消息对应的状态信息及联系人信息,确定被移除的通知消息的消息内容是第一会话消息后,删除第一卡片中显示的消息内容。可见,该方案通过监听通知中心中通知消息的更新,同步动态更新相关卡片的显示内容,如监听到第一联系人的第一会话消息从通知中心移除后,此时认为用户已获知该第一会话消息的内容,同步删除第一卡片中显示的第一会话消息,避免用户重复操作。
10.在第一方面又一种可能的实现方式中,接收发送至所述第一联系人的第三会话消息,响应于所述第三会话消息,在所述第一卡片中显示所述第三会话消息,包括:监听到会话消息更新后,获取更新的会话消息的信息,所述会话消息的信息包括所述会话消息的联系人信息和会话消息内容;基于所述联系人信息确定与所述第一联系人之间的会话消息更新后,在所述第一卡片中显示更新后的会话消息。可见,该方案通过直接监听会话消息的更新,获取联系人的最新会话消息,以弥补通过监听通知中心无法获得的会话消息,如用户回复给第一联系人的会话消息,以便用户直接查看第一卡片即可获知与第一联系人之间的最新会话消息。
11.在第一方面再一种可能的实现方式中,该方法还包括:接收用户对第二桌面的第二操作;响应于第二操作,显示第一界面,第一界面显示卡片对应的功能类型,功能类型包括会话类型;响应于用户选择会话类型的操作,显示第三桌面,第三桌面包括会话类型的空白卡片;响应于用户对空白卡片输入的操作,显示第二界面,第二界面包括会话类型应用对应的近期联系人列表;响应于用户在近期联系人列表中选择第一联系人的操作,空白卡片更新为第一卡片。可见,通过上述操作过程,实现了用户在桌面上添加会话应用中某一联系人的卡片,极大地方便了用户查看和进入某一联系人对话界面,提高了用户体验。
12.在第一方面另一种可能的实现方式中,响应于用户对空白卡片输入的操作,显示第二界面,包括:响应于对空白卡片的编辑操作,显示查看最近消息界面,查看最近消息界面包括查看近期联系人入口;响应于对查看近期联系人入口的点击操作,显示第二界面,第二界面包括近期联系人列表。这样,方便用户从近期联系人列表中根据自己的需求选择相应的联系人,提高了添加卡片的灵活性。
13.在第一方面又一种可能的实现方式中,电子设备包括通知管理器;在响应于对查看近期联系人入口的点击操作之后,方法还包括:检测到用户点击查看近期联系人入口的操作后,向通知管理器发送获取近期会话通知的请求,近期会话通知是通知管理器在截止到当前时刻的第一时间段内接收到的会话类型的通知消息;接收通知管理器发送的近期会话通知,按照近期会话通知的时间戳由早到晚的顺序进行排序,获得近期联系人列表。可见,该方案可以通过监听通知中心中接收到的通知消息收集联系人,无需调用第三方会话应用的接口,实现了卡片显示方法在开发和调试过程中与第三方应用之间的解耦,提高了卡片显示方法的开发和调试效率。
14.在第一方面再一种可能的实现方式中,响应于用户在近期联系人列表中选择第一
联系人的操作,空白卡片更新为第一卡片,包括:如果通知中心中存在第一联系人发送的会话消息,第一卡片包括第一联系人的名称和该会话消息;如果通知中心中不存在第一联系人发送的会话消息,第一卡片包括第一联系人的名称。可见,在卡片上添加相应的联系人后,可以根据联系人的不同情况分别在卡片上显示不同的内容,例如,如果通知中心中有第一联系人的会话消息通知,则在该第一卡片中显示该会话消息;如果通知中心没有该联系人的会话消息通知,则可以仅在卡片中显示该联系人的信息,如名称、头像等。
15.在第一方面另一种可能的实现方式中,在响应于用户在近期联系人列表中选择第一联系人的操作之后,该方法还包括:在第一映射关系中添加第一卡片的卡片标识与第一联系人的全局唯一标识之间的对应关系,第一映射关系包括卡片的卡片标识与卡片对应的联系人的全局唯一标识之间的对应关系。
16.在第一方面又一种可能的实现方式中,该方法还包括:响应于用户对第一卡片的编辑操作,显示第二界面;响应于用户在近期联系人列表中选择第二联系人的操作,第一卡片显示的联系人由第一联系人更新为第二联系人。这样,用户可以随时修改卡片关联的联系人,降低用户操作复杂度,提高了用户体验。
17.在第一方面再一种可能的实现方式中,在第一卡片显示的联系人由第一联系人更新得第二联系人之后,方法还包括:将第一映射关系中第一卡片与第一联系人之间的映射关系数据,更新为第一卡片与第二联系人之间的映射关系数据。
18.在第一方面另一种可能的实现方式中,在显示第一桌面之后,该方法还包括:响应于用户对第一卡片的删除操作,从第一桌面中删除第一卡片。
19.在第一方面又一种可能的实现方式中,第一桌面包括以堆叠方式显示的至少两个卡片。这样,可以减少卡片占用的面积,使得桌面可以放置更多卡片。
20.在第一方面再一种可能的实现方式中,第一卡片还包括第一控件;该方法还包括:响应于用户对第一控件输入的操作,第一卡片显示信息输入框和发送控件;响应于用户对信息输入框的点击操作,第一卡片显示内容输入的界面;响应于对发送控件的点击操作,第一卡片显示发送给第一联系人的会话消息。这样,用户可以直接在卡片上回复会话消息,进一步简化了用户回复联系人消息的操作,进一步提高了用户体验。
21.在第一方面另一种可能的实现方式中,第一卡片还包括第二控件;该方法还包括:接收用户对第二控件输入的操作,第二控件为标记已读控件或删除控件;响应于对第二控件输入的操作,删除第一卡片中显示的会话消息。这样,用户可以直接在卡片上将消息标记为已读或删除该消息,不需要进入对话界面再操作,进一步提高了用户体验。
22.在第一方面又一种可能的实现方式中,卡片所显示的消息内容包括文字、图片、音频和视频中的至少一种。
23.第二方面,本技术还提供了一种电子设备,电子设备包括:一个或多个处理器、存储器和触摸屏;所述存储器用于存储程序代码;所述处理器用于运行所述程序代码,使得所述电子设备实现如第一方面任一种可能的实现方式所述的卡片显示方法。
24.第三方面,本技术还提供了一种计算机可读存储介质,其上存储有指令,当所述指令在电子设备上运行时,使得所述电子设备执行如第一方面任一种可能的实现方式所述的卡片显示方法。
25.应当理解的是,本技术中对技术特征、技术方案、有益效果或类似语言的描述并不
是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1是本技术实施例提供的一种电子设备的硬件结构示意图;
28.图2是本技术实施例提供的一种电子设备的软件架构示意图;
29.图3~图7是本技术实施例提供的一种添加会话卡片过程的界面示意图;
30.图8~图9是本技术实施例提供的会话卡片的尺寸示意图;
31.图10是本技术实施例提供的桌面上添加多张空白的会话卡片的界面示意图;
32.图11~图12是本技术实施例提供的卡片堆的显示效果示意图;
33.图13~图18是本技术实施例提供的在卡片中添加联系人的界面示意图;
34.图19是本技术实施例提供的一种联系人列表的示意图;
35.图20是本技术实施例提供的多张有消息的会话卡片的显示效果示意图;
36.图21~图23是本技术实施例提供的删除会话卡片的界面示意图;
37.图24~图26是本技术实施例提供的操作卡片展示信息的界面示意图;
38.图27~图28是本技术实施例提供的会话卡片跳转至会话应用的对话界面的示意图;
39.图29是本技术实施例提供的一种会话卡片编辑过程的流程图;
40.图30是本技术实施例提供的一种删除会话卡片过程的流程图;
41.图31是本技术实施例提供的一种更新会话卡片展示信息的流程图。
具体实施方式
42.本技术说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
43.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
44.为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
45.微件(web widget,widget,也可称为组件)是一种web2.0的衍生物,类似一个小型
的应用程式,可应用于移动设备领域。widget可以是一个时钟、一个日记簿、一段视频、天气预报、一个flash游戏等。
[0046]“窗口小工具”、“卡片”、“卡片堆”均是微件的一种表现形式,用于显示各种相关信息,如,文本、图像、按钮、地图等。
[0047]
前已叙及,当手机接收到会话类型消息,如短信息或等其他即时通讯消息,需要用户打开相应的应用或通知栏,然后进入该消息对应联系人的交互界面,查看或回复消息。可见,上述两种场景下,用户都需要至少两步操作,才能进入消息对应联系人的交互界面,导致人机交互效率低。
[0048]
为了解决该问题,本技术提供一种卡片显示方法,该方法可以在电子设备的桌面上显示对应的卡片(即,第一卡片,该第一卡片包括一会话应用中的一联系人的名称),用户可以直接点击卡片进入该联系人对应的对话界面,无需先打开该会话app或打开通知栏,再进入第一联系人对应的对话界面,因此,简化了用户进入对话界面的操作,提高了人机交互效率,以及提高了用户体验。
[0049]
示例性的,本技术中的电子设备可以为便携式计算机(如手机)、平板电脑、笔记本电脑、个人计算机(personal computer,pc)、可穿戴电子设备(如智能手表)、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、车载电脑等,以下示例对该电子设备的具体形式不做特殊限制。
[0050]
以电子设备是手机为例,如图1所示,示出了本技术实施例提供的一种电子设备的结构示意图。
[0051]
如图1所示,电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
[0052]
可以理解的是,本实施例示意的结构并不构成对电子设备102的具体限定。在另一些实施例中,电子设备102可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0053]
处理器110可以包括一个或多个处理单元。
[0054]
内部存储器121可以用于存储计算机可执行程序代码,该可执行程序代码可以包括操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。该可执行程序代码包括指令,处理器110通过运行存储在内部存储器121的指令,从而使电子设备执行各种功能应用以及数据处理。
[0055]
显示屏194用于显示图像,视频、一系列图形用户界面(graphical user interface,gui)等。例如,在本技术实施例中,显示屏可以用于显示widget卡片。
[0056]
电子设备的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,
或云架构。本技术实施例以分层架构的android系统为例,示例性说明电子设备的软件结构。
[0057]
图2示出了本技术实施例的终端设备的软件结构框图。
[0058]
分层架构将软件分成若干个层,每一层都有清晰的角和分工。层与层之间通过软件接口通信。以android系统为例,在一些实施例中,将android系统分为四层,从上至下分别为应用程序层(application,app),应用程序框架层(framework),类库层,以及内核层(kernel)。
[0059]
图2仅示出了与本技术实施例提供的卡片显示方法相关的软件层及软件层包含的模块。
[0060]
如图2所示,应用程序层可以包括一系列应用程序包。示例性的,应用程序包可以包括桌面、即时通讯、视频、通话、浏览器、日历、地图、音乐、相机等app。
[0061]
其中,本技术涉及的会话类应用是指可以生成对话消息的app,如,图2所示的即时通讯和短信息。其中,即时通讯是指具有即时通讯功能的一类应用,如、qq、钉钉等。
[0062]
在本技术的一个示例性实施例中,桌面应用(可称为桌面,主屏幕,或launcher等),例如,在安卓系统中,桌面又称为桌面启动器(launcher)。为了方便描述,本文中统称为桌面。
[0063]
在本技术实施例中,可以在桌面上创建卡片,此处的会卡片是指桌面上显示的,可以显示与某会话app中联系人之间的会话消息的服务卡片。例如,在卡片中显示该联系人的头像、名称、会话消息等内容。进一步,用户点击该卡片还可以直接跳转至该联系人的对话界面,例如,桌面上添加有联系人“cat”的卡片,当用户点击“cat”的卡片后,触发应用打开“cat”的对话界面。
[0064]
应用程序框架层(framework,fwk)为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
[0065]
在一示例性实施例中,如图2所示,应用程序框架层可以包括通知管理器(notification manager)、会话管理器(people manager)、卡片管理器(app widget manager)。还可以包括资源管理器、窗口管理器、视图系统、内容提供器等。
[0066]
其中,通知管理器,notification manager,用于对接收到的通知消息进行管理,例如,接收到通知变更后,更新通知的状态。
[0067]
会话管理器是framework侧的接口,负责解析对话通知,生成相应的会话消息。
[0068]
卡片管理器用于提供可以在桌面放置卡片的接口,负责卡片的生成、更新等过程。
[0069]
系统库层包括java语言需要调用的功能函数,以及安卓的核心库,该层还包括安卓运行时(android runtime)负责安卓系统的调度和管理。在一示例性实施例中,系统库层包括表面管理器、三维图形处理库、媒体库和二维图形引擎等。
[0070]
内核层是硬件和软件之间的层,在一示例性实施例中,内核层包括显示驱动、摄像头驱动、传感器驱动、音频驱动等。
[0071]
需要说明的是,本技术实施例以android系统为例进行说明,但是其基本原理同样适用于采用其他操作系统的终端设备中,本技术对终端设备采用的操作系统不做限定。
[0072]
下面以电子设备是手机为例,并结合图3~图7介绍本技术实施例提供的一种在桌
面添加会话卡片的过程,如,会话类型app可以包括短信、qq、钉钉等。
[0073]
在一示例性实施例中,如图3所示,手机显示桌面,用户在桌面上进行双指捏合操作,跳转至图4所示的显示界面。
[0074]
在另一示例性实施例中,操作系统的设置应用中设置有桌面卡片项,用户可以通过设置应用进入桌面卡片设置项,本技术实施例对进入桌面卡片设置界面的方式不做限定。
[0075]
如图4所示,该界面是桌面编辑界面,该界面的上方区域显示可以编辑的桌面页面10,可以通过左右滑动桌面页面更换桌面页面。该显示界面的底部区域显示操作选项,如壁纸、桌面卡片20、切换效果、桌面设置等。
[0076]
用户点击图4所示的桌面卡片20后,显示界面从图4所示的界面跳转至图5所示的界面。
[0077]
如图5所示,显示界面上显示一卡片类型展示界面100,该界面包括一种或多种卡片的类型,如会话101、时钟、备忘录、天气、图库、联系人。用户点击图5所示的会话101选项后,显示界面跳转至图6所示的界面。
[0078]
其中,图5所示的会话101选项是会话类型app的统称,即此处的会话并非特指一个app,而是包括会话类型的多个app,如,短信,qq,钉钉等,本技术实施例对会话类app不做限定。
[0079]
如图6所示,显示屏显示会话卡片界面110,该界面包括卡片111的大小和样式。在一示例性实施例中,用户可以左右滑动会话卡片界面110,从而实现切换显示其他大小和样式的卡片。
[0080]
在其他实施例中,可以通过其他方式切换显示其他大小、样式的卡片,如上下滑动页面,用户上下滑动界面切换界面上展示的卡片。本技术对切换显示卡片的具体方式不做限制。
[0081]
例如,图6所示的卡片111的大小是2
×
2。卡片还可以是其他大小,如图8所示的卡片111的大小是4
×
2,图9所示卡片111的大小是2
×
1,本技术实施例对卡片的大小不做限定。
[0082]
在一示例性实施例中,卡片的样式可以包括卡片显示的各部分内容(如,头像、联系人名称(或昵称)、消息内容等),卡片显示内容布局、透明度、卡片颜等,本技术对卡片的样式不做限制。用户可以基于会话卡片界面提供的卡片样式选择相应的样式。
[0083]
此外,如图6所示,会话卡片界面110的顶部还设置有退出控件112,用户点击退出控件112后,退出会话卡片界面。以及,会话卡片界面110的左上角还设置有返回控件113,用户点击返回控件113后,返回至会话卡片界面110的上一级界面,即图5所示的卡片类型展示界面100。
[0084]
例如,用户选中卡片111后可拖拽卡片111。当卡片111被拖拽出会话卡片界面110后,会话卡片界面110可自动消失,使得手机显示出位于会话卡片界面110下的桌面。进而,用户可继续拖拽卡片111,将卡片111放置在任一桌面页面。此时,如图7所示,桌面显示的卡片111为空白卡片,卡片111的类型为会话类型。空白卡片是没有任何信息的卡片。
[0085]
在卡片111添加至桌面的过程中,用户可以通过拖拽卡片111的方式,将卡片111放置在桌面的目标位置,如图7所示,将卡片111放置于桌面的其他应用图标的左下方。
[0086]
在卡片111添加完成后,用户也可以通过拖拽卡片111的方式移动卡片111在桌面上的位置,如图7所示,可以从卡片111所在的位置移至虚线区域114处。此外,还可以将卡片111通过拖拽方式移至其它桌面页面。
[0087]
在另一种场景下,桌面上添加有至少两张空白卡片,如图10所示,各空白卡片平铺在桌面上,可以根据每个空白卡片的大小确定空白卡片的布局,此处不再赘述。
[0088]
如图7和图10所示,在一示例性实施例中,空白卡片上显示一通用头像,且该通用头像位于空白卡片的中间位置。当然,在其它实施例中,通用头像在空白卡片中的位置可以调整,本技术对此不做限制。
[0089]
用户可以根据需求以及桌面的空白区域的大小,调整卡片111在桌面上的位置。该空白区域是指未放置任何应用图标的区域,本技术实施例并不限定卡片111的具体位置。
[0090]
在桌面上放置有多张卡片111的场景下,多张卡片还可以堆叠方式显示,如图11所示,三张卡片111-1、111-2和111-3堆叠在一起,当前视图显示卡片111-1,卡片111-2被卡片111-1遮挡,只能显示卡片边缘部分,同理,卡片111-3被卡片111-2遮挡。
[0091]
用户可以点击卡片堆中的任一张,被点击的卡片切换至当前视图显示,例如,用户点击卡片111-2后,卡片111-2切换至当前视图,即能够全部显示卡片111-2,此时,卡片111-1被卡片111-2遮挡。
[0092]
此外,不同大小的卡片也可以以堆叠方式显示,不同大小的卡片可以按卡片由小到大的顺序依次堆叠,例如,如图12所示,卡片111-4、111-5、111-6堆叠在一起,当前视图显示卡片111-4,卡片111-5的部分区域被卡片111-4遮挡,同理,卡片111-6的部分区域被卡片111-5遮挡。查看图12所示的卡片堆的方式与图11所示的卡片堆的查看方式相同,此处不再赘述。
[0093]
图11和图12仅是可能存在的卡片堆的示意图,还可以以其他的堆叠样式展示卡片堆,本技术对此不做限制。
[0094]
后续,可以对添加至桌面的会话类型的空白卡片进行编辑,如添加会话联系人,即将该卡片绑定会话联系人,从而直接在卡片上显示该联系人的相关信息,如头像、名称和会话内容等。
[0095]
下面将结合图13~图20介绍本技术实施例提供的编辑卡片的过程。
[0096]
如图13所示,用户可以长按空白的卡片111,跳转至图14所示的显示界面。
[0097]
在一示例性实施例中,如图14所示,在桌面的上层显示卡片操作界面200,卡片操作界面200上显示空白卡片111,以及,在空白卡片111的上方显示卡片操作选项卡210。
[0098]
卡片操作选项卡210上显示操作选项,如移除、编辑卡片、更多“会话”卡片等选项。当然还可以包括其他选项,如隐藏等,本技术对卡片操作选项卡210上显示的选项数量和内容不做限定。
[0099]
此外,在其他示例性实施例中,还可以在卡片操作界面200的其他位置显示卡片操作选项卡210,本技术对卡片操作选项卡的显示位置不做限定。
[0100]
用户点击图14所示的“编辑卡片”选项后,页面跳转至图15所示的界面,如图15所示,在桌面的上层显示近期消息界面220,近期消息界面220包括“最近联系人”选项221,用户点击“最近联系人”选项221后,可以查最近期联系人,如页面跳转至图16所示的最近联系人列表页面230。此外,此处仅以最近联系人为例进行说明,例如,在一段时间内发送过会话
消息的联系人都可以查看到,或者,发送过会话消息的联系人都可以查看到。
[0101]
在一示例中,如图15所示,近期消息界面220还可以包括“查看近期的消息”和“快速回复消息”的提示信息。其中,“查看近期的消息”的提示信息可以提醒用户在桌面上添加联系人的卡片后,可以直接在该卡片上查看与该联系人之间的近期会话消息。“快速回复消息”的提示信息可以提醒用户在桌面上添加联系人的卡片后,可以直接在卡片上回复消息。当然,在其他示例中,近期消息界面220也可以不包括上述的“查看近期的消息”和“快速回复消息”的提示,或者也可以进一步包括其他提示信息,本技术对此不做限定。
[0102]
如图16所示,最近联系人列表页面230中显示一个或多个联系人。这些联系人可以是最近一段时间内接收到的所有会话类型app的通知消息的联系人,如可能包括联系人、短信联系人、qq联系人等。
[0103]
在一种场景下,如图19所示,最近联系人列表中的联系人数量较多,一屏只能显示部分联系人,例如,如图16所示,一屏只能显示7个联系人,即从联系人“cat”到联系人“ccc”,无法显示全部联系人,用户可以向上滑动最近联系人列表页面230,显示图19所示的“ccc”之后的其他联系人。
[0104]
例如,图16所示的联系人列表中的每个联系人选项包括联系人的头像、名称。例如,图16中cat、dog、parrot、lion、aaa、bbb和ccc均表示联系人在所属会话类app中设置的名称。
[0105]
在一示例性实施例中,联系人头像是该联系人在所属会话类app中设置的个人头像。进一步,为了标示每个联系人所属的app,还可以在该个人头像的右下角显示该联系人所属的会话app的图标。例如,图16所示的联系人列表中,前两个联系人均来自这两个联系人的头像右下角显示的图标。
[0106]
在一示例性实施例中,如图16所示,最近联系人列表页面230的顶部可以设置隐藏控件231和搜索栏232。用户点击隐藏控件231后,最近联系人列表页面230隐藏,可以显示桌面或其他页面,本技术对此不做限定。
[0107]
用户点击搜索栏232进入搜索页面,在搜索页面可以输入联系人的至少部分名称快速筛选出包含该名称的联系人,简化了用户查联系人的操作,提高了人机交互效率。
[0108]
用户可以点击最近联系人列表页面230中的任一联系人行,将选择的联系人添加至卡片111中。如图16所示,用户点击联系人“parrot”后,跳转至图17或图18所示的界面。
[0109]
在一种场景下,联系人“parrot”是历史联系人,历史联系人是指在一段时间内接收到该联系人的会话类型的通知消息(也可称为会话通知消息,或会话通知),但是通知中心中不包含该联系人的会话消息,此种场景下,如图17所示,卡片111上可以只显示联系人的头像和名称。
[0110]
在另一种场景下,联系人“parrot”是活跃联系人,活跃联系人是指通知中心中包含该联系人的会话类型通知消息。此种场景下,如图18所示,卡片111除显示联系人“parrot”的头像和名称之外,还可以显示最近接收到的来自parrot的消息内容。
[0111]
如图20所示,卡片显示的消息内容的类型包括但不限于文字、图片、视频、音频、链接等,本技术实施例对卡片所能显示的消息内容的类型不做限定。
[0112]
此外,在空白卡片中添加联系人后,还可以通过编辑卡片选项修改卡片关联的联系人,例如,如图17所示,卡片111关联的联系人是短信联系人“parrot”。用户可以长按图17
的卡片111进入图14所示的卡片操作界面200,进一步点击“编辑卡片”选项,进入图15或图16所示的界面,用户从图16所示的联系人列表中选择新的联系人后,最终在卡片111上显示最新联系人的信息。
[0113]
在又一种场景中,用户还可以删除桌面上的卡片111。下面将结合图21~图23介绍本技术实施例提供的卡片删除过程。
[0114]
如图21所示,用户长按卡片111后,跳转至图22所示的卡片操作选项卡210的界面,用户点击“移除”选项后,删除桌面上的卡片111,即跳转至图23所示的桌面页面。
[0115]
以上内容是用户针对卡片的操作过程,在另一示例性实施例中,用户还可以对卡片的内容进行操作。下面将结合图24~图26介绍对卡片内容进行操作的过程。
[0116]
如图24所示,卡片111上显示联系人的头像、名称(“parrot”)和最新消息,还可以显示“回复”、“标记已读”控件。用户点击卡片111上显示的“回复”控件后,卡片111的显示界面更新为图25所示的界面。
[0117]
如图25所示,卡片111的底部区域显示回复栏310,回复栏310的右侧显示发送图标320。用户可以在回复栏310中输入欲回复的内容,输入完内容后,点击发送图标320,发送回复的消息。如图26所示,卡片111的消息内容显示区域330更新为用户回复的消息,即卡片111中的消息更新为与联系人“parrot”之间的最新消息。
[0118]
在桌面上添加一联系人的卡片后,接收到该联系人发送的会话消息后,可以在该联系人的卡片上更新显示该消息。
[0119]
在一种场景下,如图17所示,桌面上添加的卡片111中不包括联系人的消息,此后,接收到该联系人的消息后,在卡片111中显示接收到的消息,如图18所示,卡片111中还包括消息内容,如,可以在头像右侧显示消息内容。
[0120]
在另一种场景下,如图18所示,桌面上添加的卡片111包括联系人的会话消息(可称为第一会话消息),当接收到该联系人发送的第二会话消息后,卡片111中显示的第一消息更新为第二会话消息,即,卡片中消息会跟随会话内容的更新而更新。
[0121]
在又一种场景下,当用户向联系人回复会话消息后,如图18所示,卡片111中显示联系人“parrot”发送的会话消息(如第一会话消息),然后,用户又向“parrot”回复了一条会话消息(如第三会话消息),此时,卡片111中的消息内容由第一会话消息更新为第三会话消息。例如,用户可以在通知中心中包含第一会话消息的通知中直接回复第三会话消息,或者,用户直接在会话应用中回复第三会话消息;又如,如图24所示,用户还可以直接在该联系人的卡片上回复第三会话消息。本技术对用户回复会话消息的途径不做限定。
[0122]
此外,在一示例性实施例中,卡片中显示的会话消息可以是来自联系人的未读会话消息。例如,未读会话消息可以是用户未查看的消息,例如,接收该联系人发送的会话消息后,用户未回复任何消息,没有将该消息标记为已读,没有从通知中心删除该消息等。相应的,如果用户将联系人发送的会话消息标记为已读,或者,直接从通知中心中删除该会话消息,则同步更新卡片中显示的内容,即删除卡片中显示的会话消息。
[0123]
下面将结合图27和图28,介绍本技术实施例提供的从卡片跳转至会话类app界面的过程。
[0124]
用户点击桌面上显示的卡片后,手机的显示界面直接跳转至该卡片关联的联系人所属应用的对话界面。如图27所示,用户点击短信联系人“parrot”的卡片111后,跳转至如
图28所示的界面,即短信应用中联系人“parrot”的对话界面。
[0125]
由上述内容可知,本技术实施例提供的卡片显示方法能够在桌面上添加会话类型app对应的widget卡片,进一步可以向该widget卡片添加关联的联系人。当用户点击该卡片后,直接跳转至该联系人对应的对话界面,简化了用户操作,提高了人机交互效率。
[0126]
在搭载12及以上的电子设备中,当电子设备开机时即由实现桌面小工具的类peoplespacewidgetprovider向桌面(systemui)注册卡片组件,注册完成后,在图5所示的卡片类型展示界面100展示的卡片类型列表中展示会话选项。用户点击会话选项后,跳转至图6所示的会话卡片界面,用户可以选择任一种尺寸的卡片添加至桌面。
[0127]
在systemui的配置文件中配置各个界面的样式以及点击界面上的选项产生的请求。
[0128]
例如,配置的界面可以包括卡片类型展示界面100、会话卡片界面110、卡片操作选项卡210、近期消息界面220、联系人列表界面230等。例如,点击卡片操作选项卡210上的编辑卡片选项产生调用联系人列表的请求,又如,点击已添加联系人的卡片后,产生的跳转至相应应用的联系人对话界面的请求。
[0129]
将卡片添加至桌面后,可以对卡片进行编辑操作,例如添加联系人等。下面将结合图29介绍本技术实施例提供的会话类型卡片的编辑过程。
[0130]
如图29所示,编辑卡片的过程可以包括:
[0131]
s110,会话选择界面(peoplespaceactivty)接收到卡片编辑操作后,向会话卡片管理器(peoplespacewidgetmanager)发送获取近期联系人的请求。
[0132]
peoplespaceactivty是添加会话类型卡片时的会话选择界面。例如,会话选择界面包括图15所示的近期消息界面220。
[0133]
peoplespacewidgetmanager是会话类型卡片的管理者,其中一个功能是监听通知(notification),即能够感知到通知消息的变化。
[0134]
如图15所示,用户点击近期消息界面220中的最近联系人选项221后,peoplespaceactivty会接收到联系人获取请求,发起调用peoplespacewidgetmanager中近期会话获取方法的请求。
[0135]
s120,会话卡片管理器(peoplespacewidgetmanager)向通知管理器(notificationmanager)发起获取近期联系人的请求。
[0136]
近期联系人包括活跃联系人和历史联系人,此处的近期联系人是指一段时间内接收到该联系人发送会话通知消息,其中,此处的一段时间的结束时刻为当前时间戳。
[0137]
其中,活跃联系人是指通知消息中包含该联系人的会话通知消息。历史联系人是指在一段时间段内接收过该联系人的会话通知消息,但当前的通知消息中不包含该联系人的会话通知消息,如会话通知消息已从通知中清除。
[0138]
peoplespacewidgetmanager通过调用getprioritytiles方法获得通知中的活跃联系人,通过调用getrecenttiles方法获得历史联系人。
[0139]
peoplespaceactivty调用peoplespacewidgetmanager的getprioritytiles方法和getrecenttiles方法后,触发peoplespacewidgetmanager发起调用notificationmanager的近期会话获取方法。
[0140]
其中,getprioritytiles方法被调用后,peoplespacewidgetmanager会调用
notificationmanager的getconversation(true)方法。getconversation(true)方法用于获取notificationchannel的isimportantconversation字段是true的conversations。
[0141]
getrecenttiles方法被调用后,peoplespacewidgetmanager会调用notificationmanager的getconversation(false)方法。getconversation(false)方法用于获取notificationchannel中的conversations,不限制isimportantconversation字段的值。
[0142]
s130,通知管理器(notificationmanager)向会话卡片管理器(peoplespacewidgetmanager)返回近期会话。
[0143]
getconversation(true)方法被调用后,notificationmanager向peoplespacewidgetmanager返回活跃会话。其中,返回的活跃会话可以包括活跃联系人的信息(如,头像和名称)、会话内容以及最后一次会话内容对应的时间戳等。
[0144]
getconversation(false)方法被调用后,notificationmanager向peoplespacewidgetmanager返回历史会话。其中,返回的历史会话可以包括历史联系人的信息,以及最后一次会话内容对应的时间戳。
[0145]
s140,会话卡片管理器(peoplespacewidgetmanager)按照近期会话的时间戳由早到晚的顺序进行排序,得到近期联系人列表。
[0146]
peoplespacewidgetmanager中的getprioritytiles方法,按照活跃会话的时间戳由早到晚的顺序进行排序,并获取活跃联系人的信息,获得活跃联系人。
[0147]
getrecenttiles方法是按照历史会话的时间戳由早到晚的顺序进行排序,获得历史联系人。
[0148]
例如,一条会话的时间戳是2022.02.01的16:00,另一条会话对应的时间戳是2022.02.01的17:00,则16:00对应的会话排在17:00对应的会话之前。
[0149]
获得活跃联系人列表和历史联系人列表后,为每一个联系人创建对应的people space tile view(联系人列表项视图),且将历史联系人排在活跃联系人之后,最终形成联系人列表。
[0150]
其中,peoplespacetileview是联系人列表中一个单独列表项的视图布局,如图16和图19所示的一个联系人的显示内容布局。
[0151]
s150,会话卡片管理器(peoplespacewidgetmanager)向会话选择界面(peoplespaceactivty)返回近期联系人列表。
[0152]
s160,会话选择界面(peoplespaceactivty)显示近期联系人列表。
[0153]
此种场景下,会话选择界面包括图16所示的联系人列表界面230。
[0154]
在一示例性实施例中,会话选择界面显示的近期联系人列表中可以仅显示联系人的信息,如头像和名称,从而方便用户直观查看联系人的信息。例如,近期联系人列表可以采用图16或图19所示的布局方式。
[0155]
s170,会话选择界面(peoplespaceactivty)检测到选择联系人的操作后,调用会话卡片管理器的卡片更新方法,并向会话卡片管理器传递被点击的联系人(即,第一目标联系人)的信息。
[0156]
用户点击peoplespaceactivty展示的联系人列表中的任一列表项后,peoplespaceactivty向peoplespacewidgetmanager传递第一目标联系人的信息(如,头像、
名称、会话内容等),并调用peoplespacewidgetmanager中的卡片更新方法updatewidgets,以便更新会话卡片的联系人以及界面显示。
[0157]
s180,会话卡片管理器(peoplespacewidgetmanager)根据第一目标联系人对应的信息,获得第一目标卡片的第一目标视图界面。
[0158]
本技术中的视图界面可以包括卡片中各显示元素的样式以及布局等构成的显示界面,并以卡片的形式呈现该界面。
[0159]
例如,卡片所显示的元素可以包括联系人的头像、名称,或者还可以包括回复、标记为已读、删除等控件,头像、名称、控件即卡片的显示元素。可以按照各显示元素的样式及布局获得该卡片的显示界面。
[0160]
在此场景中,第一目标卡片是当前编辑的空白卡片。
[0161]
peoplespacewidgetmanager调用updatewidgets方法,进一步调用updateappwidgetviews方法,updateappwidgetviews方法会根据第一目标联系人对应的信息(如头像、名称、会话内容)组装第一目标卡片的视图界面,即第一目标视图界面。
[0162]
updateappwidgetviews方法会调用peopletileviewhelper方法的createremoteviews创建remoteviews。
[0163]
peopletileviewhelper是peopletileview的helper类,在peoplespacewidgetmanager更新会话卡片时,为其提供显示视图。
[0164]
如果第一目标联系人是活跃联系人,则第一目标视图界面中包括该联系人的头像、名称、最新会话的内容,以及各项信息的显示布局,例如,图18所示的卡片111所显示的信息及各项信息的显示布局。
[0165]
如果第一目标联系人是历史联系人,则第一目标视图界面中包括该联系人的头像、名称,以及各项信息的显示布局。例如,图17所示的卡片111所显示的信息及各项信息的显示布局。
[0166]
s190,会话卡片管理器(peoplespacewidgetmanager)向桌面卡片管理器(appwidgetmanager)发送第一目标卡片的唯一标识和第一目标视图界面。
[0167]
桌面卡片管理器(appwidgetmanager)位于电子设备软件架构中的应用程序框架层,用于提供可以在桌面上放置卡片的接口,并负责卡片生成、更新等。而且,appwidgetmanager为每个卡片生成一个唯一标识(即,卡片id)。peoplespacewidgetmanager可以从appwidgetmanager中获知当前添加的卡片的id。
[0168]
peoplespacewidgetmanager调用appwidgetmanager的updateappwidget方法将将组装好的第一目标视图界面,以及第一目标卡片的唯一标识(即卡片id)发送至appwidgetmanager,以便appwidgetmanager将view(即第一目标视图界面)更新到appwidget(即第一目标卡片)。
[0169]
s1100,桌面卡片管理器(appwidgetmanager)将第一目标卡片的界面更新为第一目标视图界面。
[0170]
appwidgetmanager根据接收到的卡片id确定欲更新界面的卡片,进一步将该卡片的界面更新为接收到的第一目标视图界面,从而完成卡片界面更新。例如,将卡片从图13所示的界面更新为图17或图18所示的界面。
[0171]
s1110,会话卡片管理器(peoplespacewidgetmanager)将第一目标联系人的全局
唯一标识与第一目标卡片的唯一标识之间映射关系更新至映射关系表中。
[0172]
电子设备的操作系统为联系人列表中的每个联系人创建一个全局唯一标识,即key,用于唯一标识联系人。
[0173]
电子设备中维护有卡片id与该卡片上添加的联系人的全局唯一标识(即key)之间的映射关系,例如,某卡片的id为abc,该卡片上添加的联系人的key为123,则建立abc与123之间的映射关系。
[0174]
在一示例性实施例中,联系人与卡片之间可以是一对一,或者一对多的映射关系,换言之,可以为一个联系人创建一张会话卡片,或者,还可以为同一联系人创建至少两张会话卡片。如果联系人与卡片是一对多的关系,则该联系人对应的至少两张会话卡片的视图界面同步更新。
[0175]
当用户在第一目标卡片中添加第一目标联系人后,peoplespacewidgetmanager会将第一目标卡片的卡片id及第一目标联系人的key之间的映射关系保存至上述的映射关系表中。
[0176]
在另一种场景下,用户还可以变更已添加有联系人的会话卡片上所关联的联系人。变更卡片关联的联系人的过程与向空白卡片添加联系人的过程相似,此处不再详述。其中,图中s1120~s1180所示的过程即变更卡片关联的联系人的过程:
[0177]
s1120,会话选择界面(peoplespaceactivty)接收到卡片编辑的操作后,调用会话卡片管理器(peoplespacewidgetmanager)的获取近期联系人的方法。
[0178]
与编辑空白卡片的过程相似,peoplespaceactivty接收到用户点击图14所示的“编辑卡片”选项的操作后,调用peoplespacewidgetmanager的getprioritytiles方法和getrecenttiles方法,分别获取活跃联系人和历史联系人,进一步获得包含活跃联系人和历史联系人的联系人列表。
[0179]
需要说明的是,peoplespacewidgetmanager在该步骤获得的联系人列表与在s140获得的联系人列表可能不同。
[0180]
随着时间推移,电子设备接收到的会话通知消息会更新,s140获得的活跃联系人,在本步骤获中可能变为历史联系人。本步骤获得的联系人列表中可能不包括s140获得的部分历史联系人。因此,不同时间获得的联系人列表可能不同。但获取联系人列表的方法相同,此处不再赘述。
[0181]
s1130,会话卡片管理器向会话选择界面返回联系人列表。
[0182]
s1140,会话选择界面接收到选择联系人的操作后,调用会话卡片管理器的卡片更新方法,并向会话卡片管理器传递第二目标联系人的信息。
[0183]
用户选择的联系人即第二目标联系人。该步骤的过程与s170的过程相同,此处不再赘述。
[0184]
s1150,会话卡片管理器利用第二目标联系人的信息,获得第二目标卡片的第二目标视图界面。
[0185]
第二目标卡片是指当前编辑的卡片,第二目标视图界面是第二目标卡片对应的目标视图界面。
[0186]
s1160,会话卡片管理器向桌面卡片管理器发送第二目标卡片对应的卡片id及第二目标视图界面。
[0187]
s1170,桌面卡片管理器将第二目标卡片的界面更新为第二目标视图界面。
[0188]
s1180,会话卡片管理器将映射关系表中第二目标卡片对应的联系人更新为第二目标联系人。
[0189]
会话卡片管理器从映射关系表中查到第二目标卡片的卡片id对应的映射关系数据中的联系人的key更新为第二目标联系人的key。
[0190]
在一种可能的实现方式中,修改卡片关联的联系人的过程可以是:将卡片关联的第一联系人替换为第二联系人。例如,如图17所示,卡片111关联的原联系人是“parrot”。修改后,卡片111关联的联系人变为“cat”,即卡片111显示联系人“cat”的信息。
[0191]
在另一种可能的实现方式中,修改卡片关联的联系人的过程还可以是:在卡片的原联系人基础上增加另一联系人,即,一个卡片关联两个联系人。例如,如图17所示,卡片111的原联系人是“parrot”,修改后,卡片111的联系人变为“parrot”和“cat”,即卡片111显示短信联系人“parrot”和联系人“cat”的信息。当然,在其他可能的实现方式中,一个卡片还可以关联更多数量的联系人,例如,3个或以上,可以根据卡片的尺寸确定该卡片可以关联的联系人数量,如卡片尺寸越大可关联的联系人可以越多。
[0192]
本实施例提供的卡片显示方法,可以在桌面上创建会话卡片,进而在会话卡片上添加联系人,从而使该卡片显示该联系人的信息,如头像、名称和会话消息内容等。编辑卡片的过程操作简单。而且,添加会话类型的卡片后,可以直接在卡片上显示该卡片关联的联系人的会话消息,用户无需打开通知栏查看通知消息,也无需打开该会话类app查看对应联系人的消息,简化了用户查看会话类型消息的操作,提高了人机交互效率,以及提高了用户体验。
[0193]
此外,如图21~图23所示的过程,用户还可以删除添加至桌面的会话类型的卡片。如图30所示,删除会话类卡片的过程如下:
[0194]
s210,peoplespacewidgetprovider接收到删除会话类型卡片的事件后,调用桌面卡片管理器的删除卡片的方法,从向桌面卡片管理器传递目标卡片的卡片id。
[0195]
例如,用户点击图22所示的“移除”选项删除已添加至桌面的卡片。
[0196]
peoplespacewidgetprovider是实现桌面小工具的类,当电子设备的触摸屏检测到用户点击“移除”选项的操作后,生成删除卡片的事件并传递至peoplespacewidgetprovider。
[0197]
peoplespacewidgetprovider接收到删除卡片的事件后,向appwidgetmanager传递目标卡片的卡片id,并调用appwidgetmanager的删除卡片的方法,以删除该目标卡片。目标卡片即欲删除的卡片。
[0198]
s220,桌面卡片管理器调用删除卡片的方法,基于目标卡片的卡片id删除桌面上的目标卡片。
[0199]
如图22所示,用户点击卡片操作选项卡210中的“移除”选项后,显示图23所示的桌面页面,该桌面页面不包括卡片111。
[0200]
s230,桌面卡片管理器向peoplespacewidgetprovider返回卡片成功删除的消息。
[0201]
s240,peoplespacewidgetprovider调用会话卡片管理器中更新目标卡片的映射数据的方法。
[0202]
peoplespacewidgetprovider向peoplespacewidgetmanager传递更新映射数据的
动作,如删除,以及目标卡片的卡片id,以便peoplespacewidgetmanager删除映射关系表中与该卡片id对应的数据条目。
[0203]
s250,会话卡片管理器基于目标卡片的卡片id,删除映射关系表中目标卡片对应的映射数据条目。
[0204]
本实施例提供的删除卡片的过程,在检测到用户删除桌面上的卡片的操作后,执行删除卡片的方法,同时,删除存储有卡片id与关联的联系人之间的映射关系的映射关系表中已删除的卡片对应的映射数据,确保映射关系表中的数据准确。
[0205]
为桌面上的卡片添加联系人后,当接收到该联系人的会话消息后,会将最新的会话消息更新至该联系人对应的卡片上。例如,如图17所示,为卡片111添加联系人“parrot”后,卡片111只显示联系人“parrot”的头像和名称。接收到“parrot”的会话消息后,卡片111更新为图18所示的视图界面,即,卡片111不仅显示联系人“parrot”的头像和名称,还显示“parrot”的最新会话消息的内容。
[0206]
下面将结合图31介绍更新会话卡片所显示的会话消息的过程。如图31所示,更新卡片显示的会话消息的过程可以包括两种情况,一种可以通过监听通知中心的通知消息更新动作,更新对应卡片的视图界面的过程,如图31中s310~s380所示的过程;另一种可以通过直接监听会话消息的更新动作,更新对应卡片的视图界面的过程,如图31中s390~s3140所示的过程。
[0207]
本文中的通知消息是指notificationlistener通过监听notificationservice接收到的消息,例如,通知消息可以包括如下字段:更新动作(接收或移除)、是否属于会话类型(true或false)、通知所属的应用(即发送通知消息的应用)、通知联系人(发送通知的联系人),通知内容等。
[0208]
本文中的会话消息是指用户与会话app中某一联系人之间的交互消息,会话消息可以包括如下字段:会话所属应用、会话联系人和会话消息内容。
[0209]
在通过监听通知消息更新对应卡片的场景中,通知中心接收到一条会话类型的通知消息(即是否属于会话类型的字段是true),则从通知消息中提取通知所属的应用、通知联系人、通知内容等内容获得会话消息,进而将这些消息更新至相应的卡片中。
[0210]
下面先介绍s310~s380所示的更新卡片的视图界面的过程:
[0211]
s310,电子设备的操作系统启动后,触发会话卡片管理器对通知监听服务进行监听。
[0212]
peoplespacewidgetmanager(会话卡片管理器)的一个主要功能就是监听应用程序框架层的notificationlistenerservice,以实现对notification(系统通知)的监听。
[0213]
电子设备的操作系统启动后,桌面(systemui)的status bar(状态栏)组件的start方法通过调用peoplespacewidgetmanager的attach方法,将peoplespacewidgetmanager的通知处理者(notification handler)附加到notificationlistener的实例mnotificationlistener中,以实现peoplespacewidgetmanager对应用程序框架层的notificationlistenerservice的监听。
[0214]
其中,notificationlistener属于systemui,是notificationlistenerservice的继承类,主要实现notificationlistenerservice对外暴露的接口。
[0215]
s320,通知监听者监听到通知消息更新后,获取通知消息的信息。
[0216]
notificationlistener包括onnotificationposted方法和onnotificationremove方法。当系统收到新的通知时,notificationlistener会回调onnotificationposted方法,获取系统接收到的通知的相关信息,如更新动作(即,接收)、通知内容、通知联系人、是否属于会话类型通知等。
[0217]
当监听到通知被删除时,notificationlistener会回调onnotificationremove方法,获取被删除的通知的相关信息,如更新动作(即,移除)、通知内容、通知联系人、是否属于会话类型通知等。
[0218]
s330,通知监听者向会话卡片管理器传递需要更新的通知消息的信息。
[0219]
peoplespacewidgetmanager的notificationhandler也包括onnotificationposted方法和onnotificationremove方法。
[0220]
notificationlistener回调自身的onnotificationposted方法和onnotificationremove方法后,会调用notification handler的onnotificationposted方法和onnotificationremove方法,从而将获得的通知消息的信息传递给people space widget manager。
[0221]
s340,会话卡片管理器判断更新的通知消息是否属于会话类型的通知;如果是,则继续执行s350;如果否,则结束当前流程。
[0222]
peoplespacewidgetmanager接收到通知传递的更新的通知消息的信息后,进一步调用updatewidgetswithnotificationchanged方法,以便判断更新的通知消息是否是会话类型的通知。
[0223]
notificationlistener传递给peoplespacewidgetmanager的通知消息的相关信息中包括是否属于会话类型通知的状态信息。
[0224]
例如,可以采用二进制数“1”表示该通知消息属于会话类型通知,“0”表示该通知消息不是会话类型通知。peoplespacewidgetmanager解析状态信息确定出更新的通知消息是否属于会话类型的通知。如果确定更新的通知消息是会话类型的通知,则继续判断其他信息项进而确定是否需要更新桌面卡片的界面。
[0225]
s350,会话卡片管理器判断更新的通知消息的联系人是否添加会话卡片;如果是,则执行s360,如果否,则结束当前流程。
[0226]
如果确定更新的通知是会话类型通知,peoplespacewidgetmanager通过调用updatewidgetswithnotificationchanged方法继续判断是否为该通知的联系人添加了对应的会话卡片,如果为该联系人添加了会话卡片,则确定需要更新该会话卡片的界面。
[0227]
前已叙及,电子设备中维护有桌面上的会话卡片与关联的联系人之间的映射关系,即卡片id与联系人的key之间的映射关系。
[0228]
peoplespacewidgetmanager可以查映射关系表中是否包含通知联系人的key的映射数据,如果包含,表明已为该联系人添加了会话卡片。进一步查询获得与该通知联系人关联的卡片的卡片id。
[0229]
如果映射关系表中不包含该联系人的key,表明没有为该联系人添加会话卡片。
[0230]
s360,会话卡片管理器根据更新的通知消息的信息,获得第三目标卡片的第三目标视图界面。
[0231]
其中,第三目标卡片是与更新的通知消息的联系人(即,第三目标联系人)关联的
卡片。
[0232]
peoplespacewidgetmanager确定更新的通知消息的联系人存在对应的会话卡片后,调用updateappwidgetviews方法,updateappwidgetviews方法会根据第三目标联系人对应的信息(如头像、名称、会话内容)组装第一目标卡片的视图界面,即第三目标视图界面。
[0233]
在接收新的通知消息的场景下,将新的通知消息中需要更新的信息更新至目标卡片的界面中,例如,将第三目标卡片展示的会话内容更新为最新的会话内容。
[0234]
在移除通知消息的场景下,则删除目标卡片所展示的会话内容。
[0235]
此外,无论是接收到新的通知消息还是移除通知消息的场景,如果通知传递的通知联系人的头像和/或名称更新,则将目标卡片展示的联系人的头像、名称更新为最新的头像、名称。
[0236]
s370,会话卡片管理器向桌面卡片管理器传递第三目标卡片的卡片id和第三目标视图界面。
[0237]
peoplespacewidgetmanager调用appwidgetmanager的updateappwidget方法将第三目标视图界面更新至第三目标卡片。
[0238]
s380,桌面卡片管理器将第三目标卡片的界面更新为第三目标视图界面。
[0239]
appwidgetmanager根据接收到的卡片id确定欲更新界面的卡片,进一步将该卡片的界面更新为接收到的第三目标视图界面,从而完成卡片界面更新。
[0240]
此外,在一些实施例中,卡片显示的消息可以跟随通知中心中通知消息的更新而更新,而通知中心中的通知消息的状态可以不因卡片消息的更新而变化。
[0241]
例如,若通知中心接收到联系人a的新消息通知,而且,桌面上添加有与联系人a关联的卡片a,此种情况下,卡片a上消息更新为联系人a的最新消息。同时,通知中心通知用户收到联系人a的新消息的方式可以不变,如可以在通知栏中显示联系人a的新消息通知,以及,还可以在熄屏状态下收到通知自动亮屏显示,以显示新通知的内容预览。
[0242]
当然,在其他实施例中,通知中心中通知消息的状态也可以跟随卡片消息的更新而变化,如卡片中的消息更新为通知中心中的最新消息后,可以删除通知中心中相应的消息通知,避免用户针对同一条消息重复操作。
[0243]
又如,若通知中心已收到联系人a发送的新消息通知,然后,用户在桌面上添加了与联系人a关联的卡片a,即在添加联系人a的卡片之前,通知中心中就有联系人a的消息,此种情况下,在卡片a上添加联系人a后,卡片a不仅显示联系人a的信息(如,头像、名称等),同时还可以显示来自联系人a的新消息。而且,卡片a的更新不会影响通知中心中联系人a的新消息的状态,即卡片a显示联系人的新消息后,可以不删除通知中心中该联系人a的该消息。
[0244]
当然,在其他实施例中,也可以删除通知中心中该联系人的消息通知,避免用户重复操作。
[0245]
再如,用户删除了通知中心中的一条未读消息后,而且,桌面上添加有与该消息对应的联系人的卡片,则同步删除该卡片中的未读消息。但是,如果用户在卡片上删除了一条未读消息,可以不删除通知中心中的相应的未读消息。
[0246]
当然,在其他实施例中,也可以删除通知中心中相应的未读消息,从而避免用户针对同一条未读消息重复操作。
[0247]
notificationlistener只能监听通知消息(即,通知中心的消息),无法监听到会话的变化,例如,用户在会话应用(或通知中心)直接回复的消息,或者,会话app推送的与该联系人相关的信息(如,好友生日提醒),由于会话app推送消息的发送方是会话app系统,而不是该联系人,因此通过监听通知中心无法获得该会话消息。而此种场景,也存在将用户回复的会话消息或app推送的消息更新至相应的卡片上的需求。
[0248]
下面将结合s390~s3140介绍通过直接监听会话的变化更新卡片显示内容的过程:
[0249]
s390,会话卡片管理器(peoplespacewidgetmanager)注册会话监听,对会话状态进行监听。
[0250]
peoplespacewidgetmanager的另一个主要功能是监听应用程序框架层(fwk)的会话变化,以便及时更新会话卡片的视图界面。
[0251]
在一示例性实施例中,在会话卡片添加联系人时,peoplespacewidgetmanager在构造方法里获得fwk的peoplemanager服务,并向peoplemanager注册peoplemanager.conversationlistener的接口,以绑定tileconversationlistener接口,实现对该联系人的会话进行监听。
[0252]
s3100,会话管理器监听到会话更新后,获取更新的会话的信息。
[0253]
当peoplemanager监听到会话(conversation)变化时,获取更新的会话的信息,例如,会话的联系人信息(如联系人key)、会话内容等。
[0254]
s3110,会话管理器向会话卡片管理器传递更新的会话的信息。
[0255]
当监听到conversation变化时,peoplemanager回调onconversationupdate方法,并通过tileconversationlistener接口将更新的会话的信息传递至peoplespacewidgetmanager。
[0256]
s3120,会话卡片管理器根据更新的会话的信息,获得第四目标联系人对应的第四目标卡片的目标视图界面(即,第四目标视图界面)。
[0257]
peoplespacewidgetmanager根据更新的会话对应的联系人key,从联系人与会话卡片的映射关系表中查询得到该联系人key关联的会话卡片(即第四目标卡片)的卡片id。
[0258]
进一步,peoplespacewidgetmanager调用updateappwidgetviews方法,根据更新的会话的信息组装第四目标卡片对应的视图界面,即第四目标视图界面。
[0259]
s3130,会话卡片管理器向桌面卡片管理器传递第四目标卡片的卡片id,以及第四目标视图界面。
[0260]
s3140,桌面卡片管理器将第四目标卡片的视图界面更新为第四目标视图界面。
[0261]
在一示例性实施例中,peoplespacewidgetmanager基于卡片id确定需要更新的第四目标卡片,进一步调用appwidgetmanager的updateappwidget方法,将第四目标卡片的视图界面更新为第四目标视图界面。
[0262]
例如,用户直接在通知栏提供的“回复”控件回复联系人的会话消息,此种场景下,通过上述步骤s390~s3140将用户回复的会话消息更新至该联系人对应的会话卡片上。
[0263]
又如,会话类app向用户推送了关于好友的提醒信息,如好友过生日,此种场景下,利用该方案能够将该提醒信息更新至该好友对应的会话卡片上。
[0264]
本实施例提供的卡片消息更新过程,通过对通知消息的监听,进一步根据有变化
的会话通知消息对应的信息更新目标会话卡片所展示的信息。以及,通过对会话消息的监听,进一步根据有变化的会话消息的信息更新目标会话卡片所展示的信息。
[0265]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0266]
在本实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0267]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0268]
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0269]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0270]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

技术特征:


1.一种卡片显示方法,其特征在于,应用于电子设备,所述电子设备包括会话类应用,所述方法包括:显示第一桌面,所述第一桌面包括第一卡片,所述第一卡片包括第一会话应用中第一联系人的名称;接收所述第一联系人发送的第一会话消息;响应于所述第一会话消息,在所述第一卡片中显示所述第一会话消息;接收用户对所述第一卡片输入的第一操作;响应于所述第一操作,从所述第一桌面跳转至所述第一会话应用中与所述第一联系人的对话界面,所述对话界面中包括所述第一会话消息。2.根据权利要求1所述的方法,其特征在于,所述响应于所述第一会话消息,在所述第一卡片中显示所述第一会话消息,包括:响应于所述第一会话消息,所述第一卡片由包括所述第一联系人的名称更新为包括所述第一会话消息和第一联系人的名称。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:接收所述第一联系人发送的第二会话消息;响应于所述第二会话消息,所述第一卡片中的所述第一会话消息更新为所述第二会话消息。4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:接收发送至所述第一联系人的第三会话消息;响应于所述第三会话消息,在所述第一卡片中显示所述第三会话消息。5.根据权利要求1-3任一项所述的方法,其特征在于,所述响应于第一会话消息,在所述第一卡片中显示所述第一会话消息,包括:监听到通知中心收到新通知消息后,获取所述新通知消息的信息,所述新通知消息的信息包括消息内容、联系人信息及状态信息,所述状态信息表征所述通知消息是否是会话类型消息;基于所述新通知消息对应的状态信息及联系人信息,确定所述新通知消息的消息内容是所述第一会话消息后,查询第一映射关系获得与所述第一联系人的全局唯一标识关联的目标卡片标识;在所述目标卡片标识对应的卡片中显示所述第一会话消息;其中,所述第一映射关系包括卡片的卡片标识与所述卡片对应的联系人的全局唯一标识之间对应关系,所述全局唯一标识用于唯一标示所述会话类应用的联系人,所述卡片标识用于唯一标示所述第一桌面上的卡片。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:监听到通知中心的通知消息被移除后,获取被移除的通知消息的信息,所述通知消息的信息包括联系人信息,以及状态信息,所述状态信息表征所述通知消息是否是会话类型消息;基于所述被移除的通知消息对应的状态信息及联系人信息,确定所述被移除的通知消息的消息内容是所述第一会话消息后,删除所述第一卡片中显示的消息内容。7.根据权利要求4所述的方法,其特征在于,所述接收发送至所述第一联系人的第三会
话消息,响应于所述第三会话消息,在所述第一卡片中显示所述第三会话消息,包括:监听到会话消息更新后,获取更新的会话消息的信息,所述会话消息的信息包括所述会话消息的联系人信息和会话消息内容;基于所述联系人信息确定与所述第一联系人之间的会话消息更新后,在所述第一卡片中显示更新后的会话消息。8.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:接收用户对第二桌面的第二操作;响应于所述第二操作,显示第一界面,所述第一界面显示卡片对应的功能类型,所述功能类型包括所述会话类型;响应于用户选择会话类型的操作,显示第三桌面,所述第三桌面包括所述会话类型的空白卡片;响应于用户对所述空白卡片输入的操作,显示第二界面,所述第二界面包括所述会话类型应用对应的近期联系人列表;响应于用户在所述近期联系人列表中选择第一联系人的操作,所述空白卡片更新为所述第一卡片。9.根据权利要求8所述的方法,其特征在于,所述响应于用户对所述空白卡片输入的操作,显示第二界面,包括:响应于对所述空白卡片的编辑操作,显示查看最近消息界面,所述查看最近消息界面包括查看近期联系人入口;响应于对所述查看近期联系人入口的点击操作,显示所述第二界面,所述第二界面包括所述近期联系人列表。10.根据权利要求9所述的方法,其特征在于,所述电子设备包括通知管理器;在所述响应于对所述查看近期联系人入口的点击操作之后,所述方法还包括:检测到用户点击所述查看近期联系人入口的操作后,向所述通知管理器发送获取近期会话通知的请求,所述近期会话通知是所述通知管理器在截止到当前时刻的第一时间段内接收到的会话类型的通知消息;接收所述通知管理器发送的所述近期会话通知,按照所述近期会话通知的时间戳由早到晚的顺序进行排序,获得所述近期联系人列表。11.根据权利要求8所述的方法,其特征在于,所述响应于用户在所述近期联系人列表中选择第一联系人的操作,所述空白卡片更新为所述第一卡片,包括:如果通知中心中存在所述第一联系人发送的会话消息,所述第一卡片包括所述第一联系人的名称和所述会话消息;如果所述通知中心中不存在所述第一联系人发送的会话消息,所述第一卡片包括所述第一联系人的名称。12.根据权利要求8-11任一项所述的方法,其特征在于,在所述响应于用户在所述近期联系人列表中选择第一联系人的操作之后,所述方法还包括:在第一映射关系中添加所述第一卡片的卡片标识与所述第一联系人的全局唯一标识之间的对应关系,所述第一映射关系包括卡片的卡片标识与所述卡片对应的联系人的全局唯一标识之间的对应关系。
13.根据权利要求8-11任一项所述的方法,其特征在于,所述方法还包括:响应于用户对所述第一卡片的编辑操作,显示所述第二界面;响应于用户在所述近期联系人列表中选择第二联系人的操作,所述第一卡片显示的联系人由所述第一联系人更新为所述第二联系人。14.根据权利要求13所述的方法,其特征在于,在所述第一卡片显示的联系人由所述第一联系人更新为所述第二联系人之后,所述方法还包括:将第一映射关系中所述第一卡片与所述第一联系人之间的映射关系数据,更新为所述第一卡片与所述第二联系人之间的映射关系数据。15.根据权利要求1所述的方法,其特征在于,在显示第一桌面之后,所述方法还包括:响应于用户对所述第一卡片的删除操作,从所述第一桌面中删除所述第一卡片。16.根据权利要求1所述的方法,其特征在于,所述第一桌面包括以堆叠方式显示的至少两个卡片。17.根据权利要求1所述的方法,其特征在于,所述第一卡片还包括第一控件;所述方法还包括:响应于用户对所述第一控件输入的操作,所述第一卡片显示信息输入框和发送控件;响应于用户对所述信息输入框的点击操作,所述第一卡片显示内容输入的界面;响应于对所述发送控件的点击操作,所述第一卡片显示发送给所述第一联系人的会话消息。18.根据权利要求1或17所述的方法,其特征在于,所述第一卡片还包括第二控件;所述方法还包括:接收用户对所述第二控件输入的操作,所述第二控件为标记已读控件或删除控件;响应于对所述第二控件输入的操作,删除所述第一卡片中显示的会话消息。19.根据权利要求1所述的方法,其特征在于,所述卡片所显示的消息内容包括文字、图片、音频和视频中的至少一种。20.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器、存储器和触摸屏;所述存储器用于存储程序代码;所述处理器用于运行所述程序代码,使得所述电子设备实现如权利要求1至19任一项所述的卡片显示方法。21.一种计算机可读存储介质,其特征在于,其上存储有指令,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至19任一项所述的卡片显示方法。

技术总结


本申请提供了一种卡片显示方法及装置,该方法可以在电子设备的桌面上显示会话类型APP对应的卡片,即第一卡片,该第一卡片包括一会话应用中的一联系人的名称。用户可以直接点击卡片进入该联系人对应的对话界面,无需先打开该会话APP或打开通知栏,再进入第一联系人对应的对话界面,因此,简化了用户进入对话界面的操作,提高了人机交互效率,以及提高了用户体验。体验。体验。


技术研发人员:

马太保

受保护的技术使用者:

荣耀终端有限公司

技术研发日:

2022.03.30

技术公布日:

2022/12/26

本文发布于:2024-09-20 17:25:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/48705.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:卡片   联系人   消息   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议