2

我正在为我的 android 应用程序使用 USB 主机 API。我的代码遵循开发人员站点中的要求。现在我遇到了问题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)

这是真的,但我怎么把它变成intin <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>
4

2 回答 2

3

供应商和产品 ID 必须是整数,但您传递的是十六进制值。您可以简单地将十六进制转换为整数表示。请参阅此链接。以下是转换:

03eb -> 1003

6201 -> 25089

于 2013-10-17T00:53:23.463 回答
0

您可以使用适当的符号传递十六进制数:

<resources>
    <usb-device vendor-id="0x03eb" product-id="0x6201" />
</resources>
于 2021-09-01T11:27:24.193 回答