W serii „Twoja aplikacja” będę pokazywał, w jaki sposób stworzyć aplikację kompletną wraz z najważniejszymi komponentami. Taka aplikacja będzie posiadać wszystkie podstawowe rzeczy, która powinna mieć. Seria będzie podzielona na części, a każda część będzie zawierać poszczególne zagadnienie.

W tej serii stworzymy aplikację do odtwarzania muzyki wraz z najważniejszymi komponentami.

  1. Część 1: MediaSession i MediaController
  2. Cześć 2: AudioFocus
  3. Cześć 3: Powiadomienia

Wiesz już czym jest MediaSsesion, MediaController AudioFocus. Cała aplikacja nie byłaby kompletna bez powiadomień. W tym wpisie własnie zajmiemy się tym zagadnieniem.

1. Kod klasy powiadomień.

Stwórz klasę podobną do tej:

W klasie z serwisem (w naszym przypadku to PlayerService) w metodzie onCreate() dodaj:

W klasie MediaSessionHelper w poszczególnych metodach onPlay() / onStop() itp. dodaj wpis:

2. Wyjaśnienie powiadomień.

W metodzie updateNotification() wyświetlamy powiadomienia w zależności od stanu odtwarzania. Nas głównie interesuje metoda createNotification() w której wszystko się dzieje.

W androidzie Oreo wprowadzono kanały powiadomień. Wszystkie powiadomienia muszą być przypisane do kanału. Dla każdego kanału możesz ustawić wizualne i dźwiękowe zachowania powiadomień. Użytkownik może zmieniać te ustawienia i zdecydować, w jaki sposób powiadomienia mają się zachowywać w danym kanale. Po utworzeniu kanału powiadomień nie można zmienić zachowań. Jedynym sposobem, aby zmienić zachowania powiadomień to zmiana nazwy i opisu kanału. Jeśli utworzysz powiadomienie na Androidzie 8.0 bez określania kanału, powiadomienie nie pojawi się, a system zarejestruje błąd. W naszym przypadku aplikacja do odtwarzania muzyki nie potrzebuje specjalnych zachowań, dlatego wystarczy nazwa, opis i priorytet, który mówi, że powiadomienia ma się pojawić bez dźwięków i wibracji. Więcej o kanałach możesz przeczytać tutaj.

Następnie budujemy powiadomienie o następujących atrybutach. W metodzie addActions() dodajemy przyciski które chcemy aby pokazały się w powiadomieniach. U nas wystarczą tylko trzy. Klasa MediaStyle jest specjalnie stworzona dla powiadomień aplikacji multimedialnych, warto w tym przypadku skorzystać. Związku z tym w atrybucie setStyle mamy następujące opcje:

  • setShowActionsInCompactView – która ikona ma pokazać się gdy jest kompaktowe (małe) powiadomienie. W naszym przypadku pokazuje play lub pauzę w zależności od stanu odtwarzania.
  • setMediaSession – ustawiając token, informujesz systemowy interfejs użytkownika, że ma do czynienia z aktywną sesję multimedialną i może na przykład wyświetlić okładkę albumu na ekranie blokady.
  • setShowCancelButton – dla systemu Android poniżej 5.0. Ustawiamy czy ma pokazać ikonę „X”, aby usunąć powiadomienie,
  • setCancelButtonIntent – zachowanie po przyciśnięciu ikony „X”.

Kolejne atrybuty kreatora powiadomienia to:

  • setShowWhen – czy ma pokazywać się czas utworzonego powiadomienia,
  • setPriority – ustawienie priorytetu powiadomienia. W przykładzie – brak dźwięków i wibracji,
  • setContentIntent – otwieramy aplikację po kliknięciu w powiadomienie,
  • setDeleteIntent – co ma się stać po usunięciu powiadomienia,
  • setColor – kolor tła dla Androida 6.0 i poniżej, a dla pozostałych kolor ikonek,
  • setContentTitle – ustawienie tytułu powiadomienia – w naszym przypadku artysta,
  • setContentText – ustawienie opisu powiadomienia – w naszym przypadku tytuł utworu,
  • setLargeIcon – ustawienie dużej ikony powiadomienia,
  • setSmallIcon – ustawienie małej ikony powiadomienia.

Oczywiście nie jest to lista zamknięta, możemy ustawić jeszcze własne atrybuty według potrzeb. Tutaj tylko pokazałem te, które są wymagane i warto dodać do naszej aplikacji. Poniżej przykład wyglądu powiadomień. Od lewej: Android 5, Android 7, Android 8.

Powiadomienia w poszczególnych wersjach Androida

3. Podsumowanie.

Wiesz już jak budować powiadomienia dla aplikacji multimedialnych. Gdybyś chciał więcej dowiedzieć się o powiadomieniach zobacz ten przewodnik.Teraz masz już pełnosprawną aplikację do odtwarzania muzyki. Mam nadzieje, że niedługo zobaczę Twoją aplikację multimedialną :).

Krótki wpis, ale dotarliśmy do końca i mam nadzieje, że Ci się pomógł. A jeśli tak udostępnij go dalej. Będę Ci za to bardzo wdzięczny. Dzięki!

Miłego kodowania 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *