本发明涉及android产品领域,特别涉及一种android设备。
背景技术:
mtp协议是设计来在pc和移动设备之间的通讯协议,而目前缺乏在两个android设备之间的通讯方案。
目前的android系统自带了mtp协议的responder端功能,比如一个android智能手机可以通过usb数据线连接到windowspc上,pc可以直接读写智能手机的文本、图片或视频等。然而对于android智能电视来说,其使用性质上更接近mtp协议的initiator端,需要的是读取别的移动设备,在电视机上呈现或者操作。但现在市场上的技术方案,没有将android电视机实现成initiator端,以至于无法将android移动设备和android电视机通过mtp进行连接操作。所以,本发明就是针对android设备之间的通信提出一种解决方案。
技术实现要素:
本发明要解决的技术问题是:提供一种android设备,当该android设备插入了另一个android设备,两个android设备间可通过mtp协议进行通信。
为解决上述问题,本发明采用的技术方案是:一种android设备,包括mtp统一管控模块、initiator信息识别模块、mtp管理服务模块;其中:
当本方系统插入了一个设备时,mtp统一管控模块用于根据对方设备的类型判断系统使用的场景,若使用场景为responder场景,则将本方作为responder角色,按android原生流程进行通信;若使用场景为initiator场景,则将本方作为initiator角色,并启用initiator信息识别模块;
initiator信息识别模块用于读取对方设备的驱动信息,并将驱动信息与mtp协议特征字段对比,判断对方设备是否处于mtp模式,若是则启用mtp管理服务模块;
mtp管理服务模块用于将对方设备挂载并进行读写管理。
进一步的,若对方设备是pc,mtp统一管控模块将本方作为responder角色,按android原生流程进行通信,若对方设备是android设备,mtp统一管控模块将本方作为initiator角色。
进一步的,mtp管理服务模块实现mtp设备的挂载和并进行读写管理的方法:首先初始化libmtp库,然后初始化fuse文件系统操作接口结构体,调用libmtp库接口初始化mtpfusecontext结构体,调用fuse_main()接口并把fuse文件系统操作接口结构体和mtpfusecontext结构体作为参数传给fuse_main()。
本发明的有益效果是:本发明的android设备通过设置mtp统一管控模块、initiator信息识别模块、mtp管理服务模块,当本发明的android设备与另一个android设备进行连接时,可自动将本发明的android设备作为initiator端,另一个android设备仍作为responder端,从而实现两个android设备通过mtp进行连接操作,增多了android设备间通信的方式,增强了android设备的交互性。
具体实施方式
实施例提供一种android设备,包括mtp统一管控模块、initiator信息识别模块、mtp管理服务模块;以下对各个模块进行具体说明。
当本方系统插入了一个设备时,mtp统一管控模块用于根据对方设备的类型判断系统使用的场景,若使用场景为responder场景,则将本方作为responder角色,按android原生流程进行通信;若使用场景为initiator场景,则将本方作为initiator角色,并启用initiator信息识别模块;具体来说,若对方设备是pc,mtp统一管控模块将本方作为responder角色,按android原生流程进行通信,若对方设备是android设备,mtp统一管控模块将本方作为initiator角色。
initiator信息识别模块用于读取对方设备的驱动信息,并将驱动信息与mtp协议特征字段对比,判断对方设备是否处于mtp模式,若是则启用mtp管理服务模块。
mtp管理服务模块对用于将对方设备挂载并进行读写管理。mtp管理服务模块的功能具体实现方式如下:
首先初始化libmtp库,然后初始化fuse文件系统操作接口结构体,调用libmtp库接口初始化mtpfusecontext结构体,调用fuse_main()接口并把fuse文件系统操作接口结构体和mtpfusecontext结构体作为参数传给fuse_main(),从而管理服务模块可管理mtp设备的读写等操作;同时将mtp设备信息上报mountservice进行统一管理。
实施例提供一种android设备间通过mtp协议连接的方法,该方法中的本方android设备采用上述的android设备,对方设备为常规android设备,该方法包括以下步骤:
a.将对方设备插入本方设备中,本方设备根据对方设备的类型判断系统使用的场景为initiator场景,此时将本方设备作为initiator角色,并启用本方设备中的initiator信息识别模块,进入步骤b;
b.本方设备读取对方设备的驱动信息,并将驱动信息与mtp协议特征字段对比,判断对方设备是否处于mtp模式,若处于mtp模式,则启用mtp管理服务模块,进入步骤c,若不处于mtp模式,则返回步骤b重复执行;
c.本方设备通过mtp管理服务模块将对方设备挂载并进行读写管理。
以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。