Google Play音乐不再出现在INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH
意图的“使用完整操作”列表中。我知道这曾经用于2.3和Pandora和Spotify仍然出现。以前有人遇到过这个问题吗?
Intent intent = new Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH);
intent.putExtra(SearchManager.QUERY, artistName);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
窥视音乐apk,我仍然认为活动仍然存在于intent-filter中的正确操作,但看起来他们错过了blog post announcing this feature中原始发布的类别默认值
<activity android:name="com.google.android.music.VoiceActionsActivity" android:exported="true" android:process=":ui" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH" />
</intent-filter>
</activity>
答案 0 :(得分:2)
我找到了一个解决方法:可以手动将Intent的ClassName设置为VoiceActionsActivity,如下所示:
Intent intent = new Intent();
intent.setClassName("com.google.android.music","com.google.android.music.VoiceActionsActivity");
intent.setAction(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH);
intent.putExtra(SearchManager.QUERY, "chromeo - fancy footwork");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Google音乐显然仍然不会出现在选择器对话框中,但您可以添加一个可以打开Google音乐的自定义按钮。
编辑:这实际上是可行的,请看这个问题:add or remove options from createChooser但是,这将从应用程序中删除“设置默认”按钮,所以它不是很完美。另一个选择是使用getPackageManager().queryIntentActivities()
构建您自己的选配器。