Android 附件显示启动画面而不是启动应用

Android accessory displays splash screen instead of launching app

我正在开发一个 Android 应用程序来连接自定义配件,使用第一代 Moto X 和 Galaxy S5 进行测试。在这两款手机上,当配件连接时,它不会提示用户启动应用程序,而是简单地显示带有配件公司徽标的灰色模式。奇怪的是,如果我用这个附件过滤器安装了多个应用程序,启动应用程序提示 弹出,如果我 select 我的应用程序并通过提示,它按预期工作。如果我 select 'always launch' 然后卸载其他应用程序,它会按预期工作。但是,如果我更新应用程序,问题又会出现。

我似乎找不到发生此问题的任何其他实例。我试过更改 intent-filter 绑定的 Activity;运气不好。

我已经像这样配置了 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>

出现这种行为似乎是因为我在可绘制文件夹中使用了一个大的 PNG (671x725) 作为应用程序图标。当我开始以适当的 dpi 大小创建单个图标时,问题就消失了。我不知道为什么图标大小会对 OS 在配件连接上启动应用程序的能力有任何影响,但你去吧。