亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種安卓設(shè)備的識別方法和裝置的制造方法_3

文檔序號:9349881閱讀:來源:國知局
。
[0067]S08:進(jìn)行再次識別,判斷設(shè)備是否為安卓設(shè)備,首先取出設(shè)備的VID和PID碼,隨后判斷該VID碼是否存在預(yù)存的VID列表中,如果存在則說明該設(shè)備為安卓設(shè)備,隨后執(zhí)行步驟S09,如果不存在,則說明該USB設(shè)備不是安卓設(shè)備,可能是U盤等存儲設(shè)備或其他設(shè)備,隨后返回步驟S02查找下一設(shè)備。
[0068]S09:得到該安卓設(shè)備USB設(shè)備串號,并注冊到Adb傳輸列表中,隨后返回步驟S02查找下一個USB設(shè)備。
[0069]—旦USB設(shè)備被注冊到Adb傳輸列表中,用戶在控制臺輸入命令A(yù)db devices,服務(wù)單元DKAdbWinApi會把命令發(fā)到USB設(shè)備中,然后并讀取USB設(shè)備的信息,并且把返回信息顯示在控制臺中。
[0070]下面結(jié)合圖2、3,舉例說明設(shè)備的具體識別過程。
[0071]啟動ADB服務(wù),服務(wù)單元會循環(huán)執(zhí)行圖3中的各個步驟,假如在某一時間,安卓設(shè)備A連接到某一接口,則在下一循環(huán)中找到它,并獲取該接口及安卓設(shè)備A的信息。隨后判斷安卓設(shè)備A的串號是否存在于ADB傳輸列表中。如果該安卓設(shè)備A之前已經(jīng)被識別過,即存在于ADB傳輸列表中,不用繼續(xù)進(jìn)行識別,此時服務(wù)單元DKAdbWinApi就可發(fā)送讀取命令來讀取設(shè)備。
[0072]如果該安卓設(shè)備名稱不存在于ADB傳輸列表中,即之前未被識別過,則判斷其是否為安卓設(shè)備,通過檢查其VID是否存在于預(yù)存的VID列表中,如果是,則證明其為安卓設(shè)備,隨后將其串號放入Adb傳輸列表中,此后服務(wù)單元DKAdbWinApi也可通過發(fā)送讀取命令來讀取設(shè)備,如果不存在于預(yù)存的VID列表中,則證明該設(shè)備不是安卓設(shè)備,程序返回并查找下一設(shè)備。
[0073]在上述步驟的同時,安卓設(shè)備A —插上電腦,會被過濾單元DKHcmon接管,并將其VID_PID修改為特定的值(例如,0D4B&0002),并將該VID_PID通知分發(fā)單元DKUSBArb。同時過濾單元DKHcmon會將安卓設(shè)備A的描述符發(fā)送給封裝單元DKVMUsb,進(jìn)而實現(xiàn)接口的對接。
[0074]隨后分發(fā)單元DKUSBArb將安卓設(shè)備A的句柄發(fā)送給服務(wù)單元DKAdbWinApi。
[0075]此時,如果輸入了 Adb devices命令。服務(wù)單元DKAdbWinApi隨后利用設(shè)備的句柄通過封裝單元DKVMUsb與安卓設(shè)備A進(jìn)行通信。
[0076]如果連接的是非安卓設(shè)備B,則在附圖3步驟S08執(zhí)行再次識別時,通過預(yù)存的VID列表,能判斷出該設(shè)備B不是安卓設(shè)備,停止識別,并返回進(jìn)行下一設(shè)備的查找進(jìn)程。
[0077]同時,過濾單元DKHcmon截取該設(shè)備并修改其VID_PID并通知分發(fā)單元DKUSBArb后,分發(fā)單元DKUSBArb會將設(shè)備B的句柄發(fā)送給服務(wù)單元DKAdbWinApi。
[0078]封裝單元DKVMUsb會發(fā)現(xiàn)該USB設(shè)備的主類(Base Class)和或子類(Subclass)不是規(guī)范值,繼而認(rèn)定它不是安卓設(shè)備,封裝單元DKVMUsb會通過服務(wù)單元DKAdbWinApi給過濾單元DKHcmon發(fā)送IRQ消息,告訴過濾單元DKHcmon該設(shè)備不是安卓設(shè)備,隨后過濾單元DKHcmon中的鉤子進(jìn)程就會放棄對設(shè)備B的抓取。同時過濾單元DKHcmon會將設(shè)備B的VID_PID修改為原始的字符串。
[0079]綜上,無論是什么品牌類型的安卓設(shè)備,無論其實際VID和PID為何不同字符串,通過本發(fā)明中流程,可以通過修改VID_PID為指定的值,而在后續(xù)識別中可被簡單識別和連接,而不必接入不同的安卓設(shè)備時安裝不同的Adb驅(qū)動程序。
[0080]而且無論是360還是騰訊或者豌豆莢等任何安卓設(shè)備助手(手機(jī)助手),其連接本發(fā)明的識別模塊后,它們的主程序不需要任何修改,程序會以為執(zhí)行的是它們自己的助手程序,而實際中,按照本發(fā)明的識別方法進(jìn)行了識別。因此,本發(fā)明的識別方法及裝置應(yīng)用非常廣泛。
[0081]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。此外,盡管本說明書中使用了一些特定的術(shù)語,但這些術(shù)語僅僅是為了方便說明,并不對本發(fā)明構(gòu)成任何限制。
【主權(quán)項】
1.一種安卓設(shè)備的識別方法,其特征在于: 1)在ADB進(jìn)程中,通過鉤子進(jìn)程接管連接到電腦的所述安卓設(shè)備; 2)將所述安卓設(shè)備的生產(chǎn)廠商ID即VID、產(chǎn)品ID即PID修改為一特定值,VID和PID一起組成所述安卓設(shè)備的識別碼; 3)這有所有插入電腦的不同安卓設(shè)備被虛擬為具有同樣的VID和PID碼,這樣使用一個ADB驅(qū)動可以識別不同的安卓設(shè)備。2.—種安卓設(shè)備的識別方法,其特征在包括: 1)在過濾單元中設(shè)置鉤子單元,當(dāng)安卓設(shè)備一插上電腦,該過濾單元中的鉤子單元啟動,該設(shè)備被過濾單元接管,并將設(shè)備的VID_PID修改為一預(yù)定值,隨后將該值發(fā)送給分發(fā)單元;同時,過濾單元讀取安卓設(shè)備的設(shè)備描述符并通知封裝單元,從而實現(xiàn)安卓設(shè)備驅(qū)動程序與接口的對接; 2)分發(fā)單元收到過濾單元的通知后,分發(fā)單元會檢查安卓設(shè)備的VID_PID是否為所述預(yù)定值;如果是,則復(fù)制該安卓設(shè)備的句柄,發(fā)送給服務(wù)單元;如果不是,則放棄抓取; 3)服務(wù)單元收到ADB命令后,通過分發(fā)單元發(fā)來的句柄,對安卓設(shè)備進(jìn)行操作。3.如權(quán)利要求2所述的識別方法,其特征在于,還包括對連接的設(shè)備是否為安卓設(shè)備的判斷過程,如果是安卓設(shè)備則進(jìn)行讀取,如果不是,服務(wù)單元發(fā)送消息給分發(fā)單元進(jìn)而通知過濾單元放棄對設(shè)備的抓取。4.如權(quán)利要求3所述的識別方法,其特征在于,由封裝單元實現(xiàn)所述是否為安卓設(shè)備的判斷過程。5.如權(quán)利要求4所述的識別方法,其特征在于:所述判斷是否為安卓設(shè)備的方式為具體方式為:檢查這個設(shè)備的主類是不是OxFF,隨后判斷子類是不是0x42,如果這兩個值都符合標(biāo)準(zhǔn),就可以認(rèn)定它是安卓設(shè)備,如果任一項不滿足則認(rèn)定不是安卓設(shè)備。6.如權(quán)利要求1-5任一項所述的識別方法,其特征在于:如果同時有多個識別程序啟動時,則分發(fā)單元負(fù)責(zé)判斷哪一助手得到該設(shè)備。7.如權(quán)利要求6所述的識別方法,其特征在于,當(dāng)前鼠標(biāo)或光標(biāo)當(dāng)前鼠標(biāo)在哪個助手程序中,則與哪個設(shè)備連。8.如權(quán)利要求1-7所述的識別方法,其特征在于:在所述識別過程中,服務(wù)單元同時執(zhí)行下面步驟: 1)進(jìn)行初始化步驟; 2)執(zhí)行查找設(shè)備步驟,并通過全局唯一標(biāo)識符(GUID)來枚舉所有當(dāng)前的活動接口; 3)判斷這些活動接口中是否有USB接口,如果沒有則返回到步驟2)查找下一設(shè)備,如果有執(zhí)行步驟4); 4)獲取每個USB接口信息及設(shè)備名稱,并判斷該設(shè)備名稱是否存在于ADB傳輸列表中,如果是,則表明該設(shè)備之前已被查找識別過,則返回步驟2)查找下一設(shè)備;如果該設(shè)備沒成不存在于ADB傳輸列表中,表明該設(shè)備為新設(shè)備,則執(zhí)行步驟5); 5)通過USB接口名稱打開USB設(shè)備,并將接口名稱放入ADB的USB_device_handle結(jié)構(gòu)體中,隨后執(zhí)行步驟6); 6)進(jìn)行再次識別,判斷設(shè)備是否為安卓設(shè)備,首先取出設(shè)備的VID和PID碼,隨后判斷該VID碼是否存在預(yù)存的VID列表中,如果存在則說明該設(shè)備為安卓設(shè)備,隨后執(zhí)行步驟7);如果不存在,則說明該USB設(shè)備不是安卓設(shè)備,返回步驟2)查找下一設(shè)備; 7)得到該安卓設(shè)備USB設(shè)備串號,并注冊到ADB傳輸列表中,隨后返回步驟2)查找下一個USB設(shè)備。9.一種安卓設(shè)備的識別裝置,其特征在于,包括: 1)過濾單元,其中設(shè)置鉤子單元,當(dāng)安卓設(shè)備一插上電腦,該過濾單元中的鉤子單元啟動,該設(shè)備被過濾單元接管,并將設(shè)備的VID_PID修改為一預(yù)定值,隨后將該值發(fā)送給分發(fā)單元;同時,過濾單元讀取安卓設(shè)備的設(shè)備描述符并通知封裝單元,從而實現(xiàn)安卓設(shè)備驅(qū)動程序與接口的對接; 2)分發(fā)單元,其收到過濾單元的通知后,分發(fā)單元會檢查安卓設(shè)備的VID_PID是否為所述預(yù)定;如果是,則復(fù)制該安卓設(shè)備的句柄,發(fā)送給服務(wù)單元;如果不是,則放棄抓??; 3)服務(wù)單元,其收到ADB命令后,通過分發(fā)單元發(fā)來的句柄,對安卓設(shè)備進(jìn)行操作。10.如權(quán)利要求10所述的識別裝置,其特征在于,還包括對連接的設(shè)備是否為安卓設(shè)備的判斷過程,如果是安卓設(shè)備則進(jìn)行讀取,如果不是,服務(wù)單元發(fā)送消息給分發(fā)單元進(jìn)而通知過濾單元放棄對設(shè)備的抓取。11.如權(quán)利要求10所述的識別裝置,其特征在于,由封裝單元實現(xiàn)所述是否為安卓設(shè)備的判斷過程。
【專利摘要】本發(fā)明公開了一種安卓設(shè)備的識別方法和裝置,其中,在ADB進(jìn)程中,通過鉤子進(jìn)程接管安卓設(shè)備,并將該安卓設(shè)備的VID和PID修改為一特定值,VID和PID一起組成安卓設(shè)備的識別碼,所有的安卓設(shè)備被虛擬為具有同樣的VID和PID碼,這樣使用一個ADB驅(qū)動可以識別不同的安卓設(shè)備。
【IPC分類】G06F13/10
【公開號】CN105068946
【申請?zhí)枴緾N201510500423
【發(fā)明人】唐昭妙, 姜俊, 龐晨亮
【申請人】北京鼎開互聯(lián)信息技術(shù)有限公司
【公開日】2015年11月18日
【申請日】2015年8月14日
當(dāng)前第3頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1