2013-12-22 8 views
1

Я хочу, чтобы музыкальный плеер по умолчанию Android начал играть. Я использовал этот код, чтобы сделать это:Невозможно запустить музыкальный плеер для Android по умолчанию с startacrtivity

if (((AudioManager) context 
    .getSystemService(context.AUDIO_SERVICE)).isMusicActive()) { 
      // pause 
      Intent i = new Intent("com.android.music.musicservicecommand"); 
      i.putExtra("command", "pause"); 
      context.sendBroadcast(i); 
} else { 
     // play 
     Intent i = new Intent("com.android.music.musicservicecommand"); 
     i.putExtra("command", "play"); 
     context.sendBroadcast(i); 
} 

Он отлично работает, когда музыкальный плеер приложение работает на переднем или заднем плане, в противном случае нет.

Так что я использовал это в другое заявление, чтобы запустить его:

Intent intent = new Intent("android.intent.category.APP_MUSIC"); 
inintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(in); 

Но он не работает и приложение падает. Мне нужно использовать разрешение для этого? Если да, то какое разрешение? Если нет, в чем проблема?

Вот StackTrace:

D/AudioManager(20102): isMusicActive()? --> false 
W/CpuWake ( 185): >>acquireCpuPerfWakeLock! 
W/CpuWake ( 185): <<acquireCpuPerfWakeLock! 
I/ActivityManager( 185): START intent from pid 20102 
W/System.err(20102): android.content.ActivityNotFoundException: No Activity found to handle Intent 
{ act=android.intent.category.APP_MUSIC flg=0x10000000 } 

Редактировать: Вопрос обновлен

ответ

0

Это решаемая задача:

i = new Intent(Intent.ACTION_VIEW); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
Uri u = Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,"1"); 
context.startActivity(i); 

Кроме того, это не зависит от имени пакета музыкального плеера и работает на все устройства.

0

Используйте это для апи ниже 15

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

и позже использовать android.intent.category.APP_MUSIC.

Попробуйте это com.android.music.MediaPlaybackActivity

где com.android.music это название пакета в плеере умолчанию используется именно устройство ICS 4.0.4

+0

Не работает, приложение по-прежнему падает, когда оно пытается запустить музыкальный плеер. – Mehrdad

+0

Можете ли вы опубликовать stacktrace –

+0

stacktrace добавил. – Mehrdad

Смежные вопросы