CN111176374B - 基于安卓系统实现副屏旋转的控制方法 - Google Patents

基于安卓系统实现副屏旋转的控制方法 Download PDF

Info

Publication number
CN111176374B
CN111176374B CN201911253160.6A CN201911253160A CN111176374B CN 111176374 B CN111176374 B CN 111176374B CN 201911253160 A CN201911253160 A CN 201911253160A CN 111176374 B CN111176374 B CN 111176374B
Authority
CN
China
Prior art keywords
screen
auxiliary screen
service
rotation
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911253160.6A
Other languages
English (en)
Other versions
CN111176374A (zh
Inventor
贲永增
贾云海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dianshi Jingwei Technology Co ltd
Original Assignee
Beijing Dianshi Jingwei Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dianshi Jingwei Technology Co ltd filed Critical Beijing Dianshi Jingwei Technology Co ltd
Priority to CN201911253160.6A priority Critical patent/CN111176374B/zh
Publication of CN111176374A publication Critical patent/CN111176374A/zh
Application granted granted Critical
Publication of CN111176374B publication Critical patent/CN111176374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1601Constructional details related to the housing of computer displays, e.g. of CRT monitors, of flat displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一种基于安卓系统实现副屏旋转的控制方法,用于基于安卓系统的双屏智能终端,控制方法包括以下步骤:底层远程服务获取步骤,用于通过在应用层调用实现副屏旋转的AIDL接口(Android Interface Definition Language,即Android接口定义语言,下同)以获取底层远程服务;副屏旋转控制步骤,用于通过所述底层远程服务与底层通信调用到系统界面的副屏转屏服务中以获取窗口管理器服务实现副屏旋转控制。

Description

基于安卓系统实现副屏旋转的控制方法
技术领域
本发明涉及智能终端屏幕旋转控制方法,特别是涉及一种在基于安卓系统的双屏智能终端上实现副屏旋转方向的控制方法。
背景技术
对于双屏双触控的智能终端,常常需要在两块显示屏上分别显示不同的内容。现有技术中,双屏双触控的智能终端通常主屏(displayId=0)可以根据用户需求自动旋转方向,而在副屏(displayId=1)上却不能进行旋转方向。该技术方案中的副屏方向由于不能跟随用户的需求进行改变,而在实际场景中用户在操作副屏时同样想要和主屏相同的旋转效果,所以这样就影响了用户的体验效果。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种基于安卓系统实现副屏旋转的控制方法,其中,用于基于安卓系统的双屏智能终端,所述控制方法包括以下步骤:
底层远程服务获取步骤,用于通过在应用层调用实现副屏旋转的AIDL接口以获取底层远程服务;
副屏旋转控制步骤,用于通过所述底层远程服务与底层通信调用到系统界面的副屏转屏服务中以获取窗口管理器服务实现副屏旋转控制。
上述的控制方法,其中,于所述步骤底层远程服务获取步骤中进一步包括:
步骤11:在所述应用层集成调用实现副屏旋转的所述AIDL接口;
步骤12:通过集成后的所述AIDL接口获取底层远程服务。
上述的控制方法,其中,于所述副屏旋转控制步骤中进一步包括:
步骤13:通过所述底层远程服务调用到所述系统界面的副屏转屏服务中更新副屏的转向信息;
步骤14:在所述副屏转屏服务中获取所述窗口管理器服务,进而调用所述窗口管理器服务来进行所述副屏旋转;
步骤15:所述副屏旋转完成后输出副屏旋转完成信息,再远程回调到所述应用层,所述应用层根据所述输出副屏旋转完成信息重新适配方向。
上述的控制方法,其中,于所述步骤13中包括:
步骤131:所述AIDL接口通过所述底层远程服务绑定所述副屏转屏服务;
步骤132:调用所述副屏转屏服务的方向函数获取所述副屏的转向值;
步骤133:根据所述转向值获取所述副屏的所述转向信息;
步骤134:根据所述转向信息为所述副屏设置转屏需要的标记。
上述的控制方法,其中,于所述步骤14中包括:
步骤141:创建所述窗口管理器服务的Binder接口;
步骤142:所述窗口管理器服务根据所述标记并通过所述Binder接口旋转所述副屏。
上述的控制方法,其中,于所述步骤15中,通过回调函数远程调到所述应用层。
上述的控制方法,其中,所述转向信息包括副屏高度信息、副屏宽度信息以及副屏转向角度信息。
上述的控制方法,其中,于所述步骤133中,还包括通过显示管理器服务记录所述转向信息。
本发明的控制方法相对于现有技术其功效在于,可以自主控制副屏方向,并且根据用户需求来自由切换副屏转向。
附图说明
图1为本发明控制方法的流程图;
图2为图1的分步骤流程图;
图3为图1的分步骤流程图;
图4为图3的分步骤流程图;
图5为图3的分步骤流程图;
图6为本发明控制方法的整体架构图。
具体实施方式
下文举实施例配合所附图式作详细说明,以更好地理解本发明内容的态样,但所提供的实施例并非用以限制本发明的保护范围。
请参考图1-6,图1为本发明控制方法的流程图;图2为图1的分步骤流程图;图3为图1的分步骤流程图;图4为图3的分步骤流程图;图5为图3的分步骤流程图;图6为本发明控制方法的整体架构图。如图1-6所示,本发明的基于安卓系统实现副屏旋转的控制方法用于基于安卓系统的双屏智能终端,控制方法包括以下步骤:
底层远程服务获取步骤S1:用于通过在应用层调用实现副屏旋转的AIDL(AndroidInterface Definition Language,即Android接口定义语言,下同)接口以获取底层远程服务;
副屏旋转控制步骤S2:用于通过所述底层远程服务与底层通信调用到系统界面的副屏转屏服务中以获取窗口管理器服务实现副屏旋转控制。
进一步地,所述步骤底层远程服务获取步骤S1中进一步包括:
步骤S11:在所述应用层集成调用实现副屏旋转的所述AIDL接口;
步骤S12:通过集成后的所述AIDL接口获取底层远程服务。
再进一步地,于所述副屏旋转控制步骤S2进一步包括:
步骤S13:通过所述底层远程服务调用到所述系统界面的副屏转屏服务中更新副屏的转向信息;
步骤S14:在所述副屏转屏服务中获取所述窗口管理器服务,进而调用所述窗口管理器服务来进行所述副屏旋转;
步骤S15:所述副屏旋转完成后输出副屏旋转完成信息,再远程回调到所述应用层,所述应用层根据所述输出副屏旋转完成信息重新适配方向,其中在本实施例中,通过回调函数远程调到所述应用层,但本发明并不以此为限。
又进一步地,于所述步骤S13中包括:
步骤S131:所述AIDL接口通过所述底层远程服务绑定所述副屏转屏服务;
步骤S132:调用所述副屏转屏服务的方向函数获取所述副屏的转向值;
步骤S133:根据所述转向值获取所述副屏的所述转向信息,其中所述步骤133中,还可包括通过显示管理器服务记录所述转向信息;
步骤S134:根据所述转向信息为所述副屏设置转屏需要的标记。
更进一步地,于所述步骤S14中包括:
步骤S141:创建所述窗口管理器服务的Binder接口;
步骤S142:所述窗口管理器服务根据所述标记并通过所述Binder接口旋转所述副屏。
需要说明的是,在本实施例中,所述转向信息包括副屏高度信息、副屏宽度信息以及副屏转向角度信息,但本发明并不以此为限。
以下结合图1-6具体说明本发明控制方法的工作过程:
本发明的在双屏智能终端上实现副屏旋转的方法,设计时充分考虑了如下几个方面:
第一方面,由于原生显示框架只支持应用默认在主屏上旋转,对显示在副屏的应用有较差的体验效果。
第二方面,由应用主动控制副屏的旋转,需要减少应用与系统之间的耦合度,使用AIDL远程通信可以简便的实现应用层与系统层的交互,同时也增加了系统的安全性。
第三方面,安卓系统(Android)的窗口管理器服务(WindowManagerService)可以根据具体的显示设备唯一标识(Display id),来获取对应的设备信息,通过请求的设备转向更新副屏设备信息,并且通知屏幕设备管理器(DisplayManager)来保存对应信息。需要综合评估这些特殊处理对副屏旋转效果的影响,进而予以适当的屏蔽和修改,并且充分考量其运行稳定性。
第四方面,由于安卓系统(Android)默认不支持副屏旋转,需要在副屏设备信息中增加相应的标记(flag)属性,使副屏具备旋转的功能。
第五方面,由于使副屏显示的应用程序与副屏的转向必须统一改变,这时就需要及时通知应用程序副屏的旋转状态,需要充分考量系统稳定性。
进一步地,对本发明的控制方法详细流程进行分析。
客户端调用副屏旋转时需要集成两个AIDL远程服务接口文件,分别是IEpdRotation.aidl和IEpdRoListener.aidl。副屏旋转封装在IEpdRotation.aidl,副屏旋转完成回调客户端处理封装在IEpdRoListener.aidl。在客户端应用程序启动的时候绑定远程服务,获取副屏转屏服务(EpdRoationService)的AIDL远程服务接口文件。绑定转屏远程服务方法如下:
Figure BDA0002309593520000051
需要旋转副屏时调用远程服务的方向函数(updateEpdRotation)来请求底层来旋转副屏,需要指定想要的转向值(Rotation)。
在系统界面(SystemUI)中新建副屏转屏服务(EpdRoationService),IEpdRotation.aidl和IEpdRoListener.aidl来与应用进行通信。在副屏转屏服务(EpdRoationService)内创建IEpdRotation.Stub对象mEpdRotation,当应用层通过安卓系统binder接口服务(bindService)绑定服务时将该对象返回到应用层,所以应用层调用接口中的函数其实都是调用到副屏转屏服务(EpdRoationService)中。在副屏转屏服务(EpdRoationService)的onCreate初始化函数中安卓原生窗口管理(IWindowManager)对象用来调用安卓窗口管理(WindowManager)的函数与IRemoteCallback回调副屏转屏服务(EpdRoationService)。
当应用调用方向函数(updateEpdRotation)进行更新副屏方向时,副屏转屏服务(EpdRoationService)调用安卓窗口管理(WindowManager)的方向函数(updateEpdRotation)来旋转副屏,转向值(Rotation)为旋转方向,mCallback为初始化时创建的回调对象,needCallback为是否需要回调应用。
在IWindowManager.aidl中增加接口方向函数(updateEpdRotation),让其他模块调用更新副屏的方向,当应用请求副屏旋转时也会调到该函数中,在该函数中主要做了三件事情:
1、更新副屏设备信息;
2、实现副屏转屏;
3、回调应用层,通知副屏旋转完成。
Figure BDA0002309593520000061
在更新副屏设备信息时,如果系统没有副屏,或者副屏此时的方向与请求的方向相同,都不会进行更新设备信息。如果副屏将要进行旋转,获取副屏的内容属性(DisplayContent),之后进行判断请求的方向(Rotation)是否为ROTATION_90,ROTATION_270,如果是的话就将原来设备的宽度(Width)赋值给设备真实宽度(realdh),高度(Height)赋值给设备的真实高度(realdw),最后将请求的方向记录在einkRotation中保存。
之后就将计算的设备宽高,以及设备的方向记录在显示设备信息(DisplayInfo)中。更新了显示设备信息(DisplayInfo)后,将设备信息、设备ID传入安卓显示设备管理服务(DisplayManagerService)中,在Display中将传入的显示设备信息(DisplayInfo),记录在mOverrideDisplayInfo变量中,如果存在就将显示设备信息(DisplayInfo)改变内容赋值到mOverrideDisplayInfo变量中,等待后面使用。
安卓系统(Android)设备屏幕的旋转是通过安卓屏幕管理服务(Display ManagerService)的performTraversalInTransactionFromWindowManager原生函数控制的。更新完设备信息后,安卓原生窗口管理服务(WindowManagerService)调用该函数来进行旋转屏幕。在调用过程安卓屏幕管理服务(DisplayManagerService)的performTraversalInTransactionLocked函数中,会遍历系统中的所有设备,从mDisplayDevices变量列表中取出设备,然后调用configureDisplayInTransactionLocked函数,来配置设备。最后获取到更新设备信息时保存的mOverrideDisplayInfo对象,从该对象中取出新的设备转向与宽高等信息。
在调用副屏旋转时设备需要有FLAG_ROTATES_WITH_CONTENT的标记(flag),才能获取到之前设置的转向值(Rotation),而副屏没有该标记(flag),就需要在LocalDisplayAdapter.java中获取副屏信息时添加该标记(flag)。
Figure BDA0002309593520000071
获取到副屏转向信息后就调用安卓原生显示绘制控制器(SurfaceControl)的setDisplayProjection函数来旋转副屏。
副屏旋转完后通过回调函数将旋转信息传给应用层做对应的处理。
本发明的在双屏智能终端上实现副屏旋转的方法,在遵从系统标准的设备转屏框架的前提下,令系统副屏也可以自由旋转,并且能够通过应用程序来主动控制副屏旋转。对窗口管理机制中的安卓原生窗口管理服务类(WindowManagerService),以及显示(Display)管理机制的安卓显示管理服务(DisplayManagerService)类和安卓本地显示适配器(LocalDisplayAdapter)类的修改,将大大提升副屏旋转的呈现效果和用户体验。同时,对于应用程序只需要实现两个副屏旋转服务相应的接口即可,定制成本极低。
本发明的在双屏智能终端上实现副屏旋转的方法,可以应用于任何安卓系统(Android)的双屏智能终端上,其中,安卓系统(Android)的双屏智能终端,不限于双屏智能手机、平板电脑等。
虽然本发明内容已以实施方式揭露如上,然其并非用以限定本发明内容,任何熟悉本领域的相关技术人员,在不脱离本发明内容的精神和范围内,当可作各种更动与润饰,因此本发明内容的保护范围当视所附权利要求的保护范围所界定者为准。

Claims (6)

1.一种基于安卓系统实现副屏旋转的控制方法,其特征在于,用于基于安卓系统的双屏智能终端,所述控制方法包括以下步骤:
底层远程服务获取步骤,用于通过在应用层调用实现副屏旋转的AIDL接口以获取底层远程服务;
副屏旋转控制步骤,用于通过所述底层远程服务与底层通信调用系统界面的副屏转屏服务以获取窗口管理器服务实现副屏旋转控制;
于所述副屏旋转控制步骤中进一步包括:
步骤13:通过所述底层远程服务调用所述系统界面的副屏转屏服务以更新副屏的转向信息;
步骤14:在所述副屏转屏服务中获取所述窗口管理器服务,进而调用所述窗口管理器服务来进行所述副屏旋转;
步骤15:所述副屏旋转完成后输出副屏旋转完成信息,再远程回调到所述应用层,所述应用层根据所述输出副屏旋转完成信息重新适配方向;
于所述步骤13中包括:
步骤131:所述AIDL接口通过所述底层远程服务绑定所述副屏转屏服务;
步骤132:调用所述副屏转屏服务的方向函数获取所述副屏的转向值;
步骤133:根据所述转向值获取所述副屏的所述转向信息;
步骤134:根据所述转向信息为所述副屏设置转屏需要的标记。
2.如权利要求1所述的控制方法,其特征在于,于所述底层远程服务获取步骤中进一步包括:
步骤11:在所述应用层集成调用实现副屏旋转的所述AIDL接口;
步骤12:通过集成后的所述AIDL接口获取底层远程服务。
3.如权利要求1所述的控制方法,其特征在于,于所述步骤14中包括:
步骤141:创建所述窗口管理器服务的Binder接口;
步骤142:所述窗口管理器服务根据所述标记并通过所述Binder接口旋转所述副屏。
4.如权利要求3所述的控制方法,其特征在于,于所述步骤15中,通过回调函数远程调到所述应用层。
5.如权利要求1所述的控制方法,其特征在于,所述转向信息包括副屏高度信息、副屏宽度信息以及副屏转向角度信息。
6.如权利要求1所述的控制方法,其特征在于,于所述步骤133中,还包括通过显示管理器服务记录所述转向信息。
CN201911253160.6A 2019-12-09 2019-12-09 基于安卓系统实现副屏旋转的控制方法 Active CN111176374B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911253160.6A CN111176374B (zh) 2019-12-09 2019-12-09 基于安卓系统实现副屏旋转的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911253160.6A CN111176374B (zh) 2019-12-09 2019-12-09 基于安卓系统实现副屏旋转的控制方法

Publications (2)

Publication Number Publication Date
CN111176374A CN111176374A (zh) 2020-05-19
CN111176374B true CN111176374B (zh) 2021-12-10

Family

ID=70623917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911253160.6A Active CN111176374B (zh) 2019-12-09 2019-12-09 基于安卓系统实现副屏旋转的控制方法

Country Status (1)

Country Link
CN (1) CN111176374B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112040034A (zh) * 2020-08-03 2020-12-04 广东以诺通讯有限公司 一种手机前置摄像头挖孔屏的优化显示方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104423935A (zh) * 2013-08-25 2015-03-18 上海莞东拿信息科技有限公司 基于苹果手机平台系统的旅程航班动态通知系统及其方法
CN106293588A (zh) * 2016-08-26 2017-01-04 青岛海信移动通信技术股份有限公司 双屏显示方法及装置
CN107357540A (zh) * 2017-06-30 2017-11-17 维沃移动通信有限公司 一种显示方向的调整方法及移动终端
CN108900693A (zh) * 2018-05-25 2018-11-27 北京小米移动软件有限公司 窗口显示方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297341A1 (en) * 2010-02-16 2012-11-22 Screenovate Technologies Ltd. Modified Operating Systems Allowing Mobile Devices To Accommodate IO Devices More Convenient Than Their Own Inherent IO Devices And Methods For Generating Such Systems
CN106547567A (zh) * 2016-11-25 2017-03-29 山东大学 一种安卓系统中多业务下进程间通信系统及其实现方法
CN108307068A (zh) * 2018-01-25 2018-07-20 北京珠穆朗玛移动通信有限公司 副屏显示界面切换方法、移动终端及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104423935A (zh) * 2013-08-25 2015-03-18 上海莞东拿信息科技有限公司 基于苹果手机平台系统的旅程航班动态通知系统及其方法
CN106293588A (zh) * 2016-08-26 2017-01-04 青岛海信移动通信技术股份有限公司 双屏显示方法及装置
CN107357540A (zh) * 2017-06-30 2017-11-17 维沃移动通信有限公司 一种显示方向的调整方法及移动终端
CN108900693A (zh) * 2018-05-25 2018-11-27 北京小米移动软件有限公司 窗口显示方法及装置

Also Published As

Publication number Publication date
CN111176374A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
WO2022052772A1 (zh) 多窗口投屏场景下的应用界面显示方法及电子设备
US11972274B2 (en) Application management method and apparatus, and electronic device
US20070008338A1 (en) Display system, display apparatus, and method of controlling video source and display apparatus
US20170139824A1 (en) Memory management and image display for mobile devices
KR20170084216A (ko) 동일 스크린 상에 콘텐츠를 표시하기 위한 방법 및 장치, 그리고 단말 장치
KR20100108422A (ko) 멀티 모니터 컴퓨터 시스템에서 다수의 소스 컴퓨터로부터의 비디오 데이터를 디스플레이하기 위한 방법 및 장치
US9996376B2 (en) Virtual machine monitoring method and system thereof
CN113050899B (zh) 一种基于Wayland协议的视频和UI的drm直接显示方法及系统
JP2004348380A (ja) シンクライアントシステム、シンクライアント端末機、中継装置、サーバ装置及びシンクライアント端末画面表示方法
EP3319312A1 (en) Image display apparatus and operation method therefor
CN111176374B (zh) 基于安卓系统实现副屏旋转的控制方法
CN113687745A (zh) 一种分屏窗口的界面显示方法、系统及终端
US8432332B2 (en) Extensible user interface for digital display devices
WO2024078471A1 (zh) 工作项信息的查看方法、装置、电子设备及存储介质
WO2024099102A1 (zh) 控件显示方法及装置、电子设备和可读存储介质
US9525905B2 (en) Mapping visual display screen to portable touch screen
US20160104462A1 (en) Frame drawing method and associated mobile electronic device
US20220179448A1 (en) System, method, computer program, mobile device and kit for operating a device with low computing power
WO2019033724A1 (zh) 一种基于浏览器的嵌入式操作方法、电视机及存储装置
CN113448642B (zh) 系统文件访问方法、装置和电子设备
CN114911379A (zh) 窗口管理方法、电子设备及计算机可读取存储介质
CN112911359A (zh) 一种资源显示方法、显示设备及遥控器
EP4343533A1 (en) Screen projection method and related apparatus
CN111552449B (zh) 一种大屏远程切换控制平台的使用方法
CN112839247B (zh) 一种内容显示方法、显示设备及云端服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40030627

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant