一种Linux平台上安卓应用文件的发送方法技术

技术编号:35499023 阅读:22 留言:0更新日期:2022-11-05 17:03
本发明专利技术公开了一种Linux平台上安卓应用文件的发送方法,通过在安卓兼容环境中增加对安卓应用Top Activity切换过程的监测,能够实时判断安卓应用是否切换到对话界面同时获取对话对象的对象名,通过安卓应用显示单元中增加对Linux系统鼠标拖拽事件的响应,当收到鼠标拖拽事件时安卓应用显示单元向安卓兼容环境发送文件发送消息,安卓兼容环境通过解析文件发送消息隐藏完成发送等操作,从而实现了在Linux系统的安卓兼容环境中以拖拽方式将位于Linux系统上的文件发送至安卓应用的功能,有效提高了用户操作的便利性。效提高了用户操作的便利性。效提高了用户操作的便利性。

【技术实现步骤摘要】
一种Linux平台上安卓应用文件的发送方法


[0001]本专利技术属于桌面操作系统上运行移动应用的开发
,具体涉及一种Linux平台上安卓应用文件的发送方法。

技术介绍

[0002]Linux操作系统安卓兼容环境(下文简称安卓兼容环境)是一种在Linux操作系统上运行安卓应用的技术,对丰富Linux操作系统应用生态有着重要的意义。通常情况下,典型的安卓兼容环境主要包括安卓应用显示单元和安卓应用兼容服务,安卓应用显示单元用于在桌面操作系统上实现安卓应用的用户界面,安卓应用兼容服务用于提供运行于桌面操作系统上的安卓兼容环境,通过安卓应用显示单元与安卓应用兼容服务的相互配合实现安卓应用在桌面操作系统上的有效运行,例如,现有安卓兼容环境的实现方案有xDroid,它包括xDroidUI和xDroidServer,xDroidUI为安卓应用显示单元,xDroidServer为安卓应用兼容服务,通过xDroid与xDroidUI的配合即可实现安卓应用与Linux操作系统的兼容。
[0003]现有的安卓应用一般都会提供一系列供外部调用的功能接口,用于发送消息、分享文件等,这些功能接口一般采用Intent方式实现。Intent是安卓系统提供的用来协助应用之间交互与通讯的机制,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,安卓系统则根据Intent的描述找到对应的组件,将 Intent传递给需要调用的组件,完成组件间的调用。此外,Intent还可用于应用程序内部的 Activity / Service之间的交互,此时Intent的作用类似于媒体中介,用于提供组件互相调用的相关信息,从而实现调用者与被调用者之间的解耦。
[0004]例如微信、QQ等安卓应用一般都会提供桌面版和手机版两个安装版本,通常情况下两个版本都支持在安卓应用内通过菜单(或按钮)打开桌面系统的文件对话框选择文件再发送,但是大多数情况下,只有桌面版的安卓应用支持从文件浏览器将文件直接拖拽到安卓应用实现文件发送或分享的方式,然而由于Intent模式不支持指定发送对象,因此,当用户希望在安卓兼容环境中使用安卓应用时则可能遇到无法以拖拽方式发送文件的问题,从而降低了用户操作的便利性。

技术实现思路

