我在Android中创建了一个音乐播放器应用程序。现在,当在手机的文件管理器中选择音乐文件时,我希望我的应用程序显示为“使用完整操作”弹出窗口中的一个选项。我的想法是使用意图过滤器来做到这一点,但我不知道我需要提供什么动作,类别或数据。如何为此创建一个intent过滤器?
我在这里也看到了一个相关的问题:How do I make an intent-filter for streaming an MP3 file?但我的不是流媒体,我只是从文件播放音乐。
提前谢谢。
答案 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)
}