2011-11-16 91 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? –