2012-04-02 4 views
17

Google 뮤직 플레이어 앱에서 내 앱으로 노래를 재생할 수있는 방법이 있습니까? 다음 코드를 시도하지만 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에 대한 문서는 다음 말한다 - 의도를 음악 미디어에 대한 검색을 수행 할 때 자동으로 가능한 결과에서 콘텐츠를 재생할 수 있습니다.

문서에 따르면 노래를 재생할 수 있어야합니다. 그러나 검색 결과 만 열어서 재생하지 않습니다. 여기에 내가 누락 된 아이디어가 있습니까?

도움을 주셔서 감사합니다.

+0

행운이 있나요? –

+0

Google 뮤직에서 '인스턴트 믹스를 준비 할 수 없습니다'와 같은 메시지가 표시됩니까? – Karioki

답변

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); 
+0

장치에 파일의 경로가있는 경우이 옵션이 작동합니다. 하지만 예를 들어 올 액세스 음악에서는 작동하지 않습니다. –

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) { 
} 
+0

이것은 응용 프로그램의 주요 활동을 시작합니다. –

2

아아는, 마지막으로 음악 재생 프로세스의 힙 덤프를 얻어서 그것을 알아 냈다.

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

을 추가해야합니다. 모든 것이 작동합니다. 값은 SearchManager.QUERY 엑스트라와 같아야합니다.