我希望我的应用能够放弃USB_ACCESSORY_ATTACHED的首选活动状态。
如果我为某些mime类型声明了一个intent过滤器,如下所示:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:scheme="content" />
<data android:mimeType="audio/x-wav" />
</intent-filter>
我可以调用PackageManager#getPreferredActivities(...)
并确认我的活动已成为给定mime类型的默认值。随后调用PackageManager#clearPackagePreferredActivities(getPackageName())
将按预期删除默认值,当用户尝试打开与该mime类型匹配的文件时,将提示用户选择应用程序。
但是,在USB_ACCESSORY_ATTACHED的情况下,intent-filter声明如下,
<intent-filter>
<action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"/>
</intent-filter>
我打电话PackageManager#getPreferredActivities(...)
时没有列出任何内容,尽管我的活动已经成为操作的默认设置(可以在应用程序中确认&gt;默认应用程序&gt;设置为默认值。同样,调用clearPackagePreferredActivities()什么都不做。是否无法清除USB_ACCCESSORY_ATTACHED的默认活动?谢谢!