Я разрабатываю приложение для Android, чтобы взаимодействовать с пользовательским аксессуаром, используя Moto X 1st-gen и Galaxy S5 для тестирования. На обоих этих телефонах, когда аксессуар подключен, вместо запроса пользователю запустить приложение, он просто отображает серый модальный логотип компании-производителя. Странно то, что если у меня есть несколько приложений, установленных с этим дополнительным фильтром, появляется приглашение на запуск приложения , и если я выберу свое приложение и запустим его в командной строке, он будет работать, как ожидалось. Если я выбираю «всегда запускать», а затем удалять другое приложение, он работает так, как ожидалось. Но если я обновляю приложение, проблема возникает.Android-аксессуар отображает всплеск экрана вместо запуска приложения
Кажется, что я не вижу других случаев возникновения этой проблемы. Я попытался изменить, к какой активности привязан фильтр намерений; не повезло.
Я настроил AndroidManifest так:
<uses-sdk
android:minSdkVersion="17"
android:targetSdkVersion="19" />
<uses-feature android:name="android.hardware.usb.accessory" />
...
<application>
<uses-library android:name="com.android.future.usb.accessory" />
...
<activity
android:name=".activity.AccessoryActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
>
<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>
</application>
И у меня accessory_filter настроить так:
<resources>
<usb-accessory manufacturer="My-Manufacturer" model="My-Model" version="1.0"/>
</resources>