发明内容
本发明实施例的目的在于提供一种投屏方法和电子设备,以避免投屏导致的界面混乱。具体技术方案如下:
一方面,本发明实施例提供了一种投屏方法,包括:
获取屏幕配置信息,所述屏幕配置信息包括:主显示屏CSD和副显示屏PSD的组合,CSD和仪表屏IPK的组合,或者,CSD、PSD和IPK的组合;
判断所述屏幕配置信息的组合类型;
当所述组合类型是CSD、PSD和IPK的组合,加载所述CSD和所述PSD的界面;接收用户对所述CSD的界面中的应用的操作;
在接收到所述操作后,判断所述应用是否配置投屏标签,所述投屏标签用于指示允许对所述应用进行投屏;
当所述应用配置所述投屏标签,将所述应用投屏至所述IPK。
可选的,所述接收用户对所述CSD的界面中的应用的操作,包括:
接收所述用户针对所述应用的运行界面的滑动操作。
可选的,所述判断所述应用是否配置投屏标签包括:
通过解析应用的服务PMS,从所述应用的应用属性中解析出投屏字段;
判断所述投屏字段的赋值通过所述赋值判断所述应用是否配置投屏标签。
可选的,还包括:
当所述应用未配置所述投屏标签,则指示异常。
可选的,还包括:
当所述组合类型是CSD和IPK的组合,不加载所述PSD的界面。
可选的,所述方法还包括:
当所述组合类型是CSD和IPK的组合,加载所述CSD的界面,并加载所述IPK的界面,且向所述IPK返回空数据,所述空数据用于指示不在所述IPK的界面上显示所述CSD的内容。
可选的,所述当所述组合类型是CSD和IPK的组合,不加载所述PSD的界面,包括:
当所述组合类型是CSD和PSD,获取对应的标识信息;
当所述标识信息为第一预设标识信息,则不加载所述PSD的界面。
可选的,所述当所述组合类型是CSD、PSD和IPK的组合,加载所述CSD和所述PSD的界面,包括:
当所述组合类型是CSD、PSD和IPK,获取对应的标识信息;
当所述标识信息为第二预设标识信息,则加载所述CSD和所述PSD的界面。
可选的,还包括:
当所述组合类型是CSD和PSD的组合,加载所述CSD和所述PSD的界面。
另一方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述投屏方法的方法步骤。
本发明实施例有益效果:
本发明实施例提供的投屏方法和电子设备,可以获取屏幕配置信息,屏幕配置信息包括:主显示屏CSD和副显示屏PSD的组合,CSD和仪表屏IPK的组合,或者,CSD、PSD和IPK的组合;判断屏幕配置信息的组合类型;当组合类型是CSD、PSD和IPK的组合,加载CSD和PSD的界面;接收用户对CSD的界面中的应用的操作;在接收到操作后,判断应用是否配置投屏标签,投屏标签用于指示允许对应用进行投屏;当应用配置投屏标签,将应用投屏至IPK。
本发明实施例中,可以通过投屏标签配置是否允许应用投屏,在投屏过程中,当屏幕配置信息的组合类型是CSD、PSD和IPK的组合时,接收用户对CSD的界面中的应用的操作,且在接收到用户针对应用的操作之后,判断应用是否配置投屏标签,只有当应用配置了投屏标签,才将应用投屏至IPK,能够避免应用随意投屏,避免投屏导致的界面混乱。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种投屏方法,如图1所示,可以包括:
S101,获取屏幕配置信息。
屏幕配置信息包括:主显示屏(Center Stack Display,CSD)和副显示屏(Passenger stack display,PSD)的组合,CSD和仪表屏(Instrument Pack,IPK)的组合,或者,CSD、PSD和IPK的组合。
S102,判断屏幕配置信息的组合类型。
S103,当组合类型是CSD、PSD和IPK的组合,加载CSD和PSD的界面;接收用户对CSD的界面中的应用的操作。
S104,在接收到操作后,判断应用是否配置投屏标签。
投屏标签用于指示允许对应用进行投屏。
S105,当应用配置投屏标签,将应用投屏至IPK。
本发明实施例中,可以通过投屏标签配置是否允许应用投屏,在投屏过程中,当屏幕配置信息的组合类型是CSD、PSD和IPK的组合时,接收用户对CSD的界面中的应用的操作,且在接收到用户针对应用的操作之后,判断应用是否配置投屏标签,只有当应用配置了投屏标签,才将应用投屏至IPK,能够避免应用随意投屏,避免投屏导致的界面混乱。
本公开实施例提供的投屏方法可以应用于车辆。具体地,车辆中可以安装车机。车机,指的是安装在车辆中的车载信息娱乐产品的简称,车机在功能上能够实现人与车,车与外界(例如,车与车)的信息通讯。车机执行本发明实施例提供的投屏方法,车机的操作系统可以是安卓系统,等等。
参见图1,对本发明实施例提供的投屏方法进行详细说明。
S101,获取屏幕配置信息。
屏幕配置信息包括:CSD和PSD的组合,CSD和IPK的组合,或者,CSD、PSD和IPK的组合。
车机启动后,通过车机中驱动获取屏幕配置信息。例如,驱动向操作系统上报屏幕配置信息。CSD、PSD和IPK用于显示车机要展示的内容。
S102,判断屏幕配置信息的组合类型。
判断屏幕配置信息的组合类型,即判断屏幕配置信息是CSD和PSD的组合,CSD和的组合,以及,CSD、PSD和IPK的组合这三种组合类型中的哪一种。
一种可实现方式中,不同车辆可以对应有不同的屏幕配置信息,屏幕配置信息可以由车辆的硬件决定。例如,车辆中配置有CSD和PSD,则屏幕配置信息的组合类型是CSD和PSD的组合;车辆中配置有CSD和IPK,则屏幕配置信息的组合类型是CSD和IPK的组合;车辆中配置有CSD、PSD和IPK,则屏幕配置信息的组合类型是CSD、PSD和IPK的组合。
S103,当组合类型是CSD、PSD和IPK的组合,加载CSD和PSD的界面;接收用户对CSD的界面中的应用的操作。
接收用户对CSD的界面中的应用的操作,可以包括:接收用户针对应用的运行界面的滑动操作。
例如,在应用打开后,检测用户针对应用的运行界面的滑动操作,滑动操作可以包括三指滑动操作、双击、单击,等等。
例如,CSD加载桌面后,在桌面上显示各个应用。针对应用:“地图”,用户打开“地图”,如双击“地图”的图标,此时,CSD显示“地图”的运行界面,此时,用户可以在运行界面上进行滑动操作,如三指滑动,如此,则可以检测到针对“地图”的操作。
S104,在接收到操作后,判断应用是否配置投屏标签。
S105,当应用配置投屏标签,将应用投屏至IPK。
投屏标签用于指示允许对应用进行投屏。
具体地,判断应用是否配置投屏标签包括:通过包管理服务类(Package ManagerService,PMS),从应用的应用属性中解析出投屏字段;判断投屏字段的赋值通过赋值判断应用是否配置投屏标签。
可以判断投屏字段的值是否标识允许对应用进行投屏;当投屏字段的值标识允许对应用进行投屏,将应用投屏至IPK。
可以预先在应用对应的应用属性中增加投屏字段,例如,通过预先写入的代码增加投屏字段。如此,在投屏过程中,可以直接获取该投屏字段进行判断。
例如,对投屏字段赋值为第一预设值,如“1”、“true”等,则表示允许对应用进行投屏;对投屏字段赋值为第二预设值,如“0”、“false”等,则表示不允许对应用进行投屏。
第一预设值和第二预设值可以根据实际需求确定,只要第一预设值和第二预设值的值不同,能够区分出一个是允许对应用进行投屏,另一个是不允许对应用进行投屏即可。
当应用未配置投屏标签,则指示异常。具体地,当投屏字段的值标识不允许对应用进行投屏,则指示异常。
指示异常则不对该应用进行投屏,即不将该应用投屏至IPK。
一种可实现方式中,投屏标签可以是<meta-data android:name=”eos_ipk_projection”android:value=”true”/>这个属性。
具体地,可以预先在应用的属性信息中添加一个字段,例如,PRIVATE_FLAG_IPK_PROJECTION=1<<21,该字段表明是IPK投屏的。
然后,在PMS核心服务中对于这个字段进行解析,并进行赋值,不同的值用于标识是否允许在IPK上面进行投屏,具体地值参见上述第一预设值和第二预设值。
在投屏过程中,在投屏的窗口服务中增加逻辑判断,即判断投屏字段的值是否标识允许对应用进行投屏;当投屏字段的值标识允许对应用进行投屏,将应用投屏至IPK。当投屏字段的值标识不允许对应用进行投屏,则指示异常,即不允许将应用投屏至IPK。
例如,对于允许投屏的应用,如:“地图”,允许在IPK上面进行投屏显示,即可以将CSD上运行的“地图”投屏至IPK;而对于没有适配这个flag的应用,即没有配置投屏标签的应用,在投屏的时候,则会指示异常,表明不允许投屏,flag即为投屏标签。
地图是车辆行进过程中很重要的应用,已有技术中,司机要看地图需要看斜方向的CSD,或者,通过手机看地图,如此会导致司机视线偏离驾驶,存在安全隐患。为了更便于司机观看地图,提高驾驶的安全性,将“地图”投屏至IPK。可以预先对“地图”配置投屏标签,如此,在接收到用户针对“地图”的操作之后,因为“地图”已经配置了投屏标签,则可以对“地图”进行投屏。
一种可实现方式中,为了避免其他应用投屏对地图投屏的影响,可以仅对“地图”这一个应用配置投屏标签,如此,则只有“地图”可以投屏至IPK。
一种可实现方式中,可以允许多个应用投屏至IPK。具体地,多个应用可以分别配置投屏标签,针对各个应用,判断该应用是否配置投屏标签。当该应用配置投屏标签,将该应用投屏至IPK。其中,当检测到用户对CSD的界面中的多个应用的操作,可以按照操作时间的先后顺序,操作时间在前对应的应用先投屏至IPK,操作时间在后的应用覆盖在操作时间在前的应用的界面之上。“地图”可以最后再操作,使得“地图”投屏至IPK的最上层。也可以在按照操作时间进行覆盖的基础上,增加优先权机制,不论针对“地图”的操作时间的先后顺序,只要有针对“地图”的操作,则将“地图”投屏至IPK的最上层。
或者,也可以将IPK中除IPK正常显示的内容之外的区域,划分为不同的子区域,其中,正常显示的内容例如,汽车速率、油量、油温、车身状态等信息,将不同的应用投屏至不同的子区域,使得各个应用互不影响。
本发明实施例中对应用的投屏进行管理,当组合类型是CSD、PSD和IPK的组合,进一步接收用户对CSD的界面中的应用的操作,并在接收到操作后,判断应用是否配置投屏标签,当应用配置投屏标签,将应用投屏至IPK;当应用未配置投屏标签,则不允许将应用投屏至IPK,可以抛出异常。如此,避免应用随意投屏,避免投屏导致的界面混乱。
CSD的界面如图2所示,PSD的界面如图3所示,IPK的界面如图4所示。
本发明实施例中,当组合类型是CSD和PSD的组合,加载CSD和PSD的界面。简单理解,即主屏加副屏的配置,正常显示。
当组合类型是CSD和IPK的组合,不加载PSD的界面。以及,当组合类型是CSD和IPK的组合,加载CSD的界面,并加载IPK的界面,且向IPK返回空数据,空数据用于指示不在IPK的界面上显示CSD的内容。
当组合类型是CSD和IPK的组合时,可以理解为不支持PSD,此时不再加载PSD的界面。且这种情况下,可以将IPK理解为CSD的副屏。
已有技术中,在CSD+IPK的组合的时候,IPK是QT(跨平台C++图形用户界面应用程序开发框架)绘制的,对于安卓系统来说是不参与图层绘制的,也就是不会显示图层,则安卓系统默认是同屏同显的,即IPK上的图层显示CSD,也即IPK除了显示本身的内容之外,在IPK上的图层还显示CSD的内容,如此,安卓系统在操作CSD的时候,IPK也会随着动,对于系统绘制就会消耗比较多,进而可能会导致系统卡顿。
本发明实施例中,向IPK返回空数据,不在IPK的界面上显示CSD的内容,即不将CSD投屏至IPK,这种情况下,作为CSD副屏的IPK,不显示CSD的内容,避免了同屏同显的情况,解决系统卡顿的问题,能够提高系统性能。
一种可实现方式中,当组合类型是CSD和IPK的组合,不加载PSD的界面,包括:当组合类型是CSD和PSD,获取对应的标识信息;当标识信息为第一预设标识信息,则不加载PSD的界面。
标识信息可以根据实际需求确定,例如,当组合类型是CSD和IPK的组合,则返回第一标识信息包括:CSD对应标识信息0,PSD对应标识信息-1,IPK对应标识信息1。
标识信息可以理解为CSD和IPK的组合对应的屏幕标识。
系统加载桌面后,安卓默认是可以通过屏幕管理类去获取屏幕标识,由于不同的系统配置的屏幕标识是不同的,本发明实施例中可以通过适配器(Adapter)应用程序接口(Application Programming Interface,API)来获取屏幕标识。
例如,当屏幕配置信息中包括字段CSD和IPK时,则为CSD返回对应的标识信息:DisplayId 0,返回PSD对应的标识信息:DisplayId-1,IPK对应的标识信息:DisplayId 1。
可以理解,针对CSD和IPK的组合,获取的标识信息包括:CSD对应的标识信息:DisplayId 0;PSD对应的标识信息:DisplayId-1;IPK对应的标识信息:DisplayId 1。
本发明实施例中,可以预先配置不同标识信息对应的操作。例如,第一预设标识信息对应的操作为:不加载PSD的界面。同时,加载CSD的界面、加载IPK的界面,且向IPK返回空数据,空数据用于指示不在IPK的界面上显示CSD的内容。
如此,当获取到CSD和IPK的组合对应的标识信息后,判断该标识信息属于哪一种类型的标识信息,如果该标识信息为第一预设标识信息,则执行第一预设标识信息对应的操作。
本发明实施例中为CSD配置标识信息DisplayId 0,当判断标识信息中包括CSD对应的标识信息为DisplayId 0,则加载CSD的界面。
可以理解为,本发明实施例中DisplayId-1对应的操作为不加载,当判断标识信息中包括PSD对应的标识信息为DisplayId-1,则不加载PSD的界面,可以减少投屏。
当判断标识信息中包括IPK对应的标识信息为DisplayId 1,则加载IPK的界面。同时,可以通过AdapterAPI接口:getPresentationDisplay,如果返回的是空,则表示不支持PSD,此时,不加载PSD的界面,也不启动PSD中的应用。且在不支持PSD的情况下,不再向DisplayId 1对应的屏幕投屏其他屏幕的内容,这种情况下,即不再向IPK投屏CSD的内容。
一种可实现方式中,当组合类型是CSD、PSD和IPK的组合,加载CSD和PSD的界面,包括:当组合类型是CSD、PSD和IPK,获取对应的标识信息;当标识信息为第二预设标识信息,则加载CSD和PSD的界面。
针对CSD、PSD和IPK的组合,获取的标识信息可以包括:CSD对应的标识信息:DisplayId 0;PSD对应的标识信息:DisplayId 1。
本发明实施例中,可以预先配置不同标识信息对应的操作。例如,第二预设标识信息对应的操作为:加载CSD和PSD的界面;接收用户对CSD的界面中的应用的操作;在接收到操作后,判断应用是否配置投屏标签;当应用配置投屏标签,将应用投屏至IPK。
如此,当获取到CSD、PSD和IPK的组合对应的标识信息后,判断该标识信息属于哪一种类型的标识信息,如果该标识信息为第二预设标识信息,则执行第二预设标识信息对应的操作。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现上述实施例中投屏方法的方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中投屏方法的方法步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中投屏方法的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。