17

アプリから Google ミュージック プレーヤー アプリで曲の再生を開始する方法はありますか? 次のコードを試していますが、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 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 に答える
0

これを行う1つの方法を見つけました。

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 に答える