2011-04-08 2 views
3

음악에 대한 메타 정보를 제공하는 활동을 사용하여 노래를 선택하려고합니다. 나는 이것을 단순한 파일 브라우저 대신에하고 싶다. 다음 코드는 있지만 불행히도 한 번 클릭하면 재생됩니다. 간단히 말해서 사용자가 MediaStore에서 노래를 선택하고 나중에 연주하지 않아도되도록 할 수 있습니다.Android - 인 텐트를 사용하여 재생할 곡 선택

public class Main extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Intent intent = new Intent(); 
     intent.setAction(android.content.Intent.ACTION_PICK); 
     intent.setData(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI); 
     startActivity(intent); 
    } 
} 

답변

4

는 지금까지 내가 말할 수있는, 당신이보고있는 '피커'(내 전화에 그것을보고) 디자인의 '미리보기'유형입니다.

당신은 목록을 확인하고 '미리보기'를 얻을 수 차례에 각 하나를 선택할 수 있습니다 ... 예를 들어, 벨소리를 '따기'같은 비트입니다. 원하는 벨소리를 결정하면 확인을 클릭하면 선택 항목이 반환됩니다. 취소를 클릭하면 기존의 벨소리 선택 사항이 그대로 유지됩니다.

피커의이 동작을 재정의하는 방법을 볼 수 없으며 수행하려는 작업을 수행하기 위해 다른 방법 (예 : 의도 매개 변수)을 찾지 못했습니다.

즉, 내가 알기에 사용자가 조용히 음악을 선택하여 활동으로 돌아가지만 (미리보기) 선택기가 그런 식으로 작동하지 않기를 바랄뿐입니다.

당신은 1234 그냥 임의의 코드

startActivityForResult(intent, 1234); 

참고 ... 사용자들은 그러나 피커에서 확인을 클릭 할 때 사용하는 경우, 선택/미리 무엇을 찾을 수 있습니다.

onActivityResult()로 반환 된 인 텐트를 확인하면 OK를 누르기 전에 사용자가 선택한 음악의 콘텐츠 Uri를 갖게됩니다.

+0

피커가 아니기 때문에 활동을 선택할 수 있습니다. http://developer.android.com/reference/android/content/Intent.html#ACTION_CHOOSER – Ryan

+0

@ 라이언 : 예,하지만 질문에 다음과 같이 설명되어 있습니다. "가능한 가장 자연스러운 미디어 브라우저를 사용하여 노래를 선택하려고합니다. ". 그것은 실제로 명확하지도 않고 코드도 아닙니다. 더 설명하면 도움이 될 것입니다. – Squonk

+0

사용자가 노래를 선택하게하려고합니다. 액티비티 선택 항목이 없어도 재생하지 않고 MediaStore에서 곡을 선택하면됩니다. – Ryan

관련 문제