2011-08-04 8 views
4

私は、USBポートをスキャンし、接続されたデバイスの基本情報を表示するための基本的なアクティビティを書こうとしました。私は具体的には、デバイスクラスを読むことに興味があり、私はUsbDevice.getDeviceClass()メソッドが意図していると信じています。予想通りAndroid SDK:USBデバイスのクラスを読むには?

HashMap<String, UsbDevice> deviceList = findUsbDevices(); 
    Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); 
    if (deviceIterator.hasNext()) 
    { 
     UsbDevice device = deviceIterator.next(); 
     String name = device.toString(); 
     String cls = Integer.toString(device.getDeviceClass()); 
     displayDeviceInfo(name, cls); 
    } 

はしかし、それは私が接続する任意のデバイスのために0を与え、機能しません。ここでは次のようになります。サブクラスやプロトコルのようなUsbDeviceオブジェクトの他の多くのフィールドも0です。デバイスクラスを取得するにはどうしたらいいですか?

答えて

3

USBクラスは、デバイスではなくインターフェイスの属性です。反復するインターフェイスは、期待通りに機能します。

int count = device.getInterfaceCount(); 
for (int i = 0; i < count; i++) 
{ 
    UsbInterface iface = device.getInterface(i); 
    int cls = iface.getInterfaceClass(); 
} 
関連する問題