Android - 使用 Intent 选择要播放的歌曲

Rya*_*yan 4 android action mediastore android-intent

我正在尝试使用 Activity 选择一首歌曲,该 Activity 将提供有关歌曲的元信息。我想这样做而不是一个简单的文件浏览器。我有以下代码,但不幸的是,一旦点击它也会播放这首歌。我只是希望用户能够从他们的歌曲中选择一首歌曲,MediaStore然后在不播放的情况下对其进行操作。

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Squ*_*onk 5

据我所知,您看到的“选择器”是“预览”类型的设计(在我的手机上查看)。

例如,这有点像“选择”铃声……

您会看到一个列表,可以依次选择每个列表以获取“预览”。当您决定您想要的铃声时,您单击确定并返回选择。单击取消只会保留原样(保留现有铃声选择)。

我看不到任何覆盖选择器这种行为的方法,也没有找到任何替代方法(例如 Intent 参数)来实现您想要做的事情。

换句话说,正如我所理解的,您只是希望用户默默地选择一首音乐并将其返回到您的活动,但(预览)选择器不能那样工作。

您可以在用户单击选择器中的“确定”时查看用户预览/选择的内容,但是,如果您使用...

startActivityForResult(intent, 1234);
Run Code Online (Sandbox Code Playgroud)

请注意,1234 只是一个任意代码。

如果您检查返回到 onActivityResult() 的 Intent,它将具有用户在按下 OK 之前选择的音乐的内容 Uri。