Linux平台上基于Intent的安卓应用文件发送方法技术

技术编号:33210417 阅读:16 留言:0更新日期:2022-04-24 01:04
本发明专利技术公开了Linux平台上基于Intent的安卓应用文件发送方法,通过在安卓兼容环境中监测安卓应用顶层窗口的切换,实时判断安卓应用是否切换到对话界面同时获取对话对象的对象名,当安卓应用显示单元接收到Linux系统鼠标拖拽事件时向安卓兼容环境发送文件发送消息,安卓兼容环境通过解析文件发送消息自动完成对话对象的选择、确认发送等系列操作,从而实现了在Linux系统的安卓兼容环境中以拖拽方式将位于Linux系统上的文件发送至安卓应用的功能,有效提高了用户操作的便利性。有效提高了用户操作的便利性。有效提高了用户操作的便利性。

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


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

技术介绍

[0002]Linux操作系统安卓兼容环境(下文简称安卓兼容环境)是一种在Linux操作系统上运行安卓应用的技术,对丰富Linux操作系统应用生态有着重要的意义。xDroid就是典型的Linux操作系统安卓兼容环境,通过xDroid与xDroidUI的配合实现了安卓应用与Linux操作系统的兼容,xDroidUI为运行在Linux系统上的安卓应用显示单元。
[0003]现有的微信、QQ等安卓应用一般会提供桌面版和手机版两个安装版本,通常情况下两个版本都支持在安卓应用内通过菜单(或按钮)打开桌面系统的文件对话框选择文件再发送,但是大多数情况下,只有桌面版的安卓应用支持从文件浏览器将文件直接拖拽到安卓应用实现文件发送或分享的方式,因此,用户如果希望在安卓兼容环境中使用安卓应用则会遇到无法以拖拽方式发送文件的问题,从而降低了用户操作的便利性。

技术实现思路

