2011-11-16 82 views
3

在這個網站,我們發現相關信息有關框架的使用方法:(我們決定採用Android 2.3)嘗試使用com.android.future.usb.UsbAccessory&UsbManager命名空間

http://developer.android.com/guide/topics/usb/accessory.html

com.android.future.usb:爲了支持Android 2.3.4中的USB配件模式,Google APIs附件庫包含backported USB附件API,它們包含在此命名空間中。 Android 3.1還支持導入和調用此名稱空間內的類,以支持使用附加庫編寫的應用程序。此附加庫是圍繞android.hardware.usb附件API的薄包裝,不支持USB主機模式。如果您想要支持支持USB配件模式的最廣泛設備,請使用附加庫並導入此軟件包。需要注意的是,並非所有Android 2.3.4設備都需要支持USB附件功能。每個設備製造商決定是否支持該功能,這就是爲什麼您必須在清單文件中聲明它的原因。

此外,根據選擇正確的USB附件API的它說你應該使用Android 2.3.4或Android 3.1的API部分

我們正試圖在基本測試程序中使用以下代碼來查看我們是否可以連接到Sumsung Droid手機上的USB設備。

C#代碼:

UsbManager deviceManager = null; 
UsbAccessory[] accessories = null; 
UsbAccessory accessory = null; 

我們試圖#使用Android.Hardware;在VS 2010.

1)這可能嗎? 2)你如何訪問Android的USB命名空間?

我們有很多C#代碼,我們希望重用,因此用Java編寫應用程序不是我們的首選。有任何想法嗎?謝謝!

+0

需要C#Pinvoke? –

回答

0

看看MonoDroid API,它看起來像你需要Android.Hardware.Usb命名空間。這裏是我找到API參考的鏈接。我還沒有測試過它。

http://docs.xamarin.com/android/api

+0

Android.Hardware.Usb命名空間支持與連接到Android設備的USB硬件外圍設備進行通信...如果Android設備作爲USB主機,請使用UsbDevice與硬件外圍設備進行通信。如果外設用作USB主機,則使用UsbAccessory。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~不幸的是,C#在Hardware命名空間之後不允許.Usb。我們也嘗試過這種方式。** –

+0

這也許還有一些好處:VS 2010只允許選擇框架(Android 1.6,2.1,2.2和2.3)......如果需要3或4,我們不能想出一個辦法來提高這個更高的。 –

+0

所以你使用Mac? –