[0005]有鉴于此,本专利技术提供了一种Linux平台上安卓应用文件的发送方法,能够实现在Linux系统的安卓兼容环境中以拖拽方式将位于Linux系统上的文件发送至安卓应用,同时对用户隐藏操作中间过程。
[0006]本专利技术提供的一种Linux平台上安卓应用文件的发送方法,包括以下步骤:步骤1、安卓兼容环境获取当前已打开对话界面的活跃安卓应用作为目标应用,获取所述对话界面中对话对象的对象名,建立目标应用的目标应用包名与对象名的映射关系表;步骤2、在Linux系统中,当安卓应用显示单元接收到向指定安卓应用拖拽目标文
件的文件拖拽事件消息后,将目标文件传输到安卓兼容环境内,并向安卓兼容环境发送文件发送消息;所述文件发送消息包含所述指定安卓应用的指定应用包名及目标文件在安卓兼容环境中的文件全路径名;步骤3、安卓兼容环境解析所述文件发送消息后,在所述映射关系表中查找与所述指定应用包名相对应的对象名作为指定对象名;构建包含所述指定应用包名及文件全路径名的Intent消息,且为Intent添加特定标识,将所述Intent消息发送至安卓框架;步骤4、安卓框架获取Intent消息中的Intent的标识,若标识包括FLAG_ACTIVITY_NEW_TASK及特定标识,则获取安卓兼容环境当前ActivityStack所对应的应用包名A,当应用包名A与Intent对应的指定应用包名相同,且当前ActivityStack的顶部Activity位于Linux系统桌面的顶层时,将指定应用的发送对象选择窗口显示在顶部Activity中;否则,弹出新建的指定应用的发送对象选择窗口;步骤5、在所述发送对象选择窗口中定位对象名称编辑框,将所述指定对象名输入对象名称编辑框后,模拟鼠标点击搜索结果列表中的第一项;步骤6、监测弹出的确认发送对话框,若所述确认发送对话框位于所述发送对象选择窗口内,则隐藏所述确认发送对话框,模拟鼠标点击确认发送对话框中的确认发送按钮;若确认发送对话框为独立窗口,则显示确认发送对话框,等待用户点击确认发送按钮;步骤7、隐藏返回安卓应用对话框,模拟鼠标点击留在指定安卓应用窗口中的按钮,通知安卓应用显示单元激活指定安卓应用的窗口。
[0007]进一步地,所述步骤1中安卓兼容环境获取当前已打开对话界面的活跃安卓应用作为目标应用,获取所述对话界面中对话对象的对象名的方式为:安卓兼容环境以监测到的处于活跃状态的安卓应用的作为目标应用,监测当前Top Activity的切换过程以新Activity所在的安卓应用作为顶层应用,若顶层应用的包名与目标应用的包名相同且新Activity具有对话界面的标识信息,则获取目标应用的当前对话界面中对话对象的对象名。
[0008]进一步地,所述新Activity具有对话界面的标识信息的判断方式为:步骤1.1、当监测到目标安卓应用切换到了会话Activity时,安卓应用显示单元通知安卓兼容环境获取关键View组件的类名及View ID;步骤1.2、安卓兼容环境遍历目标安卓应用内除会话Activity之外的所有可见视图,将获取到的视图类名和View ID信息保存在视图信息列表内;步骤1.3、安卓兼容环境获取会话Activity内所有可见视图的类名和View ID信息;对于每个可见视图,若视图信息列表中不存在与之完全相同的可见视图,则将其保存在关键视图列表中,否则,不保存该可见视图的信息;步骤1.4、若关键视图列表为空,则执行步骤1.6;否则执行步骤1.5;步骤1.5、拦截DecorView函数的onResourcesLoaded、onMeasure或onLayout函数监测组件的加载过程,若目标安卓应用运行时加载了关键视图列表中存在的关键View组件,则执行步骤2;否则不做处理;步骤1.6、当目标应用完成了所有View的构建和布局后截取目标应用DecorView的函数内容,若函数内容与特征模式相匹配,则执行步骤2;否则不做处理;所述特征模式包括左对齐ViewGroup特征模式和右对齐ViewGroup特征模式;所述
左对齐ViewGroup特征模式是ViewGroup的最左侧的第一个可见子视图继承自ImageView或包含一个继承自ImageView的子视图,且ViewGroup内的列表项中存在仅包含符合时间格式的文本的可见文本视图的列表项;所述右对齐ViewGroup特征模式是ViewGroup的最右侧的第一个可见子视图继承自ImageView或包含一个继承自ImageView的子视图,且ViewGroup内的列表项中存在仅包含符合时间格式的文本的可见文本视图的列表项。
[0009]进一步地,所述步骤1还包括当安卓兼容环境监测到所述目标应用退出时,在所述映射关系表中删除该目标应用对应的映射关系。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Linux平台上安卓应用文件的发送方法,其特征在于,包括以下步骤:步骤1、安卓兼容环境获取当前已打开对话界面的活跃安卓应用作为目标应用,获取所述对话界面中对话对象的对象名,建立目标应用的目标应用包名与对象名的映射关系表;步骤2、在Linux系统中,当安卓应用显示单元接收到向指定安卓应用拖拽目标文件的文件拖拽事件消息后,将目标文件传输到安卓兼容环境内,并向安卓兼容环境发送文件发送消息;所述文件发送消息包含所述指定安卓应用的指定应用包名及目标文件在安卓兼容环境中的文件全路径名;步骤3、安卓兼容环境解析所述文件发送消息后,在所述映射关系表中查找与所述指定应用包名相对应的对象名作为指定对象名;构建包含所述指定应用包名及文件全路径名的Intent消息,且为Intent添加特定标识,将所述Intent消息发送至安卓框架;步骤4、安卓框架获取Intent消息中的Intent的标识,若标识包括FLAG_ACTIVITY_NEW_TASK及特定标识,则获取安卓兼容环境当前ActivityStack所对应的应用包名A,当应用包名A与Intent对应的指定应用包名相同,且当前ActivityStack的顶部Activity位于Linux系统桌面的顶层时,将指定应用的发送对象选择窗口显示在顶部Activity中;否则,弹出新建的指定应用的发送对象选择窗口;步骤5、在所述发送对象选择窗口中定位对象名称编辑框,将所述指定对象名输入对象名称编辑框后,模拟鼠标点击搜索结果列表中的第一项;步骤6、监测弹出的确认发送对话框,若所述确认发送对话框位于所述发送对象选择窗口内,则隐藏所述确认发送对话框,模拟鼠标点击确认发送对话框中的确认发送按钮;若确认发送对话框为独立窗口,则显示确认发送对话框,等待用户点击确认发送按钮;步骤7、隐藏返回安卓应用对话框,模拟鼠标点击留在指定安卓应用窗口中的按钮,通知安卓应用显示单元激活指定安卓应用的窗口。2.根据权利要求1所述的发送方法,其特征在于,所述步骤1中安卓兼容环境获取当前已打开对话界面的活跃安卓应用作为目标应用,获取所述对话界面中对话对象的对象名的方式为:安卓兼容环境以监测到的处于活跃状态的安卓应用的作为目标应用,监测当前Top Activity的切换过程以新Activity所在的安卓应用作为顶层应用,若顶层应用的包名与目标应用的包名相同且新Activity具有对话界面的标识信息,则获取目标应用的当前对话界面中对话对象的对象名。3.根据权利要求2所述的发送方法,其特征在于,所述新Activity具有对话界面的标识信息的判断方式为:步骤1.1、当监测到目标安卓应用切换到了会话A...

【专利技术属性】
技术研发人员:温研
申请(专利权)人:北京麟卓信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1