一种安卓设备的识别方法和装置制造方法及图纸

技术编号:12346087 阅读:79 留言:0更新日期:2015-11-18 18:39
本发明专利技术公开了一种安卓设备的识别方法和装置,其中,在ADB进程中,通过钩子进程接管安卓设备,并将该安卓设备的VID和PID修改为一特定值,VID和PID一起组成安卓设备的识别码,所有的安卓设备被虚拟为具有同样的VID和PID码,这样使用一个ADB驱动可以识别不同的安卓设备。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种通过计算机对外部安卓设备进行操作的方法及装置。
技术介绍
随着智能电子设备越来越普及,智能手机、平板、电视等的用户群体越来越大。随着用户群体的扩大,已无法使得全部用户都能够熟悉如何对安卓设备进行操作和控制。如何使用户更方便、快捷地通过PC(个人计算机,Personal Computer)、笔记本电脑等终端设备对智能安卓设备进行互连和操作成为人们比较关注的问题。目前,安卓系统已经成为智能电子设备的常见操作系统之一。由于安卓系统的开放性使得人们可以开发各种接口工具来连接终端设备,但同时,其开放性也导致PC的安卓设备助手越来越多。在安装PC安卓设备助手后用户可以通过USB(Universal Serial Bus,通用串行总线)接口实现对安卓设备的操作。现在比较常用的有奇虎360手机助手、豌豆荚手机助手(也称豌豆荚手机精灵)、腾讯手机管家等。通过这些手机助手,用户可以轻松下载、安装、管理手机资源,实现海量资源一键安装,应用程序方便管理等功能。然而这些传统安卓设备助手在插入一部不同品牌不同型号的设备的时候都会有一个安装 ADB (Android Debug Bridge)驱动的过程。结合图1,现有一般的Adb工作流程如下:1、启动 Adb。2、此时Adb server接受到命令,比如Adb devices,并将Adb devices发送到动态程序库AdbWinApi。3、AdbWinApi接受到命令后,则把消息Adb devices发送给对应的windows驱动,如果没有对应的windows驱动,返回NULL给Adb server。4、windows驱动通过USB总线把Adb devices命令传送到安卓设备,安卓设备处理后的结果(即设备名称),原路返回给Adb服务,并在电脑屏幕上显示安卓设备的设备名称。此时操作完成。安装驱动时会与WINDOWS操作系统的驱动自动更新机制冲突。如果有几家软件公司的设备助手同时存在的话,安卓设备ADB驱动的安装也会存在冲突。传统安卓设备助手都会在网络服务器上提供一个常用安卓设备ADB驱动库,这样的话对于冷门的安卓设备不提供支持。而且传统安卓设备助手还存在以下几个问题:1)PC端首次与安卓设备链接时,耗时在30秒至I分钟不等。2)兼容性不高,如果需要安装大量安卓设备驱动,会导致有些安卓设备驱动不能正常工作3)适配性不高,未来如果新出了一款安卓设备,传统的安卓设备助手再没有更新驱动库的情况下,无法使安卓设备正常工作。造成上述问题的原因为:I)上述安卓设备助手都有自己的驱动库,每次安卓设备插入时,助手会检测安卓设备型号并且发送到驱动库服务器,在驱动库服务器进行匹配后下载至用户计算机上安装,这种方式在网络不发达地区或者是完全没有网络的地区,使用有局限性。2)而且在没有更新驱动库的情况下,新安卓设备会在旧驱动库中匹配失败,导致驱动无法下载。3)兼容性问题,因为安卓设备厂商繁多,相互之间开发的技术细节也相对保密,所以在安卓设备驱动运行中会独占某些操作系统资源,导致其他安卓设备驱动无法正常工作。
技术实现思路
本专利技术通过一种全新的思路解决上述问题,完全改变了传统安卓设备助手为安卓设备在PC上安装驱动的技术格局,而此项专利技术完全没有驱动库,兼容所有的安卓设备,急速响应安卓设备接入,安卓设备插入PC后1-3秒就能识别,对其进行操作。本专利技术提供一种安卓设备的识别方法和装置,包括,I)在ADB进程中,通过钩子进程接管连接到电脑的所述安卓设备;2)将所述安卓设备的生产厂商ID即VID、产品ID即PID修改为一特定值,VID和PID —起组成所述安卓设备的识别码;3)这有所有插入电脑的不同安卓设备被虚拟为具有同样的VID和PID码,这样使用一个ADB驱动可以识别不同的安卓设备。本专利技术还提供一种另外的安卓设备的识别方法和装置,包括:1)在过滤单元中设置钩子单元,当安卓设备一插上电脑,该过滤单元中的钩子单元启动,该设备被过滤单元接管,并将设备的VID_PID修改为一预定值,随后将该值发送给分发单元;同时,过滤单元读取安卓设备的设备描述符并通知封装单元,从而实现安卓设备驱动程序与接口的对接。2)分发单元收到过滤单元的通知后,分发单元会检查安卓设备的VID_PID是否为所述预定值;如果是,则复制该安卓设备的句柄,发送给服务单元;如果不是,则放弃抓取;3)服务单元收到ADB命令后,通过分发单元发来的句柄,对安卓设备进行操作。进一步地,其中还包括对连接的设备是否为安卓设备的判断过程,如果是安卓设备则进行读取,如果不是,服务单元发送消息给分发单元进而通知过滤单元放弃对设备的抓取。进一步地,其中由封装单元实现所述是否为安卓设备的判断过程。进一步地,其中所述判断是否为安卓设备的方式为具体方式为:检查这个设备的主类是不是OxFF,随后判断子类是不是0x42,如果这两个值都符合标准,就可以认定它是安卓设备,如果任一项不满足则认定不是安卓设备。进一步地,其中如果同时有多个识别程序启动时,则分发单元负责判断哪一助手得到该设备。进一步地,其中当前鼠标或光标当前鼠标在哪个助手程序中,则与哪个设备连。进一步地,其中在所述识别过程中,服务单元同时执行下面步骤:I)进行初始化步骤;2)执行查找设备步骤,并通过全局唯一标识符(GUID)来枚举所有当前的活动接口 ;3)判断这些活动接口中是否有USB接口,如果没有则返回到步骤2)查找下一设备,如果有执行步骤4) ;4)获取每个USB接口信息及设备名称,并判断该设备名称是否存在于ADB传输列表中,如果是,则表明该设备之前已被查找识别过,则返回步骤2)查找下一设备;如果该设备没成不存在于ADB传输列表中,表明该设备为新设备,则执行步骤5) ;5)通过USB接口名称打开USB设备,并将接口名称放入ADB的USB_device_handle结构体中,随后执行步骤6) ;6)进行再次识别,判断设备是否为安卓设备,首先取出设备的VID和PID码,随后判断该VID码是否存在预存的VID列表中,如果存在则说明该设备为安卓设备,随后执行步骤7);如果不存在,则说明该USB设备不是安卓设备,返回步骤2)查找下一设备。7)得到该安卓设备USB设备串号,并注册到ADB传输列表中,随后返回步骤2)查找下一个USB设备。专利技术效果:本专利技术无需给每一安卓设备单独安装驱动,可以适配所有已知的、未知的符合安卓ADB标准的设备,链接成功率高达100%。传统安卓设备助手需要对安卓设备的VID_PID进行匹配,然后必须联网下载对应的驱动安装才能使用。根据每个用户的网络环境,这种方式导致驱动安装时快时慢,如果网络不稳定还会导致安装失败,用户感知度降低。而本专利技术对市面所有安卓设备都大比例兼容,并不需要安装安卓设备驱动,可以无驱链接,提高用户感知度。传统安卓设备助手是在windows复杂的环境下安装驱动,这样导致了有些安卓设备驱动会安装不上,不能共存,并且会导致一些未知的错误发生。还会导致注册表和系统目录下有冗长的驱动信息。我们接管了 windows对USB设备的管理,避开了 windows复杂的环境,提高了 USB设备连接的稳定性。【附图说明】:图1是现有安卓设备助手Adb的流程本文档来自技高网
...

【技术保护点】
一种安卓设备的识别方法,其特征在于:1)在ADB进程中,通过钩子进程接管连接到电脑的所述安卓设备;2)将所述安卓设备的生产厂商ID即VID、产品ID即PID修改为一特定值,VID和PID一起组成所述安卓设备的识别码;3)这有所有插入电脑的不同安卓设备被虚拟为具有同样的VID和PID码,这样使用一个ADB驱动可以识别不同的安卓设备。

【技术特征摘要】

【专利技术属性】
技术研发人员:唐昭妙姜俊庞晨亮
申请(专利权)人:北京鼎开互联信息技术有限公司
类型:发明
国别省市:北京;11

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

1