Итак, я работаю над простым музыкальным плеером. Музыкальный проигрыватель, как он называет состояния, может воспроизводить песню, приостанавливать воспроизведение, переходить к следующей песне, вернуться к предыдущей песне и полностью остановить воспроизведение. Когда вы воспроизводите песню, будет отображаться уведомление с именем исполнителя и названием песни; это уведомление также имеет три кнопки (Действия): Стоп, Пауза a Next.
У меня возникают проблемы с тем, что при нажатии на любое действие происходит управление воспроизведением, связанное с действием, и я не знаю, как это сделать. Я искал уведомление на Android: http://developer.android.com/guide/topics/ui/notifiers/notifications.html, но он не уточняет или не содержит слишком много информации об уведомлениях.
Вот пример простого действия (которое должно быть связано с кнопкой "Далее", нажмите на уведомление: Примечание:. Все приведенные ниже коды написаны в следующем пакете: com.deadpixels.light.player, и действие называется: PlayerActivity
public void nextSong() {
if (position == songs.size() -1) {
Toast.makeText(this, "No more songs on queue", Toast.LENGTH_SHORT).show();
if(mPlayer.isPlaying()) {
return;
}
else {
buttonPlay.setImageResource(R.drawable.button_play);
}
return;
}
else {
position++;
playSong(songs.get(position));
}
}
Вот что я пытался сделать:
Intent nextIntent = new Intent(KEY_NEXT);
PendingIntent nextPendingIntent = createPendingResult(0, nextIntent, 0);
Где действие для NextIntent:
public static final String KEY_NEXT = "com.deadpixels.light.player.PlayerActivity.nextSong";
а затем добавьте это в уведомление через addAction():
mBuilder.addAction(R.drawable.not_action_next, "Next", nextPendingIntent);
Вы, ребята, знаете, что еще я мог попробовать? Используя то, что я объяснял выше, ничего не делает, появляется уведомление и имеет три кнопки действий, но щелчок по ним ничего не делает для меня.
В какой-то момент я подумал, может быть, если бы я добавил фильтры намерений с именами действий, но потом я подумал, что они все в одном пространстве имен, почему я должен?