17

有什么方法可以从我的应用开始在 Google 音乐播放器应用中播放歌曲?我正在尝试以下代码,但谷歌音乐播放器只打开搜索结果,并没有真正播放歌曲。

    Intent intent = new Intent();
    intent.setAction(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH);
    intent.putExtra(SearchManager.QUERY, "It's my life");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.setPackage("com.google.android.music");
    activity.startActivity(intent);

INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH 的文档说明如下 - 执行搜索音乐媒体并在可能的情况下自动播放结果中的内容的意图。

因此,根据文档,它应该能够播放这首歌。但是,它只打开搜索结果而不播放它。有什么想法我在这里想念的吗?

谢谢你尽你所能的帮助。

4

3 回答 3

2

啊,终于通过获取 Play Music 进程的堆转储来解决这个问题。您需要添加

intent.putExtra("queryComplete", "It's my life");

一切都会奏效。该值必须与附加值相同SearchManager.QUERY

于 2015-01-05T21:23:32.470 回答
0

我找到了一种方法来做到这一点。

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
File file = new File(YOUR_SONG_URI);  
intent.setDataAndType(Uri.fromFile(file), "audio/*");  
startActivity(intent);
于 2014-12-24T04:48:39.987 回答
0
Intent i;
PackageManager manager = getPackageManager();
try {
i = manager.getLaunchIntentForPackage("com.google.android.music");
if (i == null)
     throw new PackageManager.NameNotFoundException();
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
} catch (PackageManager.NameNotFoundException e) {
}
于 2014-12-30T13:14:34.827 回答