如何制作用于播放MP3文件的intent-filter?

时间:2013-02-04 07:17:08

标签: android intentfilter audio-player android-music-player

我在Android中创建了一个音乐播放器应用程序。现在,当在手机的文件管理器中选择音乐文件时,我希望我的应用程序显示为“使用完整操作”弹出窗口中的一个选项。我的想法是使用意图过滤器来做到这一点,但我不知道我需要提供什么动作,类别或数据。如何为此创建一个intent过滤器?

我在这里也看到了一个相关的问题:How do I make an intent-filter for streaming an MP3 file?但我的不是流媒体,我只是从文件播放音乐。

提前谢谢。

3 个答案:

答案 0 :(得分:5)

希望这个意图过滤器可以帮助你

<intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="content"/>
        <data android:scheme="file"/>
        <data android:mimeType="audio/*"/>
    </intent-filter>

答案 1 :(得分:0)

希望此Intent过滤器可以帮助您

        <activity android:name="AudioPlayerActivity">
             <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="http" />
            <data android:scheme="content" />
            <data android:scheme="file" />
            <data android:mimeType="audio/*" />
            <data android:mimeType="application/ogg" />
            <data android:mimeType="application/x-ogg" />
            <data android:mimeType="application/itunes" />
        </intent-filter>
      <activity/>

答案 2 :(得分:0)

你可以通过将这个乐趣设置为 edittext change 来实现,它对我来说很好:)

编辑文本更改:

   binding.etSearch.addTextChangedListener(object : TextWatcher {
        override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {

        }

        override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
            onQueryTextChange(s.toString())
        }

        override fun afterTextChanged(s: Editable?) {

        }
    })

搜索过滤功能:

   fun onQueryTextChange(newText: String){
    val folder = intent.getSerializableExtra("folder") as Folder
    val userInput = newText.toLowerCase()
    val myFiles = ArrayList<ModelAudio>()
    for (song in folder.musicList) {
        if (song.audioTitle!!.toLowerCase().contains(userInput)){
            myFiles.add(song)
        }
    }
    adapter.differ.submitList(myFiles)
}