android– 如何获取已安装的媒体播放器列表

android– 如何获取已安装的媒体播放器列表,第1张

概述在我的应用程序中,我有一个菜单项,我想打开用户首选的媒体播放器,只对音频感兴趣.理想情况下,当用户第一次选择此项时,如果他们只安装了一个,则会选择手机上唯一的媒体播放器,如果他们有一个以上,则为他们提供一个列表.然后,我会保留他们的选择,以便下次打开那个.据我了解,Android

在我的应用程序中,我有一个菜单项,我想打开用户首选的媒体播放器,只对音频感兴趣.理想情况下,当用户第一次选择此项时,如果他们只安装了一个,则会选择手机上唯一的媒体播放器,如果他们有一个以上,则为他们提供一个列表.然后,我会保留他们的选择,以便下次打开那个.

据我了解,Android没有默认的媒体播放器.我有原始的DroID,它有一个媒体播放器,但我知道其他 *** 作符使用自己的,或者用户可以卸载标准的.

我尝试过一些东西,却无法解决任何问题.

我尝试了这个代码,它应该得到一个支持intent的包列表.它适用于“application / pdf”和“vIDeo / *”之类的东西.当我用“audio / *”尝试它时,我得到一个空列表,即使我安装了AndroID媒体播放器和MixZing.也尝试了“媒体/ *”,什么也没得到.

PackageManager packageManager = getPackageManager();Intent testIntent = new Intent(Intent.ACTION_VIEW);testIntent.setType("audio/*");List List = packageManager.queryIntentActivitIEs(testIntent, 0);

我已经看到这个代码工作并使用默认播放器打开音频文件,但我不想打开文件,我只想打开音频应用程序,就像用户从应用程序抽屉打开它一样.

Intent i = new Intent(Intent.ACTION_VIEW);Uri u = Uri.withAppendedpath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,"1"); i.setData(u); startActivity(i); 

我能想到的另一件事就是走出去获取最受欢迎的媒体播放器的包名并硬编码,并搜索手机以查看安装了哪些,但这似乎不是最好的方法.我不明白为什么第一段代码不起作用.可能没有为这些应用程序正确设置intent过滤器,或者我使用了错误的代码或mime类型.

解决方法:

好的,我在这里询问 *** 作系统是否有已安装的音频播放器列表.

Intent intent = new Intent(Intent.ACTION_VIEW);Uri uri = Uri.withAppendedpath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,"1"); intent.setData(uri);List<ResolveInfo> playerList;playerList = packageManager.queryIntentActivitIEs(intent, 0);

然后,对于声称处理音频的手机上的每个应用,将使用ResolveInfo对象填充playerList.从ResolveInfo中,您可以获取包名称以启动活动,您可以获取图标和应用程序名称.我用它来填充一个自定义对话框,该对话框的外观和行为类似于选择要启动的活动的股票AndroID对话框.我还可以选择让用户将所选应用程序设置为默认值.

这并不完美.您受 *** 作系统和应用程序的意图过滤器的支配.我用几部手机尝试了这个并且以下应用程序正确显示:原始DroID的股票媒体播放器,HTC手机的股票媒体播放器,doubleTwist和MixZing.但是,我安装了Zimly并没有显示出来.我怀疑他们的意图过滤器没有设置音频.

我还担心MediaStore.Audio.Media.INTERNAL_CONTENT_URI可能没有任何音频.我在重新启动后立即尝试了此代码并且可以正常工作.我没有在没有安装用户媒体的手机上试过它.

总结

以上是内存溢出为你收集整理的android – 如何获取已安装的媒体播放器列表全部内容,希望文章能够帮你解决android – 如何获取已安装的媒体播放器列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存