gogo专业大尺度亚洲高清人体,美女张开双腿让男生桶,亚洲av无码一区二区三区鸳鸯影院,久久久久国产精品人妻

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Android USB Host與HID 通訊(二)

Android USB Host與HID 通訊(二) 時間:2018-09-20      來源:未知

我們接著上一部分的內容繼續(xù)朝下看,上次我們只是簡單地介紹了一下Android當中USB Host編程的一些基礎知識,了解了幾個常用的類,其實在Android系統(tǒng)中要想通過USB Host與HID通訊,所做的工作的還有很多。

先看看AndroidManifest.xml文件,對于剛接觸好從簡單入手,在AndroidManifest.xml中加上intent-filter過濾器,可以先不做請求權限的處理,因為intent-filter方式可以自動請求權限。

1) 添加USB HOST權限

2)添加意圖過濾器,并配置自己的資源文件指定USB設備的屬性,而資源文件為一個xml文件,如:device_filter.xml

3)對于資源文件device_filter.xml,需要配置設備的product-id 和vendor-id

剩下的就是java代碼,大概步驟包括:枚舉設備->找到設備的接口->連接設備->分配相應的端點->在IN端點進行讀操作,在OUT端點進行寫操作。在此可以不做請求權限處理,因為意圖過濾器已經(jīng)幫我們做了,若要進行動態(tài)請求權限的可以在此基礎上再做擴展。

1)獲取USB管理器,若獲取失敗,return。

mUsbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE); if(mUsbManager == null) {

return;

}

2)枚舉Host上所有的HID設備,存入一個列表,若列表不為空,枚舉到設備,可以用getVendorId()和getProductId()方法獲取到設備的VendorId和ProductId,可繼續(xù)找設備的UsbInterface;若列表為空,未枚舉到設備。

HashMap deviceList = mUsbManager.getDeviceList();

if (!deviceList.isEmpty()) {

for (UsbDevice device : deviceList.values()) {

if(device.getVendorId() == VendorID && device.getProductId()==ProductID) {

mUsbDevice = device;

// 找到Device接口并分配相應端點

findIntfAndEpt();

} else {

oast.makeText(context, "Not find VID and PID",Toast.LENGTH_SHORT).show();

}

}

} else {

new AlertDialog.Builder(context).setTitle("未枚舉到設備!")

.setMessage("請先連接設備,再重啟程序。。")

.setCancelable(false)

.setNeutralButton("確定", new DialogInterface.OnClickListener() {

public voidonClick(DialogInterface dialog, int which) {

//finish();

}

}).show();

}

到此為止,就可以發(fā)現(xiàn)你的HID外設,后面的我們下次再說,主要流程還是:枚舉設備->找到設備的接口->連接設備->分配相應的端點->在IN端點進行讀操作,在OUT端點進行寫操作。

上一篇:關于linux下的xinetd服務

下一篇:ViewPager介紹和使用說明

熱點文章推薦
華清學員就業(yè)榜單
高薪學員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部