CN116828029A - 一种支持霸屏模式和远程控制的实现方法及系统 - Google Patents
一种支持霸屏模式和远程控制的实现方法及系统 Download PDFInfo
- Publication number
- CN116828029A CN116828029A CN202311108197.6A CN202311108197A CN116828029A CN 116828029 A CN116828029 A CN 116828029A CN 202311108197 A CN202311108197 A CN 202311108197A CN 116828029 A CN116828029 A CN 116828029A
- Authority
- CN
- China
- Prior art keywords
- remote control
- tms
- screen
- client
- server
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 195
- 238000010792 warming Methods 0.000 title claims abstract description 115
- 230000008569 process Effects 0.000 claims abstract description 94
- 230000001960 triggered effect Effects 0.000 claims abstract description 15
- 238000012790 confirmation Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 230000010354 integration Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- PYVHLZLQVWXBDZ-UHFFFAOYSA-N 1-[6-(2,5-dioxopyrrol-1-yl)hexyl]pyrrole-2,5-dione Chemical compound O=C1C=CC(=O)N1CCCCCCN1C(=O)C=CC1=O PYVHLZLQVWXBDZ-UHFFFAOYSA-N 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种支持霸屏模式和远程控制的实现方法及系统,该方法包括:TMS客户端的主进程与TMS主服务器建立连接,当接收到远程控制指令时设置处于霸屏模式的安卓设备临时退出霸屏模式,启动TMS客户端的远程控制界面并设置为透明,设置远程控制界面的屏幕捕获权限和安卓设备进入霸屏模式,远程控制界面连接远程控制服务器并广播连接信息,主进程从监听到的连接成功信息中获取登录信息并上传给TMS主服务器,TMS主服务器通过浏览器弹出远程控制界面的登录对话框并自动填写登录信息,当接收到用户触发的确认登录信息时捕获安卓设备的画面并在远程控制服务器上显示,服务端开始与安卓设备同步显示画面和进行操作,使用便捷。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种支持霸屏模式和远程控制的实现方法及系统。
背景技术
在现有技术中,终端远程控制系统(Terminal Management System,简称TMS)包括服务端和客户端,TMS的服务端可以设置应用进入或退出霸屏模式,也可以启动远程控制即在后台远程操作智能终端。由于安卓系统限制,应用进入霸屏模式后,该应用就被置于智能终端的最顶层运行,不能启动其他应用的界面;而远程控制依赖于安卓系统的屏幕录制服务,该服务必须借助于Activity(Activity为安卓四大组件之一,是一个应用程序组件,提供一个屏幕,用于与用户进行交互)才能启动。目前客户端远程控制的逻辑运行在TMS系统的客户端,与处于霸屏模式的应用属于不同的应用进程,当前的状况下,当智能终端处于霸屏模式时TMS的客户端就无法启动远程控制界面,或在启动远程控制界面后无法设置智能终端进入霸屏模式。故亟需一种能够完整实现对智能终端的远程控制的方案。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种支持霸屏模式和远程控制的实现方法及系统。
第一方面,本发明实施例提供了一种支持霸屏模式和远程控制的实现方法,
适用于终端远程控制系统,所述终端远程控制系统包括TMS服务端和TMS客户端,所述TMS客户端包括TMS客户端的主进程和TMS客户端的远程控制界面,所述TMS服务端包括TMS主服务器和远程控制服务器,所述TMS客户端集成在安卓设备的TMS客户端应用中,包括:
步骤S1:所述安卓设备开机后启动所述TMS客户端的主进程,所述TMS客户端的主进程与所述TMS主服务器建立连接;
步骤S2:当所述TMS客户端的主进程接收到所述TMS主服务器推送的远程控制指令时执行步骤S3;
步骤S3:所述TMS客户端的主进程判断所述安卓设备是否处于霸屏模式,是则执行步骤S4,否则启动TMS客户端的远程控制界面,执行步骤S6;
步骤S4:所述TMS客户端的主进程设置所述安卓设备临时退出霸屏模式;
步骤S5:所述TMS客户端的主进程启动所述TMS客户端的远程控制界面,所述TMS客户端的远程控制界面启动后进行初始化时设置界面为透明,设置所述TMS客户端的远程控制界面的屏幕捕获权限,设置所述安卓设备进入霸屏模式,执行步骤S6;
步骤S6:所述TMS客户端的远程控制界面连接所述远程控制服务器,并判断是否连接成功,是则所述TMS客户端的远程控制界面生成登录信息,广播包含所述登录信息的连接成功信息,执行步骤S7,否则所述TMS客户端的远程控制界面广播包含远程控制指令的推送消息ID和指令推送状态的连接失败信息,执行步骤S7;
步骤S7:当所述TMS客户端的主进程监听到广播信息时,判断所述广播信息的类型,如为连接成功则执行步骤S8,如为连接失败则执行步骤S10;
步骤S8:所述TMS客户端的主进程从所述连接成功信息中获取登录信息,并将获取到的所述登录信息上传给所述TMS主服务器;
步骤S9:所述TMS主服务器通过浏览器弹出所述TMS客户端的远程控制界面的登录对话框,并自动填写登录信息,提示用户进行确认,当所述TMS客户端的远程控制界面接收到用户触发的确认登录信息时获取屏幕捕获权限并捕获所述安卓设备的画面,在所述远程控制服务器上显示所述画面,所述TMS服务端开始与所述安卓设备同步显示画面和进行操作;
步骤S10:所述TMS客户端的主进程从所述连接失败信息中获取远程控制指令的推送消息ID和指令推送状态并上报给所述TMS主服务器。
第二方面,本发明实施例又提供一种支持霸屏模式和远程控制的实现系统,包括TMS服务端和TMS客户端,所述TMS客户端包括TMS客户端的主进程和TMS客户端的远程控制界面,所述TMS服务端包括TMS主服务器和远程控制服务器,所述TMS客户端集成在安卓设备的TMS客户端应用中;
所述TMS客户端的主进程用于在启动后与所述TMS主服务器建立连接;
所述TMS客户端的主进程还用于当接收到所述TMS主服务器推送的远程控制指令时判断所述安卓设备是否处于霸屏模式,是则设置所述安卓设备临时退出霸屏模式,启动所述TMS客户端的远程控制界面,所述TMS客户端的远程控制界面启动后进行初始化时设置界面为透明,设置所述TMS客户端的远程控制界面的屏幕捕获权限,设置所述安卓设备进入霸屏模式,否则启动TMS客户端的远程控制界面;
所述TMS客户端的远程控制界面用于连接所述远程控制服务器,并判断是否连接成功,是则所述TMS客户端的远程控制界面生成登录信息,广播包含所述登录信息的连接成功信息,否则所述TMS客户端的远程控制界面广播包含远程控制指令的推送消息ID和指令推送状态的连接失败信息;
所述TMS客户端的主进程还用于当监听到广播信息时,判断所述广播信息的类型,如为连接成功则从所述连接成功信息中获取登录信息,并将获取到的所述登录信息上传给所述TMS主服务器,如为连接失败则从所述连接失败信息中获取远程控制指令的推送消息ID和指令推送状态并上报给所述TMS主服务器;
所述TMS主服务器用于接收到所述登录信息时通过浏览器弹出所述TMS客户端的远程控制界面的登录对话框,并自动填写登录信息,提示用户进行确认;
所述TMS客户端的远程控制界面还用于当接收到用户触发的确认登录信息时获取屏幕捕获权限并捕获所述安卓设备的画面,在所述远程控制服务器上显示所述画面,所述TMS服务端开始与所述安卓设备同步显示画面和进行操作。
第三方面,本发明实施例又提供一种电子设备,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现前述的支持霸屏模式和远程控制的实现方法。
第四方面,本发明实施例又提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行前述的支持霸屏模式和远程控制的实现方法。
第五方面,本发明实施例又提供一种芯片系统,包括芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行前述的支持霸屏模式和远程控制的实现方法。
本发明与现有技术相比,具有以下优点:
本发明技术方案通过TMS的服务端推送远程控制指令对安卓设备进行远程控制操作;通过本发明技术方案使处于霸屏模式的设备能启动TMS的远程控制界面,而后通过服务端对客户端进行操作,有效解决了启动远程控制界面后无法对处于霸屏模式的设备进行操作的问题,使用便捷。
附图说明
图1为本发明实施例一提供的一种支持霸屏模式和远程控制的实现方法的流程图;
图2为本发明实施例二提供的一种支持霸屏模式和远程控制的实现方法的流程图;
图3为本发明实施例二提供的安卓设备开机后设置霸屏模式的实现过程流程图。
具体实施方式
本申请提出了一种支持霸屏模式和远程控制的实现方法及系统,下面结合附图,对本申请具体实施方式进行详细说明。所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
在本实施例中,终端远程控制系统包括TMS服务端和TMS客户端,TMS客户端集成在安卓设备的TMS客户端应用中,TMS客户端包括TMS客户端的主进程和TMS客户端的远程控制界面,TMS服务端包括TMS主服务器和远程控制服务器;其中,TMS客户端的主进程负责与TMS主服务器进行通信、账户认证、接收TMS主服务器推送的指令并执行对应操作,将操作结果返回给TMS主服务器;TMS客户端的远程控制界面负责与远程控制服务器进行通信、控制同步操作;TMS主服务器负责管理账户、推送指令及客户端执行操作后返回状态的更新等;远程控制服务器负责处理远程控制功能。
实施例一
本发明实施例一提供了一种支持霸屏模式和远程控制的实现方法,如图1所示,包括:
步骤101:安卓设备开机后启动TMS客户端的主进程,TMS客户端的主进程与TMS主服务器建立连接;
步骤102:当TMS客户端的主进程接收到TMS主服务器推送的远程控制指令时执行步骤103;
具体的,在本实施例中,TMS客户端的主进程接收TMS主服务器推送的消息,解析消息得到消息ID和指令类型,判断指令类型,如指令类型为第一预设值则为远程控制指令;例如解析得到消息ID为499772,第一预设值为305;
步骤103:TMS客户端的主进程判断安卓设备是否处于霸屏模式,是则执行步骤104,否则启动TMS客户端的远程控制界面,执行步骤106;
步骤104:TMS客户端的主进程设置安卓设备临时退出霸屏模式;
步骤105:TMS客户端的主进程启动TMS客户端的远程控制界面,TMS客户端的远程控制界面启动后进行初始化时设置界面为透明,设置TMS客户端的远程控制界面的屏幕捕获权限,设置安卓设备进入霸屏模式,执行步骤106;
在本实施例中,TMS客户端的远程控制界面启动后进行初始化时设置界面为透明,包括:TMS客户端的远程控制界面启动后进行初始化时设置远程控制界面整体布局透明,设置根布局背景透明,设置图像视图控件不显示且不占用空间,设置文本视图控件背景透明且文本颜色为透明色,设置编辑框控件背景透明且文本颜色为透明色,设置远程控制界面状态栏透明,设置远程控制界面隐藏底部虚拟导航栏;
具体的,在本实施例中,设置安卓设备进入霸屏模式包括:TMS客户端的主进程根据待设为霸屏模式的应用获取对应的应用包名,将应用包名作为参数调用第二方法设置该应用进入霸屏模式;
更一步地,将应用包名作为参数调用第二方法设置应用进入霸屏模式,包括:
步骤B5-1:根据应用包名判断对应应用是否运行,是则执行步骤B5-4,否则执行步骤B5-2;
步骤B5-2:启动对应应用并判断是否启动成功,是则执行步骤B5-4,否则执行步骤B5-3;
步骤B5-3:移除保存的霸屏模式应用的应用包名,设置第二方法的返回值为代表设置失败的预设值;
步骤B5-4:获取对应的应用运行的任务ID;
步骤B5-5:根据任务ID设置对应的应用进入霸屏模式,设置第二方法的返回值为代表设置成功的预设值。
步骤106:TMS客户端的远程控制界面连接远程控制服务器,并判断是否连接成功,是则TMS客户端的远程控制界面生成登录信息,广播包含登录信息的连接成功信息,执行步骤107,否则TMS客户端的远程控制界面广播包含远程控制指令的推送消息ID和指令推送状态(status)的连接失败信息,执行步骤107;
在本实施例中,TMS客户端的远程控制界面(ControlMainActivity)与TMS客户端的主进程属于不同进程,TMS客户端的远程控制界面与TMS客户端的主进程之间通过广播方式进行数据通信;
其中,登录信息包括sessionId和password;
步骤107:当TMS客户端的主进程监听到广播信息时,判断广播信息的类型,如为连接成功则执行步骤108,如为连接失败则执行步骤110;
步骤108:TMS客户端的主进程从连接成功信息中获取登录信息,并将获取到的登录信息上传给TMS主服务器;
步骤109:TMS主服务器通过浏览器弹出TMS客户端的远程控制界面的登录对话框,并自动填写登录信息,提示用户进行确认,当TMS客户端的远程控制界面接收到用户触发的确认登录信息时获取屏幕捕获权限并捕获安卓设备的画面,在远程控制服务器上显示该画面,TMS服务端开始与安卓设备同步显示画面和进行操作;
步骤110:TMS客户端的主进程从连接失败信息中获取远程控制指令的推送消息ID(pushMsgId)和指令推送状态(status)并上报给TMS主服务器。
本实施例的方法通过TMS的服务端推送远程控制指令对安卓设备进行远程控制操作;通过本发明技术方案使处于霸屏模式的设备能启动TMS的远程控制界面,而后通过服务端对客户端进行操作,有效解决了启动远程控制界面后无法对处于霸屏模式的设备进行操作的问题,使用便捷。
实施例二
本发明实施例二提供一种支持霸屏模式和远程控制的实现方法,如图2所示,包括:
步骤201:安卓设备开机后启动TMS客户端的主进程,TMS客户端的主进程与TMS主服务器建立连接;
在本实施例中,安卓设备开机后默认启动TMS客户端的主进程并在后台运行,TMS客户端没有主界面;
步骤202:当TMS客户端的主进程接收到TMS主服务器推送的远程控制指令时执行步骤203;
具体的,在本实施例中,TMS客户端的主进程接收到TMS主服务器推送的消息,解析消息得到消息ID和指令类型,如指令类型为第一预设值则为远程控制指令;例如解析得到消息ID为499772,指令类型为305,表示远程控制指令;
步骤203:TMS客户端的主进程判断安卓设备是否处于霸屏模式,是则执行步骤204,否则启动TMS客户端的远程控制界面,执行步骤206;
具体的,在本实施例中,步骤203包括:安卓设备调用第一API接口判断设备是否处于霸屏模式;其中,第一API接口为ActivityTaskManager.getService().isInLockTaskMode();
步骤204:TMS客户端的主进程设置安卓设备临时退出霸屏模式并开启第一计时器开始计时;
具体的,在本实施例中,步骤204包括:TMS客户端的主进程调用第三API接口设置安卓设备临时退出霸屏模式;
其中,第三接口为:ActivityTaskManager.getService().stopSystemLockTaskMode();
在本实施例中,当第一计时器的计时达到第一预设时间时TMS客户端的主进程判断安卓设备是否处于霸屏模式,如未处于霸屏模式则设置安卓设备恢复霸屏模式;
进一步地,TMS客户端的主进程调用第五API接口启动霸屏模式保活机制使安卓设备恢复到霸屏模式;
当第五API接口被调用时,执行步骤B1-步骤B6;
具体的,第五API接口为Handler.sendEmptyMessageDelayed(int what, longdelayMillis),其中,What为Int类型,用于区分消息类型;delayMillis为long类型,表示延迟时间间隔,单位是毫秒;
步骤B1:判断保存的霸屏模式应用的记录是否为空,是则结束,否则执行步骤B2;
具体的,在本实施例中,步骤B1包括:判断标准数据库中是否保存有霸屏模式的应用包名,是则执行步骤B2,否则结束;
更进一步地,通过第一函数Settings.System.getString(mContext.getContentResolver(), "kiosk_mode_package")获取Settings Provider数据库中System表里的key为“kiosk_mode_package”的value值,如为空则结束,否则执行步骤B2;
步骤B2:判断设备是否已经处于霸屏模式,是则执行步骤B3,否则执行步骤B5;
具体的,在本实施例中,通过安卓系统的第一API接口判断安卓设备是否已经处于霸屏模式,是则执行步骤B3,否则执行步骤B5;其中第一API接口为ActivityTaskManager.getService().isInLockTaskMode();
步骤B3:判断处于霸屏模式的应用是否与保存的霸屏模式应用一致,是则执行步骤B6,否则执行步骤B4;
步骤B4:将处于霸屏模式的应用退出霸屏模式,执行步骤B5;
具体的,在本实施例中,在步骤B4中,通过安卓系统的第三API接口将当前处于霸屏模式的应用退出霸屏模式;其中,第三API接口为ActivityTaskManager.getService().stopSystemLockTaskMode();
步骤B5:根据保存的霸屏模式应用的应用包名设置该应用进入霸屏模式,并判断是否设置成功,是则执行步骤B6,否则结束;
具体的,在本实施例中,步骤B5:包括:获取保存的霸屏模式应用的应用包名,将该应用包名作为参数调用第二方法设置该应用进入霸屏模式,根据第二方法的返回值判断是否设置成功,是则执行步骤B6,否则结束;
其中,第二方法为:PosApplication.startKioskMode(String pkgName),传入的pkgName为应用包名;
更一步地,将该应用包名作为参数调用第二方法设置该应用进入霸屏模式,包括:
步骤B5-1:根据该应用包名判断对应应用是否运行,是则执行步骤B5-4,否则执行步骤B5-2;
具体的,在本实施例中,步骤B5-1包括:通过调用第一系统接口获取运行的应用任务列表(RunningTaskInfo),然后遍历该应用任务列表查询是否存在保存的霸屏模式应用,是则执行步骤B5-4,否则执行步骤B5-2;
其中,第一系统接口为ActivityTaskManager.getService().getTasks(Max_Tasks_Num);
步骤B5-2:启动对应的应用,并判断是否启动成功,是则执行步骤B5-4,否则执行步骤B5-3;
具体的,在本实施例中,将应用包名作为参数调用第三方法启动待进入霸屏模式的应用,根据第三方法的返回值判断待进入霸屏模式的应用是否已经启动成功,如返回值为true则启动成功,否则启动不成功;;
更进一步地,在第三方法中将应用包名作为参数调用第二系统接口获取到该应用启动的入口(Intent),将入口作为参数调用第三系统接口启动该应用;
其中,第三方法为PosApplication.startApplication(String pkgName),第二系统接口为PackageManager.getLaunchIntentForPackage(pkgName),第三系统接口为Context.startActivity(intent);
步骤B5-3:移除保存的霸屏模式应用的应用包名,设置第二方法的返回值为代表设置失败的预设值;
具体的,在本实施例中,步骤B5-3:包括:调用第六API接口将标准数据库中的应用包名删除,设置第二方法的返回值为代表设置失败的预设值;
其中,第六API接口为:Settings.System.putString(mContext.getContentResolver(), "kiosk_mode_package", ""),将SettingsProvider数据库中System表里的key为“kiosk_mode_package”的value值为空字符串;
例如,代表设置失败的预设值为false;
步骤B5-4:获取对应的应用运行的任务ID;
具体的,在本实施例中,步骤B5-4包括:从应用任务(RunningTaskInfo)列表中获取应用运行的任务ID;
步骤B5-5:根据任务ID设置对应的应用进入霸屏模式,设置第二方法的返回值为代表设置成功的预设值;
具体的,在本实施例中,将任务ID作为参数调用第四系统接口设置对应的应用进入霸屏模式;
其中,第四系统接口为ActivityTaskManager.getService().startSystemLockTaskMode(runningTaskInfo.taskId);
例如,代表设置成功的预设值为true;
步骤B6:获取第五API接口的第二参数,根据第二参数进行延时,返回步骤B1;
具体的,在本实施例中,在步骤B6中,将第二参数作为参数调用第三函数进行延时操作;
其中,第三函数为:Handler.sendEmptyMessageDelayed(0,HECK_KIOSK_DELAYED);
步骤205:TMS客户端的主进程启动TMS客户端的远程控制界面,TMS客户端的远程控制界面启动后进行初始化时设置界面为透明,设置TMS客户端的远程控制界面的屏幕捕获权限,执行步骤206;
具体的,TMS客户端的主进程通过调用系统接口Context.startActivity(Intentintent)启动TMS客户端的远程控制界面;
在本实施例中,在步骤205中TMS客户端的远程控制界面启动后进行初始化的过程中通过Activity.onCreate()方法将界面设置为透明,具体包括:
(1)设置远程控制界面整体布局透明,设置根布局背景透明,设置图像视图控件不显示且不占用空间,设置文本视图控件(TextView )背景透明且文本颜色为透明色(Color.TRANSPARENT),设置编辑框控件(EditText)背景透明且文本颜色为透明色;
例如,通过Activity.setContentView(R.layout.activity_main_control) 设置远程控制界面整体布局透明,其中R.layout.activity_main_control为布局文件的资源ID;设置图像视图控件不显示且不占用空间具体为:设置ImageView为GONE;
(2)设置远程控制界面状态栏透明;
例如,调用系统接口Activity.getWindow().setStatusBarColor(Color.TRANSPARENT) 设置远程控制界面状态栏透明;
(3)设置远程控制界面隐藏底部虚拟导航栏;
例如,调用系统接口:Activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) 设置远程控制界面隐藏底部虚拟导航栏;
在本实施例中,设置远程控制界面为透明的整个过程对于用户来说是无感的;
在本实施例中,远程控制界面的屏幕捕获权限包括:查看和控制屏幕权限、查看及执行操作权限,设置远程控制界面的屏幕捕获权限包括:设置普通应用需要动态申请且需用户确认后才能正常使用查看和控制屏幕权限、查看及执行操作权限,设置系统应用(System app)默认具有查看和控制屏幕权限、查看及执行操作权限;
例如,通过Settings.Secure.putInt(context.getApplicationContext().getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, 1) 打开查看和控制屏幕权限功能,通过Settings.Secure.putString(context.getApplicationContext().getContentResolver(),Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.feitian.storm.smaagent/com.hmdm.control.GestureDispatchService")将远程控制界面的服务添加到允许的列表中,设置完成系统应用默认具有查看和控制屏幕权限;
步骤206:TMS客户端的远程控制界面连接远程控制服务器,并判断是否连接成功,是则TMS客户端的远程控制界面生成登录信息,广播包含登录信息的连接成功信息,执行步骤207,否则TMS客户端的远程控制界面广播包含远程控制指令的推送消息ID和指令推送状态的连接失败信息,执行步骤207;
具体的,在本实施例中,在步骤206中,TMS客户端的远程控制界面调用第四方法连接远程控制服务器,根据第四方法返回的第四参数判断是否成功连接;
其中,第四方法为SharingEngine.connect(final Context context, finalString sessionId, final String password, final CompletionHandlercompletionHandler), TMS客户端的远程控制界面生成sessionId和password,用于与远程控制服务器登录验证,如sessionId和password在有效期内则登录成功,completionHandler是回调方法,用于返回是否成功连接远程控制服务器;
如回调方法返回成功时,TMS客户端的远程控制界面发送"com.feitian.storm.smaagent.remote_control_connected_success"广播,携带信息包括:
Intent intent = new Intent();
intent.setAction("com.feitian.storm. smaagent.remote_control_connected_success");
intent.putExtra("pushMsgId", pushMsgId);
intent.putExtra("sessionId", sessionId);
intent.putExtra("password", password);
intent.setPackage("com.feitian.storm.smaagent");
sendBroadcast(intent);
回调方法返回失败时,TMS客户端的远程控制界面发送"com.feitian.storm.smaagent.update_remote_control_connected_status"广播,携带信息包括:
Intent intent = new Intent();
intent.setAction("com.feitian.storm. smaagent.update_remote_control_connected_status");
intent.putExtra("pushMsgId", pushMsgId);
intent.putExtra("status", status);
intent.setPackage("com.feitian.storm.smaagent");
sendBroadcast(intent);
步骤207:当TMS客户端的主进程监听到广播信息时,判断广播信息的类型,如为连接成功则执行步骤208,如为连接失败则执行步骤210;
在本实施例中,TMS客户端的主进程在初始化时注册广播监听器,TMS客户端的主进程启动后开始监听广播;
步骤208:TMS客户端的主进程从连接成功信息中获取登录信息,并将获取到的登录信息上传给TMS主服务器;
在本实施例中,登录信息包括pushMsgId、sessionId和password;
TMS客户端的主进程通过远程控制广播接收器 (RemoteControlReceiver)的接口将获取到的远程控制服务器所需要的登录信息上传给TMS主服务器;
例如,远程控制广播接收器接口为:RemoteControlReceiver. uploadLoginInfo(String pushId, String sessionId, String password);
步骤209:TMS主服务器通过浏览器弹出TMS客户端的远程控制界面的登录对话框,并自动填写登录信息,提示用户进行确认,当TMS客户端的远程控制界面接收到用户触发的确认登录信息时获取屏幕捕获权限并捕获安卓设备的画面,在远程控制服务器上显示该画面,TMS服务端开始与安卓设备同步显示画面和进行操作;
可选的,在本实施例中,如安卓设备处于霸屏模式则当接收到用户触发的确认登录信息时获取屏幕捕获权限并捕获霸屏模式应用画面,在远程控制服务器上显示获取到的应用画面,如安卓设备未处于霸屏模式则当接收到用户触发的确认登录信息时请求屏幕捕获权限并获取安卓设备的运行画面,在远程控制服务器上显示获取到的运行画面;
在本实施例中,步骤209中的当TMS客户端的远程控制界面接收到用户触发的确认登录信息时在远程控制服务器上显示安卓设备的画面包括:当TMS客户端的远程控制界面接收到用户触发的确认登录信息时,获取屏幕捕获权限并使用安卓系统的视频媒体接口获取安卓设备显示的界面内容,将获取的界面内容传输到远程控制服务器上,远程控制服务器显示接收到的画面内容;具体实现过程如下:
步骤A0:当TMS客户端的远程控制界面接收到用户触发的确认登录信息时执行步骤A1;
步骤A1:TMS客户端的远程控制界面请求屏幕捕获权限;
可选的,步骤A1 包括:如当前的霸屏应用为非系统应用则弹出系统对话框,询问用户是否允许应用捕获屏幕内容,如接收到用户选择触发信息则请求屏幕捕获权限,执行步骤A2,否则结束;
如当前的霸屏应用为系统应用,默认允许捕获屏幕内容的权限,无需弹出系统对话框询问,执行步骤A2,本实施例中的TMS客户端是系统应用,无需弹出确认对话框,默认允许;
步骤A2:TMS客户端的远程控制界面创建一个视频媒体对象,通过视频媒体对象捕获安卓设备显示的界面内容,释放视频媒体对象;
具体的,视频媒体对象为MediaProjection;
具体的,在步骤A2中的TMS客户端远程控制界面通过视频媒体对象捕获安卓设备显示的界面内容,释放视频媒体对象,包括:
步骤A21、初始化Recorder(中文名称:屏幕录制视频流的参数信息);
即在步骤A21中通过(initRecorder) 初始化Recorder;
步骤A22、获取MediaProjectionManager(中文名称:媒体投射管理器)服务;
即步骤A22中通过((MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE) 获取MediaProjectionManager服务;
步骤A23、获取MediaProjection(中文名称:媒体投射)对象;
即步骤A23中通过(ProjectionManager.getMediaProjection) 获取MediaProjection对象;
步骤A24、创建MediaProjectionCallback(中文名称:媒体投射回调),回调中实现停止录屏,释放相关资源;
即步骤A24中通过(new MediaProjection.Callback())创建MediaProjectionCallback,通过 (stopSharing())释放相关资源;
进一步地,步骤A24具体包括:
步骤B1、释放虚拟显示(VirtualDisplay.release());
步骤B2、反注册MediaProjectionCallback (MediaProjection.unregisterCallback);
步骤B3、停止MediaProjection (MediaProjection.stop());
步骤B4、释放MediaProjection(MediaProjection=null);
步骤A25、注册MediaProjectionCallback(MediaProjection.registerCallback);
步骤A26、创建虚拟显示(MediaProjection.createVirtualDisplay);
步骤A27、上传录屏数据(startSending());
具体的,在本实施例中,视频媒体对象被释放后可被其他应用程序使用用于获得屏幕捕获权限;
步骤A3:TMS客户端的远程控制界面将捕获到的界面内容转换为视频或图像格式,将视频或图像通过网络传输给远程控制服务器;
步骤A4:远程控制服务器显示接收到的视频或图像;
本实施例中在步骤A4之后TMS服务器和安卓设备同步显示相同的画面;
步骤210:TMS客户端的主进程从连接失败信息中获取到远程控制指令的推送消息ID(pushMsgId)和指令推送状态(status)并上报给TMS主服务器;
具体的,TMS客户端的主进程通过调用设备状态服务接口将远程控制指令的推送消息ID(pushMsgId)和指令推送状态上报给TMS主服务器;
例如,设备状态服务接口为:DeviceStateControl.getInstance().notifyMsgToStorm(pushMsgId, pushStatus);
可选的,本实施例方法在步骤209或步骤210之后还可包括:当符合预设条件时,TMS客户端的远程控制界面断开与远程控制服务器的连接,TMS客户端的远程控制界面结束运行;
更进一步地,当接收到用户在TMS服务端上的关闭远程控制窗口的触发信息时,TMS主服务器发送断开远程控制连接指令给TMS客户端的主进程,TMS客户端的主进程接收到断开远程控制连接指令后,以发送广播方式通知TMS客户端的远程控制界面断开与远程控制服务器的连接;或在TMS客户端的远程控制界面与远程控制服务器建立连接之后,TMS客户端的远程控制界面在预设时间(例如2分钟)内未接收到用户在安卓设备上的任何操作信息则自动断开与远程控制服务器的连接;
例如,用户可以通过关闭远程控制窗口来主动断开远程控制连接,即TMS主服务器向TMS客户端的主进程发送断开远程控制连接的推送指令,TMS客户端的主进程接收到指令后,停止屏幕共享(即ScreenSharingService),发送断开连接广播,TMS客户端的远程控制界面接收到断开连接广播后断开与远程控制服务器的连接,安卓设备退出远程控制界面;
具体的,TMS客户端通过第五函数停止屏幕共享,通过第六函数断开远程控制服务器的连接,其中,第五函数为ScreenSharingService:Context.stopService(Intentintent),第六函数为SharingEngine.disconnect(Context context, CompletionHandlercompletionHandler),completionHandler为自定义的回调,用于返回执行的结果。
在本实施例中,该方法还包括:安卓设备开机后设置霸屏模式,具体实现过程如图3所示;
步骤301:当安卓设备检测到第一方法被调用时,根据第一方法的参数判断对应应用是否需要进入霸屏模式,是则执行步骤302,否则执行步骤308;
在本实施例中,第一方法为PosApplication.setApplicationInKioskMode(String pkgName, boolean enabled),其中,pkgName为应用包名,enabled为是否进入霸屏模式,true:进入霸屏模式;false:退出霸屏模式;
根据第一方法的参数判断对应应用是否需要进入霸屏模式,具体为:根据第一方法的第一参数确定对应应用,判断第一方法的第二参数是否为true,是则表示对应应用需要进入霸屏模式,否则表示对应应用退出霸屏模式;
步骤302:判断安卓设备是否已经处于霸屏模式,是则执行步骤303,否则结束;
具体的,在本实施例中,通过安卓系统的第一API接口判断安卓设备是否已经处于霸屏模式,是则执行步骤303,否则执行步骤305;其中第一API接口为ActivityTaskManager.getService().isInLockTaskMode();
步骤303:判断处于霸屏模式的应用是否为对应应用,是则执行步骤307,否则执行步骤304;
具体的,在本实施例中,步骤303包括:通过安卓系统的第二API接口获取正在运行的第一个任务的信息,从获取到的信息中提取应用包名,判断提取的应用包名与第一方法的第一参数是否一致,是则执行步骤307,否则执行步骤304;其中,第二API接口为ActivityManager.getRunningTasks(1);
步骤304:将处于霸屏模式的应用退出霸屏模式;
具体的,在本实施例中,在步骤304中,通过安卓系统的第三API接口将当前处于霸屏模式的应用退出霸屏模式;其中,第三API接口为ActivityTaskManager.getService().stopSystemLockTaskMode();
步骤305:用第一方法的参数中的应用包名替换保存的应用包名;
具体的,在本实施例中,步骤305:包括:调用第四API接口用第一方法的第一参数替换标准数据库中的应用包名;
其中,步骤305第四API接口为Settings.System.putString(mContext.getContentResolver(), "kiosk_mode_package", pkgName),将pkgName保存到Settings Provider数据库中System数据表中,保存格式为: kiosk_mode_package;
步骤306:根据应用包名设置对应应用进入霸屏模式;
具体的,在本实施例中,步骤306:包括:将应用包名作为参数调用第二方法设置对应应用进入霸屏模式;其中,第二方法为:PosApplication.startKioskMode(StringpkgName),传入的pkgName为应用包名;
更一步地,将应用包名作为参数调用第二方法设置对应应用进入霸屏模式,包括:
步骤306-1:根据应用包名判断对应应用是否运行,是则执行步骤306-4,否则执行步骤306-2;
具体的,在本实施例中,步骤306-1包括:通过调用第一系统接口获取最近运行的应用任务(RunningTaskInfo)列表,然后遍历该列表查询是否存在对应应用,是则执行步骤306-5,否则执行步骤306-2;
其中,第一系统接口为ActivityTaskManager.getService().getTasks(Max_Tasks_Num);
步骤306-2:启动对应应用,判断是否启动成功,是则执行步骤306-4,否则执行步骤306-3;
具体的,在本实施例中,将应用包名作为参数调用第三方法启动对应应用;
更进一步地,在第三方法中将应用包名作为参数调用第二系统接口获取到该应用启动的入口(Intent),将入口作为参数调用第三系统接口启动该应用;
根据第三方法的返回值判断待进入霸屏模式的应用是否已经启动成功,如返回值为true则启动成功,否则启动不成功;
其中,第三方法为PosApplication.startApplication(String pkgName),第二系统接口为PackageManager.getLaunchIntentForPackage(pkgName),第三系统接口为Context.startActivity(intent);
步骤306-3:移除保存的应用包名,设置第二方法的返回值为代表设置失败的预设值;
具体的,在本实施例中,步骤306-3包括:调用第六API接口将标准数据库中的应用包名删除;
其中,第六API接口为:Settings.System.putString(mContext.getContentResolver(), "kiosk_mode_package", ""),将SettingsProvider数据库中System表里的key为“kiosk_mode_package”的value值为空字符串;
例如,代表设置失败的预设值为false;
步骤306-4:获取对应的应用运行的任务ID;
具体的,在本实施例中,步骤306-4包括:从应用任务(RunningTaskInfo)列表中获取应用运行的任务ID;
步骤306-5:根据任务ID设置对应应用进入霸屏模式,设置第二方法的返回值为代表设置成功的预设值;
具体的,在本实施例中,将任务ID作为参数调用第四系统接口设置对应应用进入霸屏模式;
其中,第四系统接口为ActivityTaskManager.getService().startSystemLockTaskMode(runningTaskInfo.taskId);
步骤307:开启霸屏模式监听的定时轮询;
具体的,在本实施例中,步骤307包括:开启第二计时器,当第二定时器计时达到第二预设时间时调用第五API接口,第五API接口被调用时处于霸屏模式的应用被杀死后仍然可以正常启动,并恢复到霸屏模式;
当第五API接口被调用时,执行前述的步骤B1-步骤B6,在此不再赘述;
可选的,本实施例中的第二预设时间小于、等于第一预设时间;
步骤308:判断安卓设备是否已经处于霸屏模式,是则执行步骤309,否则结束;
在本实施例中,步骤308的实现过程与步骤302相同,在此不再赘述;
步骤309:安卓设备删除处于霸屏模式应用的应用包名,退出霸屏模式;
在本实施例中,步骤309调用第六API接口将标准数据库中的处于霸屏模式应用的应用包名删除;退出霸屏模式的实现过程与步骤304相同,在此不再赘述;
可选的,在本实施例中,退出霸屏模式之前还包括:检查是否存在霸屏模式监听的定时轮询,是则删除霸屏模式监听的定时轮询;
具体的,在本实施例中,通过调用第七API接口删除霸屏模式监听;
其中,第七API接口为:Handler.removeMessages(0);
在本实施例中,删除霸屏模式监听的定时轮询后,保证了退出霸屏模式后的应用不会被保活机制再次设置进入霸屏模式,实现完全退出霸屏模式。
本发明实施例又提供一种支持霸屏模式和远程控制的实现系统,包括TMS服务端和TMS客户端,TMS客户端包括TMS客户端的主进程和TMS客户端的远程控制界面,TMS服务端包括TMS主服务器和远程控制服务器,TMS客户端集成在安卓设备的TMS客户端应用中;
TMS客户端的主进程用于在启动后与TMS主服务器建立连接;
TMS客户端的主进程还用于当接收到TMS主服务器推送的远程控制指令时判断安卓设备是否处于霸屏模式,是则设置安卓设备临时退出霸屏模式,启动TMS客户端的远程控制界面,TMS客户端的远程控制界面启动后进行初始化时设置界面为透明,设置TMS客户端的远程控制界面的屏幕捕获权限,设置安卓设备进入霸屏模式,否则启动TMS客户端的远程控制界面;
TMS客户端的远程控制界面用于连接远程控制服务器,并判断是否成功连接,是则TMS客户端的远程控制界面生成登录信息,广播包含登录信息的连接成功信息,否则TMS客户端的远程控制界面广播包含远程控制指令的推送消息ID和指令推送状态的连接失败信息;
TMS客户端的主进程还用于当监听到广播信息时,判断广播信息的类型,如为连接成功则从连接成功信息中获取登录信息,并将获取到的登录信息上传给TMS主服务器,如为连接失败则从连接失败信息中获取远程控制指令的推送消息ID和指令推送状态并上报给TMS主服务器;
TMS主服务器用于接收到登录信息时通过浏览器弹出TMS客户端的远程控制界面的登录对话框,并自动填写登录信息,提示用户进行确认;
TMS客户端的远程控制界面还用于当接收到用户触发的确认登录信息时获取屏幕捕获权限并捕获安卓设备的画面,在远程控制服务器上显示画面,TMS服务端开始与安卓设备同步显示画面和进行操作。
可选的,在本实施例中, TMS客户端的主进程还用于在判断安卓设备处于霸屏模式时设置安卓设备临时退出霸屏模式并开启第一计时器开始计时;
TMS客户端的主进程还用于启动TMS客户端的远程控制界面;
TMS客户端的远程控制界面还用于在启动后进行初始化时设置为透明,设置TMS客户端的远程控制界面的屏幕捕获权限;
TMS客户端的主进程还用于当第一计时器的计时达到第一预设时间时判断安卓设备是否处于霸屏模式,如未处于霸屏模式则设置安卓设备恢复霸屏模式。
可选的,本申请的实施例还提供了一种电子设备,电子设备包括至少一个处理器、存储器及存储在该存储器上并可被至少一个处理器执行的指令,至少一个处理器执行该指令以实现上述实施例中的支持霸屏模式和远程控制的实现方法。该电子设备是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中公开的支持霸屏模式和远程控制的实现方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。在电子设备上加载和执行计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个基站、电子设备、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个基站、电子设备、服务器或数据中心进行传输。所述计算机可读存储介质可以是电子设备能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、 或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (19)
1.一种支持霸屏模式和远程控制的实现方法,其特征在于,适用于终端远程控制系统,所述终端远程控制系统包括TMS服务端和TMS客户端,所述TMS客户端包括TMS客户端的主进程和TMS客户端的远程控制界面,所述TMS服务端包括TMS主服务器和远程控制服务器,所述TMS客户端集成在安卓设备的TMS客户端应用中,包括:
步骤S1:所述安卓设备开机后启动所述TMS客户端的主进程,所述TMS客户端的主进程与所述TMS主服务器建立连接;
步骤S2:当所述TMS客户端的主进程接收到所述TMS主服务器推送的远程控制指令时执行步骤S3;
步骤S3:所述TMS客户端的主进程判断所述安卓设备是否处于霸屏模式,是则执行步骤S4,否则启动TMS客户端的远程控制界面,执行步骤S6;
步骤S4:所述TMS客户端的主进程设置所述安卓设备临时退出霸屏模式;
步骤S5:所述TMS客户端的主进程启动所述TMS客户端的远程控制界面,所述TMS客户端的远程控制界面启动后进行初始化时设置界面为透明,设置所述TMS客户端的远程控制界面的屏幕捕获权限,设置所述安卓设备进入霸屏模式,执行步骤S6;
步骤S6:所述TMS客户端的远程控制界面连接所述远程控制服务器,并判断是否连接成功,是则所述TMS客户端的远程控制界面生成登录信息,广播包含所述登录信息的连接成功信息,执行步骤S7,否则所述TMS客户端的远程控制界面广播包含远程控制指令的推送消息ID和指令推送状态的连接失败信息,执行步骤S7;
步骤S7:当所述TMS客户端的主进程监听到广播信息时,判断所述广播信息的类型,如为连接成功则执行步骤S8,如为连接失败则执行步骤S10;
步骤S8:所述TMS客户端的主进程从所述连接成功信息中获取登录信息,并将获取到的所述登录信息上传给所述TMS主服务器;
步骤S9:所述TMS主服务器通过浏览器弹出所述TMS客户端的远程控制界面的登录对话框,并自动填写登录信息,提示用户进行确认,当所述TMS客户端的远程控制界面接收到用户触发的确认登录信息时获取屏幕捕获权限并捕获所述安卓设备的画面,在所述远程控制服务器上显示所述画面,所述TMS服务端开始与所述安卓设备同步显示画面和进行操作;
步骤S10:所述TMS客户端的主进程从所述连接失败信息中获取远程控制指令的推送消息ID和指令推送状态并上报给所述TMS主服务器。
2.如权利要求1所述的方法,其特征在于,所述步骤S5中的设置所述安卓设备进入霸屏模式包括:所述TMS客户端的主进程根据待设为霸屏模式的应用获取对应的应用包名,将所述应用包名作为参数调用第二方法设置所述应用进入霸屏模式。
3.如权利要求1所述的方法,其特征在于,所述步骤S4和步骤S5替换为:
步骤T1:所述TMS客户端的主进程设置所述安卓设备临时退出霸屏模式并开启第一计时器开始计时;
步骤T2:所述TMS客户端的主进程启动所述TMS客户端的远程控制界面,所述TMS客户端的远程控制界面启动后进行初始化时将界面设置为透明,设置所述TMS客户端的远程控制界面的屏幕捕获权限,执行步骤S6;
当所述第一计时器的计时达到第一预设时间时所述TMS客户端的主进程判断安卓设备是否处于霸屏模式,如未处于霸屏模式则设置所述安卓设备恢复霸屏模式。
4.如权利要求1或3所述的方法,其特征在于,所述步骤S2包括:所述TMS客户端的主进程接收所述TMS主服务器推送的消息,解析所述消息得到消息ID和指令类型,判断所述指令类型,若所述指令类型为第一预设值则为远程控制指令,执行步骤S3。
5.如权利要求1或3所述的方法,其特征在于,所述TMS客户端的远程控制界面启动后进行初始化时将界面设置为透明,包括:
所述TMS客户端的远程控制界面启动后进行初始化时设置远程控制界面整体布局透明,设置根布局背景透明,设置图像视图控件不显示且不占用空间,设置文本视图控件背景透明且文本颜色为透明色,设置编辑框控件背景透明且文本颜色为透明色,设置远程控制界面状态栏透明,设置远程控制界面隐藏底部虚拟导航栏。
6.如权利要求3所述的方法,其特征在于,所述TMS客户端的主进程设置所述安卓设备恢复霸屏模式,包括:所述TMS客户端的主进程调用第五API接口使所述安卓设备恢复到霸屏模式;
当所述第五API接口被调用时,执行步骤B1-步骤B6;
步骤B1:判断保存的霸屏模式应用的记录是否为空,是则结束,否则执行步骤B2;
步骤B2:判断安卓设备是否已经处于霸屏模式,是则执行步骤B3,否则执行步骤B5;
步骤B3:判断处于霸屏模式的应用是否与保存的霸屏模式应用一致,是则执行步骤B6,否则执行步骤B4;
步骤B4:将所述处于霸屏模式的应用退出霸屏模式,执行步骤B5;
步骤B5:根据保存的霸屏模式应用的应用包名设置对应应用进入霸屏模式并判断是否设置成功,是则执行步骤B6,否则结束;
步骤B6:获取所述第五API接口的第二参数,根据所述第二参数进行延时,返回步骤B1。
7.如权利要求6所述的方法,其特征在于,所述步骤B1包括:判断数据库中是否保存有霸屏模式的应用包名,是则执行步骤B2,否则结束。
8.如权利要求6所述的方法,其特征在于,所述步骤B5包括:获取保存的霸屏模式应用的应用包名,将所述应用包名作为参数调用第二方法设置所述应用进入霸屏模式,根据第二方法的返回值判断是否设置成功,是则执行步骤B6,否则结束。
9.如权利要求2或8所述的方法,其特征在于,所述将所述应用包名作为参数调用第二方法设置所述应用进入霸屏模式,包括:
步骤B5-1:根据所述应用包名判断对应应用是否运行,是则执行步骤B5-4,否则执行步骤B5-2;
步骤B5-2:启动所述对应应用并判断是否启动成功,是则执行步骤B5-4,否则执行步骤B5-3;
步骤B5-3:移除保存的所述霸屏模式应用的应用包名,设置所述第二方法的返回值为代表设置失败的预设值;
步骤B5-4:获取所述对应的应用运行的任务ID;
步骤B5-5:根据所述任务ID设置所述对应的应用进入霸屏模式,设置所述第二方法的返回值为代表设置成功的预设值。
10.如权利要求9所述的方法,其特征在于,所述步骤B5-1包括:通过调用第一系统接口获取运行的应用任务列表,遍历所述应用任务列表查询是否存在保存的霸屏模式应用,是则执行步骤B5-4,否则执行步骤B5-2。
11.如权利要求1或3所述的方法,其特征在于,所述当所述TMS客户端的远程控制界面接收到用户触发的确认登录信息时获取屏幕捕获权限并捕获所述安卓设备的画面,在所述远程控制服务器上显示所述画面,包括:当所述TMS客户端的远程控制界面接收到用户触发的确认登录信息时,获取屏幕捕获权限并使用安卓系统的视频媒体接口获取安卓设备显示的界面内容,将获取的界面内容传输到所述远程控制服务器上,所述远程控制服务器显示接收到的画面内容。
12.如权利要求11所述的方法,其特征在于,所述获取屏幕捕获权限并使用安卓系统的视频媒体接口获取安卓设备显示的界面内容,将获取的界面内容传输到所述远程控制服务器上,所述远程控制服务器显示接收到的画面内容,包括:
步骤A1:所述TMS客户端的远程控制界面请求屏幕捕获权限;
步骤A2:所述TMS客户端的远程控制界面创建一个视频媒体对象,通过所述视频媒体对象捕获所述安卓设备显示的界面内容,释放视频媒体对象;
步骤A3:所述TMS客户端的远程控制界面将捕获到的界面内容转换为视频或图像格式的内容,将视频或图像格式的内容通过网络传输给所述远程控制服务器;
步骤A4:所述远程控制服务器显示接收到的视频或图像格式的内容。
13.如权利要求1或3所述的方法,其特征在于,所述步骤S9或步骤S10之后还包括:当符合预设条件时,所述TMS客户端的远程控制界面断开与所述远程控制服务器的连接,所述TMS客户端的远程控制界面结束运行。
14.如权利要求13所述的方法,其特征在于,所述当符合预设条件时,所述TMS客户端的远程控制界面断开与所述远程控制服务器的连接,包括:当接收到用户在所述TMS服务端上的关闭远程控制窗口触发信息时,所述TMS主服务器发送断开远程控制连接指令给所述TMS客户端的主进程,所述TMS客户端的主进程接收到断开远程控制连接指令后,以发送广播方式通知所述TMS客户端的远程控制界面断开与所述远程控制服务器的连接;或在所述TMS客户端的远程控制界面与所述远程控制服务器建立连接之后,所述TMS客户端的远程控制界面在预设时间内未接收到用户在所述安卓设备上的操作信息则自动断开与所述远程控制服务器的连接。
15.如权利要求1或3所述的方法,其特征在于,还包括:
步骤K1:当所述安卓设备检测到第一方法被调用时,根据所述第一方法的参数判断对应应用是否需要进入霸屏模式,是则执行步骤K2,否则执行步骤K8;
步骤K2:判断所述安卓设备是否已经处于霸屏模式,是则执行步骤K3,否则结束;
步骤K3:判断处于霸屏模式的应用是否为对应应用,是则执行步骤K7,否则执行步骤K4;
步骤K4:将处于霸屏模式的应用退出霸屏模式;
步骤K5:用所述第一方法的参数中的应用包名替换保存的应用包名;
步骤K6:根据所述应用包名设置所述对应应用进入屏模式,执行步骤K7;
步骤K7:开启霸屏模式监听的定时轮询;
步骤K8:判断安卓设备是否已经处于霸屏模式,是则执行步骤K9,否则结束;
步骤K9:安卓设备删除处于霸屏模式应用的应用包名,退出霸屏模式。
16.一种支持霸屏模式和远程控制的实现系统,其特征在于,包括TMS服务端和TMS客户端,所述TMS客户端包括TMS客户端的主进程和TMS客户端的远程控制界面,所述TMS服务端包括TMS主服务器和远程控制服务器,所述TMS客户端集成在安卓设备的TMS客户端应用中;
所述TMS客户端的主进程用于在启动后与所述TMS主服务器建立连接;
所述TMS客户端的主进程还用于当接收到所述TMS主服务器推送的远程控制指令时判断所述安卓设备是否处于霸屏模式,是则设置所述安卓设备临时退出霸屏模式,启动所述TMS客户端的远程控制界面,所述TMS客户端的远程控制界面启动后进行初始化时设置界面为透明,设置所述TMS客户端的远程控制界面的屏幕捕获权限,设置所述安卓设备进入霸屏模式,否则启动TMS客户端的远程控制界面;
所述TMS客户端的远程控制界面用于连接所述远程控制服务器,并判断是否连接成功,是则所述TMS客户端的远程控制界面生成登录信息,广播包含所述登录信息的连接成功信息,否则所述TMS客户端的远程控制界面广播包含远程控制指令的推送消息ID和指令推送状态的连接失败信息;
所述TMS客户端的主进程还用于当监听到广播信息时,判断所述广播信息的类型,如为连接成功则从所述连接成功信息中获取登录信息,并将获取到的所述登录信息上传给所述TMS主服务器,如为连接失败则从所述连接失败信息中获取远程控制指令的推送消息ID和指令推送状态并上报给所述TMS主服务器;
所述TMS主服务器用于接收到所述登录信息时通过浏览器弹出所述TMS客户端的远程控制界面的登录对话框,并自动填写登录信息,提示用户进行确认;
所述TMS客户端的远程控制界面还用于当接收到用户触发的确认登录信息时获取屏幕捕获权限并捕获所述安卓设备的画面,在所述远程控制服务器上显示所述画面,所述TMS服务端开始与所述安卓设备同步显示画面和进行操作。
17.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现权利要求1至15任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至15任一项所述的方法。
19.一种芯片系统,其特征在于,包括芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行权利要求1-15任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311108197.6A CN116828029B (zh) | 2023-08-31 | 2023-08-31 | 一种支持霸屏模式和远程控制的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311108197.6A CN116828029B (zh) | 2023-08-31 | 2023-08-31 | 一种支持霸屏模式和远程控制的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116828029A true CN116828029A (zh) | 2023-09-29 |
CN116828029B CN116828029B (zh) | 2023-12-05 |
Family
ID=88127827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311108197.6A Active CN116828029B (zh) | 2023-08-31 | 2023-08-31 | 一种支持霸屏模式和远程控制的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116828029B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04113440A (ja) * | 1990-09-04 | 1992-04-14 | Nec Corp | 画面データの管理利用方式 |
US20060117172A1 (en) * | 2004-11-12 | 2006-06-01 | Yaoxue Zhang | Method and computing system for transparence computing on the computer network |
CN107146350A (zh) * | 2017-05-15 | 2017-09-08 | 刘铭皓 | 一种利用移动客户端实现实时防盗的远程控制方法 |
CN109120505A (zh) * | 2018-06-25 | 2019-01-01 | 华南理工大学 | 一种基于mvp模式的安卓客服对话系统及方法 |
CN110337006A (zh) * | 2019-07-09 | 2019-10-15 | 湖南微谷云科技有限公司 | 一种基于视频媒体的电商管理方法 |
CN113573105A (zh) * | 2021-07-01 | 2021-10-29 | 广州方硅信息技术有限公司 | 基于霸屏虚拟礼物的直播互动方法及计算机设备 |
CN115291983A (zh) * | 2022-07-18 | 2022-11-04 | 深圳市星网信通科技有限公司 | 显示控制方法、智慧屏及存储介质 |
CN116668497A (zh) * | 2023-05-10 | 2023-08-29 | 深圳市新国都支付技术有限公司 | 霸屏退出方法、霸屏退出装置、电子设备及存储介质 |
-
2023
- 2023-08-31 CN CN202311108197.6A patent/CN116828029B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04113440A (ja) * | 1990-09-04 | 1992-04-14 | Nec Corp | 画面データの管理利用方式 |
US20060117172A1 (en) * | 2004-11-12 | 2006-06-01 | Yaoxue Zhang | Method and computing system for transparence computing on the computer network |
CN107146350A (zh) * | 2017-05-15 | 2017-09-08 | 刘铭皓 | 一种利用移动客户端实现实时防盗的远程控制方法 |
CN109120505A (zh) * | 2018-06-25 | 2019-01-01 | 华南理工大学 | 一种基于mvp模式的安卓客服对话系统及方法 |
CN110337006A (zh) * | 2019-07-09 | 2019-10-15 | 湖南微谷云科技有限公司 | 一种基于视频媒体的电商管理方法 |
CN113573105A (zh) * | 2021-07-01 | 2021-10-29 | 广州方硅信息技术有限公司 | 基于霸屏虚拟礼物的直播互动方法及计算机设备 |
CN115291983A (zh) * | 2022-07-18 | 2022-11-04 | 深圳市星网信通科技有限公司 | 显示控制方法、智慧屏及存储介质 |
CN116668497A (zh) * | 2023-05-10 | 2023-08-29 | 深圳市新国都支付技术有限公司 | 霸屏退出方法、霸屏退出装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116828029B (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6631409B1 (en) | Method and apparatus for monitoring a communications system | |
US7707513B2 (en) | System for streaming data from server to multiple slave browser windows in client computer through a master browser window | |
US8276023B2 (en) | Method and system for remote monitoring subscription service | |
US6591279B1 (en) | System and method for computer-based notifications of real-world events using digital images | |
US20180336060A1 (en) | Method, terminal and storage medium for displaying media files | |
US10310594B2 (en) | Knowledge base in virtual mobile management | |
WO2020094036A1 (zh) | 用于终端的无线网络连接方法 | |
US20150236942A1 (en) | Remotely Controlling Devices and Proscessing Asynchronous Events for Testing | |
US6959392B1 (en) | Information providing system and method for providing information | |
CN111246238A (zh) | 直播方法、装置、存储介质及直播系统 | |
CN111181860A (zh) | 基于zuul网关的路由转发方法、装置及系统 | |
CN112057846A (zh) | 云游戏服务调度的交互方法、装置、设备和存储介质 | |
CN111901695B (zh) | 视频内容截取方法、装置和设备及计算机存储介质 | |
WO2010148659A1 (zh) | Web系统中的数据处理方法、装置及系统 | |
CN113055225A (zh) | 网络故障分析数据的获取方法、终端及服务器 | |
CN116828029B (zh) | 一种支持霸屏模式和远程控制的实现方法及系统 | |
US11039188B2 (en) | Content distribution system and content distribution apparatus | |
US7281027B2 (en) | Distributed processing system and network monitoring system | |
CN112882849A (zh) | 云应用中的信息推荐方法、装置、系统、设备及存储介质 | |
TW201447599A (zh) | 保留及執行本機計算裝置的影像寫入之技術 | |
WO2014075526A1 (zh) | 网络数据处理方法及设备 | |
US20190141101A1 (en) | Content distribution system, content distribution apparatus, and content distribution method | |
CN111885167B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN115604132A (zh) | 服务器的远程控制方法、装置、电子设备和可读存储介质 | |
CN104935571B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |