2013-02-09 175 views
2

我试图启动音乐播放器,以便它会启动并立即开始播放第一首歌曲。即时通讯使用意图,但它只是不工作......它说“没有发现处理意图的活动”。启动默认音乐播放器

+0

尝试媒体类型'audio/*' - 这是我使用的,它工作正常。也许没有人将'audio/mp3'注册为特定的MIME类型。 – Squonk 2013-02-09 21:59:11

+0

它也不起作用 – Raz 2013-02-09 22:03:35

+0

什么是'Uri'值? – CommonsWare 2013-02-09 22:55:36

回答

2

为什么不使用android.intent.action.MUSIC_PLAYER

Intent intent = new Intent("android.intent.action.MUSIC_PLAYER"); 
startActivity(intent); 

请注意,这是从API 15,从API向上可以使用android.intent.category.APP_MUSIC弃用。

+0

这个人真的很奇怪,它只启动了一个名为“playerpro”的音乐播放器,所以我从我的手机中删除了playerpro,然后它只是坠毁了 – Raz 2013-02-09 21:59:02

+0

你有没有安装任何其他音乐播放器? – Ahmad 2013-02-09 22:00:13

+0

是的,和playerpro甚至不是默认的 – Raz 2013-02-09 22:01:44

1

行,所以我觉得这个代码,工作

   Intent intent = new Intent(); 
       intent.setAction(android.content.Intent.ACTION_VIEW); 
       File file = new File(songsList.get(0)); 
       intent.setDataAndType(Uri.fromFile(file), "audio/*"); 
       startActivity(intent); 

但事情是,让说,用户点击后退按钮,然后点击音乐播放器的按钮,将重新启动播放器,并开始播放第一首歌再次... 那么我如何才能启动没有任何其他的音乐播放器......?

2
 Intent intent = new Intent(); 
     intent.setAction(android.content.Intent.ACTION_VIEW); 
     File file = new File(AUDIO_PATH); 
     intent.setPackage("com.google.android.music");   
     intent.setDataAndType(Uri.fromFile(file), "audio/*"); 
     mContext.startActivity(intent); 
+3

代码很好,但解释* *更好*。 – Makoto 2013-05-06 02:58:41

0

要启动默认音乐播放器,请尝试使用下面的代码。

try { 
    Intent intent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_MUSIC); 
    getContext().startActivity(intent); 
} catch (Exception e) { 
    Log.d(TAG, "Exception for launching music player "+e); 
}