我正在为我的Android应用程序使用USB主机API。我的代码遵循开发人员site中的要求。现在我在device_filter.xml
上遇到问题,Android无法将vendor-id="03eb"
识别为int
它给了我这个警告:
W/UsbSettingsManager( 1455): java.lang.NumberFormatException: Invalid int: "03eb"
W/UsbSettingsManager( 1455): at java.lang.Integer.invalidInt(Integer.java:138)
W/UsbSettingsManager( 1455): at java.lang.Integer.parse(Integer.java:375)
这是事实,但如何将其变为int
中的<usb-device vendor-id="03eb"
?
AndroidManifest.xml文件:
<activity
android:name="com.example.usb.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>
在device_filter.xml
中<resources>
<usb-device vendor-id="03eb" product-id="6201" />
</resources>
答案 0 :(得分:3)
供应商和产品ID必须是整数,但您传递的是十六进制值。您只需将十六进制转换为整数表示即可。 See this link.以下是转化次数:
03eb - &gt; 1003
6201 - &gt; 25089