[0004]有鉴于此,本专利技术提供了Linux平台上基于Intent的安卓应用文件发送方法,能够实现在Linux系统的安卓兼容环境中以拖拽方式将位于Linux系统上的文件发送至安卓应用。
[0005]本专利技术提供的Linux平台上基于Intent的安卓应用文件发送方法,包括以下步骤:步骤1、安卓兼容环境获取当前已打开对话界面的活跃安卓应用作为目标应用,获取所述对话界面中对话对象的对象名,建立目标应用的目标应用包名与对象名的映射关系表;步骤2、在Linux系统中,当安卓应用显示单元接收到向指定安卓应用拖拽目标文件的文件拖拽事件消息后,将目标文件传输到安卓兼容环境内,并向安卓兼容环境发送文件发送消息;所述文件发送消息包含所述指定安卓应用的指定应用包名及目标文件在安卓兼容环境中的文件全路径名;步骤3、安卓兼容环境解析所述文件发送消息后,在所述映射关系表中查找与所述指定应用包名相对应的对象名作为指定对象名;构建包含所述指定应用包名及文件全路径名的Intent消息,将所述Intent消息发送至所述指定安卓应用;步骤4、所述指定安卓应用接收到所述Intent消息后,弹出发送对象选择窗口,在所述发送对象选择窗口中定位对象名称编辑框,将所述指定对象名输入对象名称编辑框后显示搜索结果列表,模拟鼠标点击搜索结果列表中的第一项;步骤5、监测生成的确认发送对话框,若所述确认发送对话框位于所述发送对象选择窗口内,则隐藏所述确认发送对话框,模拟鼠标点击确认发送对话框中的确认发送按钮;若确认发送对话框为独立窗口,则显示确认发送对话框,等待用户点击确认发送按钮;
步骤6、隐藏返回安卓应用对话框,模拟鼠标点击留在指定安卓应用窗口中的按钮,通知安卓应用显示单元激活指定安卓应用的窗口。
[0006]进一步地,所述步骤1中安卓兼容环境获取当前已打开对话界面的活跃安卓应用作为目标应用,获取所述对话界面中对话对象的对象名的方式为:安卓兼容环境以监测到的处于活跃状态的安卓应用的作为目标应用,监测当前Top Activity的切换过程以新Activity所在的安卓应用作为顶层应用,若顶层应用的包名与目标应用的包名相同且新Activity具有对话界面的标识信息,则获取目标应用的当前对话界面中对话对象的对象名。
[0007]进一步地,所述新Activity具有对话界面的标识信息的判断方式为:预先提取安卓应用的对话界面的特征模式;当目标应用完成了所有View的构建和布局后截取目标应用DecorView的函数内容,若函数内容与特征模式相匹配,则目标应用已切换到对话界面,否则目标应用未切换到对话界面。
[0008]进一步地,所述新Activity具有对话界面的标识信息的判断方式为:预先获取目标应用的关键View组件的类名及View ID,监测目标应用运行时是否加载了关键View组件且关键View组件为可见状态,如果是则说明目标应用已切换到对话界面,否则目标应用未切换到对话界面。
[0009]进一步地,所述获取目标应用的关键View组件的类名及View ID的方式为:采用安卓调试工具ADB连接正在运行的安卓应用,通过Hierarchy Viewer获取关键View组件的类名和View ID。
[0010]进一步地,所述步骤1还包括当安卓兼容环境监测到所述目标应用退出时,在所述映射关系表中删除该目标应用对应的映射关系。
[0011]进一步地,所述步骤1中获取所述对话界面中对话对象的对象名的方式为:截取所述当前对话界面并识别顶部文本获取对象名称。
[0012]进一步地,所述步骤4中还包括隐藏所述发送对象选择窗口。
[0013]进一步地,所述隐藏所述发送对象选择窗口的方式为:将所述发送对象选择窗口设置为无边框窗口后,隐藏所述发送对象选择窗口。
[0014]进一步地,所述隐藏所述发送对象选择窗口的方式为:修改所述发送对象选择窗口的taskAffinity使其与指定安卓应用当前Activity的taskAffinity相同,并在指定安卓应用当前的Activity中增加一个透明度为0的图层。
[0015]有益效果:1、本专利技术通过在安卓兼容环境中增加对安卓应用Top Activity切换过程的监测,能够实时判断安卓应用是否切换到对话界面同时获取对话对象的对象名,通过安卓应用显示单元中增加对Linux系统鼠标拖拽事件的响应,当收到鼠标拖拽事件时安卓应用显示单元向安卓兼容环境发送文件发送消息,安卓兼容环境通过解析文件发送消息自动完成对话对象的选择、确认发送等系列操作,从而实现了在Linux系统的安卓兼容环境中以拖拽方式将位于Linux系统上的文件发送至安卓应用的功能,有效提高了用户操作的便利性。
[0016]2、本专利技术通过隐藏对话对象的选择、确认发送等系列操作中产生的界面,从而使上述过程对用户完全透明,让用户体验到与桌面应用相同的使用感受,从而有效提高了用户体验。
附图说明
[0017]图1为本专利技术提供的Linux平台上基于Intent的安卓应用文件发送方法的流程图。
具体实施方式
[0018]下面结合附图并举实施例,对本专利技术进行详细描述。
[0019]Intent是安卓系统提供的用来协助应用间交互与通讯的机制,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,安卓系统则根据Intent的描述找到对应的组件,将 Intent传递给调用的组件,完成组件的调用。此外,Intent还可用于应用程序内部的 Activity / Service之间的交互,此时Intent的作用类似于媒体中介,用于提供组件互相调用的相关信息,从而实现调用者与被调用者之间的解耦。
[0020]本专利技术提供了Linux平台上基于Intent的安卓应用文件发送方法,流程如图1所示,具体包括以下步骤:步骤1、安卓兼容环境将监测到的当本文档来自技高网
...

【技术保护点】

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

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

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

1