Приложение не запускается при использовании библиотеки `com.android.future.usb.accessory`

Я следую это руководство, чтобы использовать библиотеку com.android.future.usb в API 10.

Я сделал следующее:

  • Установленные API Google 10 из диспетчера SDK: GoogleAPI10
  • Выберите Google API 10 как мою цель сборки проекта: ProjectTarget
  • Добавили их в manifest:

<uses-feature android:name="android.hardware.usb.accessory" /> (прямой дочерний элемент <manifest>)

<uses-library android:name="com.android.future.usb.accessory" /> (дочерний элемент <application>)

<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" android:resource="@xml/accessory_filter" /> (ребенок первого activity)

  • Создал res/xml/accessory_filter.xml, как упоминалось здесь.

Это позволило мне использовать com.android.future.usb и его подклассы. Но проблема в том, что приложение не будет запускаться после изменений в manifest.

Это корневое устройство, и это приложение настраивается ОС для автоматического запуска при запуске устройства.

Должны ли я делать какие-либо другие настройки, чтобы сделать эту работу? Может быть, что-то должно быть сделано в прошивке?

изменить

Здесь logcat со всем, относящимся к usb:

USB mass storage support is not enabled in the kernerl
usb_configuration switch is not enabled in the kernerl
Volume usb state changing -1 (Initializing) -> 0 (No-Media)
Ignoring unknown switch 'usb_connected'
Package com.example.gui requires unavailable shared library com.android.future.usb.accessory: failing!
Skipping unknown volume '/mnt/usb'
USB Service
This kernel does not have USB configuration switch support

Ответы

Ответ 1

Не понятно, что вы подразумеваете под the application won't start.

Если вы ожидаете, что приложение запустится automatically on device startup. У этого есть инструкции для этого: Как запустить приложение при запуске?

Если проблема заключается в том, что приложение не будет компилироваться, потребуется дополнительная информация об обнаруженной ошибке.

Вы упомянули, что вы внесли изменения в манифест на указанную вами ссылку. Этот пример также включает тег intent-filter для элемента активности в манифесте, о котором вы не упомянули. Таким образом, элемент активности в манифесте будет иметь два фильтра-намерения:

        <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar" >
        <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_ACCESSORY_ATTACHED" />
        </intent-filter>

        <meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
                   android:resource="@xml/accessory_filter" />

    </activity>

Итак, ваше приложение не запускается из-за того, что вы удалили фильтр намерений MAIN/LAUNCHER из манифеста активности?