先看看问题:
android.provider.cts.MediaStoreIntentsTest#testPickAudioDir junit.framework.AssertionFailedError: No ResolveInfo found for Intent { act=android.intent.action.Pick dat=content://media/extermernal/audio/media}
android.provider.cts.MediaStoreIntentsTest#testViewAudioFile junit.framework.AssertionFailedError: No ResolveInfo found for Intent { act=android.intent.action.VIEW dat=http://example.com... typ=audio/mpeg }
CTS测试失败项:意思是没有应用能处理这个Intent,我的项目是音乐播放器,所以是针对MediaStore进行测试,结果有这2个失败项,原因是没有在Manifest中配置这两个Intent-filter。
解决办法:在你的启动项Activity过滤这两个Intent,问题就解决啦.
<intent-filter>
<action
android:name="android.intent.action.PICK" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.OPENABLE" />
<data
android:mimeType="vnd.android.cursor.dir/audio" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.VIEW" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="http" />
<data
android:mimeType="audio/*" />
<data
android:mimeType="application/ogg" />
<data
android:mimeType="application/x-ogg" />
<data
android:mimeType="application/itunes" />
</intent-filter>