Co naprawdę potrafi Twój smartfon? — cz.2.
13.08.2018 00:27
W poprzednim wpisie zachwycałem się dotąd odkrytymi możliwościami automatyzacji Androida - dziś napiszę, jak konkretnie sprawić sobie część wspomnianych poprzednio (oraz innych) rozwiązań (dla większej przejrzystości postanowiłem oddzielić od siebie pierwsze wrażenia od konkretnych instrukcji) - co może się przydać, tym bardziej iż w części przypadków konkretne kroki nie są zbyt intuicyjne/łatwe do domyślenia się. Zacznijmy więc od...
Wybrane powiadomienia sygnalizowane dźwiękiem lub głosowym komunikatem.
To fantastyczne, iż z pomocą MacroDroid mnóstwo rzeczy urządzenie może Nam komunikować głosowo. Dzięki temu by zeń korzystać, nie potrzebuję nawet odblokowywać ekranu - smartfon leży w okolicy, a Ja dowiaduję się o istotnych rzeczach bez odrywania wzroku i przerywania tego nad czym aktualnie pracuję. Genialna sprawa :) .
W programie MacroDroid możesz przypisać reakcję głosową dla całego szeregu rozmaitych zdarzeń (co ciekawe, masz nawet wpływ na prędkość i intensywność wypowiadanego tekstu - acz niestety nie można jeszcze ustawić tych parametrów dla poszczególnych wypowiedzi osobno, dzięki czemu mógł(a)byś nadać nawet charakterystyczny ton wybranym komunikatom - np. radosny dla słonecznej pogody/wiadomości od przyjaciółki - ponury dla informacji o deszczu/wiadomości od szefa). Nie jest to jednak granica możliwości programu, gdyż... może on również czytać powiadomienia z androidowej belki (cóż za miła niespodzianka :) ). Konkretniej rzecz biorąc, może je przeczytać inteligentnie - tj. wtedy, kiedy się pojawią. Dzięki temu właśnie możesz dowiedzieć się o jakiejś istotnej dla Ciebie informacji, bez potrzeby choćby zerknięcia na smartfonowy ekran :) . Co więcej, program może przeczytać dosłowną treść danego powiadomienia - lub też wypowiedzieć zupełnie inny komunikat w reakcji na nie - dzięki czemu możesz bardziej spersonalizować ten pomysł "pod Siebie".
A żeby tego było mało, ów niewinnie brzmiący koncept czytania powiadomień okraszono wyrażeniami regularnymi, z których pomocą możesz wybrać, które informacje spośród powiadomień danego programu są dla Ciebie w istocie ważne (wcale nie musisz ograniczać się do wszystkich powiadomień danej aplikacji - możesz spokojnie wybrać bardziej precyzyjnie, np. głosowy komunikat nie o wiadomościach od kogokolwiek, lecz od konkretnej osoby - lub też powiadomienia o tym że ktoś zaczął śledzić Cię w sieci społecznościowej, ale bez czytania na głos informacji o polubieniach postów. A może chciał(a)byś by smartfon informował Cię na głos o możliwym deszczu - ale już nie o wszystkich innych warunkach atmosferycznych? Wszystko to da się załatwić, często nawet i bez konieczności używania wspomnianych wyrażeń regularnych, przykład:
"Dziś może padać".
Jako jeden z pierwszych pomysłów na czytanie wybranych powiadomień chciałem wdrożyć wspomniane ostrzeżenie o deszczu - w tym miejscu jednak dały się we znaki ograniczenia programu: z nie do końca jasnych przyczyn nie potrafi (jeszcze?) odczytywać pełnej treści wszystkich powiadomień. Stąd wszelkie próby wykrycia deszczu z pomocą powiadomień aplikacji pogodowych Yahoo Weather/3D Weather Pro niestety spełzły na niczym. Udało się to jednak z pogodą serwowaną przez... Google.
Jeżeli używasz Asystenta Google w najnowszej wersji, prawdopodobnie raz‑dwa (a może nawet kilka) razy dziennie otrzymujesz informacje pogodowe na belce. Czasem są one prezentowane w bardziej zmyślny sposób: nie tyle w formie suchej informacji o temperaturze, co odniesienia do poprzedniego dnia, np. "5° cieplej/zimniej niż dzisiaj".
A oto jak z pomocą MacroDroid sprawić, by telefon ostrzegł Cię przed deszczem na głos:
Wyzwalacz: Powiadomienie/Otrzymano powiadomienie/Wybierz aplikację/Google
i dalej: Zawartość tekstu/Zawiera: deszcz
Akcje: Czytaj tekst: Możliwy deszcz.
A oto inny przykład, kiedy reakcja tylko na wybrane powiadomienie może się przydać.
Potwierdzenie przesłania pliku na Dysk Google.
Jeśli miałbym wskazać jedną z najprzydatniejszych funkcji, z których korzystam najczęściej na smartfonie - byłaby to... możliwość przesyłania plików na Dysk Google. Wielokroć to właśnie ta opcja jest dla Mnie w praktyce najszybszą drogą do przesłania czegokolwiek na komputer stacjonarny, by tam płynnie kontynuować pracę. Poza tym świetnie przydaje się do składowania kopii zapasowych: obojętnie AquaMail, NovaLauncher, czy nawet MacroDroid - jak i wiele innych programów dzisiaj - posiadają możliwość przesłania kopii zapasowej swoich ustawień bezpośrednio na Dysk Google.
Co ciekawe i poniekąd frapujące, na nowszym Androidzie (7 - z nakładką MIUI) wybranie opcji zapisu na Dysku Google spośród innych możliwości udostępniania wywoływało okno aplikacji Dysku, w którym można było zmienić nazwę zapisywanego pliku, czy wskazać konkretną lokalizację zapisu. Pod kontrolą Androida 6 natomiast (z HTC Sense) wybranie tej samej opcji powoduje natychmiastowe przesłanie pliku na Dysk - bez żadnych kroków pośrednich, co jest (nareszcie) prawdziwie wygodne.
Po zleceniu przesłania pliku na Dysk Google najpierw na androidowej belce pojawia się powiadomienie ilustrujące postęp przesyłu, aby - gdy skończy - zmienić się na powiadomienie o jego zakończeniu. Obu nie towarzyszy żaden dźwięk. Miło byłoby jednak być powiadomionym sygnałem dźwiękowym o zakończeniu przesyłania, bez potrzeby dalszego patrzenia na smartfon . W tym miejscu reakcja na wybrane powiadomienia będzie doskonałym rozwiązaniem - gdyby bowiem przypisać dźwięk po prostu powiadomieniom Dysku Google - każdorazowemu przesłaniu pliku towarzyszyłoby podwójne jego odtworzenie (patrz wyżej - dwa rodzaje powiadomień). Stąd też przydałoby się, by MacroDroid wykrywał stricte tylko powiadomienia informujące o zakończeniu przesyłania. Da się to zrobić bardzo prosto w następujący sposób:
Wyzwalacz: Powiadomienie/Otrzymano powiadomienie/Wybierz aplikację/Dysk
i dalej: Zawartość tekstu/Zawiera: przesłany
Akcje: Odtwórz/Zatrzymaj dźwięki/Wybierz plik
A jeśli chcesz dodatkowo automatycznie usunąć powiadomienie o zakończonym przesyłaniu z belki, dodaj akcję: Wyczyść powiadomienia/Wybierz aplikacje/Dysk/Zawartość tekstu: dowolna
Raport na rozpoczęcie dnia.
Jak wspominałem w poprzednim poście, spodobał Mi się pomysł na spersonalizowany raport, którym sztuczna inteligencja (w tym przypadku smartfon z Androidem) przywita się z Nami o określonej porze. Na początku zleciłem Mojej Wirtualnej Asystentce, by w okolicach pobudki informowała Mnie o pogodzie oraz stanie naładowania baterii. Nieco później sprawiłem, by uwzględniała ponadto wybrane wydarzenia z Kalendarza Google, o których chciałbym być powiadomiony jeszcze zanim sięgnę po smartfona. Niniejszy koncept wdrożyłem następująco:
Wyzwalacz: Pogoda/Dowolna zmiana pogody
Akcje: Czytaj tekst: Witaj Thomas. Temperatura wynosi [weather_temperature_c] stopni, [weather_conditions] . Bateria naładowana w [battery] procentach. Przyjemnego dnia.
+ Czytaj tekst: Medytuj wpatrując się w smartfon bez jakichkolwiek myśli nt. powiadomień. z ograniczeniem ("Dodaj ograniczenie/Wpis w kalendarzu/wybierasz Swój kalendarz i ustawiasz słowo kluczowe należące do nazwy interesującego Cię wydarzenia")
Ograniczenia: Makro ostatnio wykonano/Uruchomione/Wybierasz inne, wcześniej utworzone przez Ciebie makro, które powinno uruchamiać się przed tym - i posiadać akcję wybudzenia urządzenia (czytaj niżej)
Słowo komentarza: Jak wiele innych, tak i ten pomysł można zrealizować w MacroDroidna różne sposoby. Dlaczego wybrałem akurat ten? Przede wszystkim z uwagi na to, iż MacroDroid nie potrafi jeszcze odczytywać pełnej treści powiadomień z aplikacji pogodowych których używam. Gdyby potrafił, konstrukcja byłaby prostsza: w programie pogodowym ustawiłbym powiadomienie o aktualnej pogodzie na pięć minut przed porannym budzikiem. W MacroDroid stworzyłbym makro zapisujące jego treść do tzw. "zmiennej". Następnie dodałbym makro które sprawi, iż - minutę po budziku - program przeczyta dany komunikat, uwzględniając prognozę pogody ze zmiennej (jako tekst do przeczytania, wystarczy wstawić "[v=nazwa_zmiennej]").
Jako że jednak prognoza pogody z aplikacji których używam jest póki co nieczytelna dla MacroDroid, postanowiłem sięgnąć po inny koncept: posiłkować się prognozą wbudowaną w program (jedna z milszych niespodzianek :) ).
Niestety, w wersji z której korzystam nie można wywołać aktualizacji pogody na żądanie - można tylko ustawić, co jaki czas program ma ją aktualizować. Mogłem więc albo pobrać prognozę pogody na jakiś czas przed budzikiem i zapisać ją do zmiennej (jak we wcześniejszym przykładzie) do późniejszego przeczytania w porannym komunikacie - albo wybudzić urządzenie gdzieś w okolicy budzika i dać mu jakiś czas na aktualizację pogody (gdyż, jak wspomniałem, nie da się jej ustawić "na sztywno"), jednocześnie wiążąc ją z wywołaniem porannego raportu (aktualizacja pogody jako wyzwalacz).
Jest tylko jedno "ale": program aktualizuje pogodę cyklicznie, jeśli więc powiążemy sam fakt aktualizacji z wywołaniem makra raportu na dzień dobry - może być on odczytywany wielokrotnie w ciągu dnia, co mija się z celem. Aby uzyskać pożądany efekt (tj. jednorazowe przeczytanie każdego dnia, mniej więcej o tej samej porze), dodałem ograniczenie: makro raportu może być uruchomione tylko w danym okresie czasu od uruchomienia innego, również porannego makra (przywracającego normalne ustawienia dźwięku na dzień). Makro to uruchamia się kilka minut przed budzikiem - poza ustawieniem odpowiedniego profilu dźwięków uwzględniłem w nim dodatkowo wybudzenie urządzenia, aby program zdążył zaktualizować pogodę na potrzeby porannego raportu. W takim układzie - choć teoretycznie dałem MacroDroidowi znacznie więcej czasu na aktualizację - potrafi uruchamiać się dość szybko, nawet przed budzikiem (tak jakby aktualizacja pogody następowała bardzo szybko po wybudzeniu urządzenia po nocnej drzemce). Nie jest to jednak regułą - czasem Asystentka raportuje z dłuższym poślizgiem.
Poza tym uwzględniłem jeszcze dodatkową - opcjonalną - akcję, odpowiadającą za dołączenie komunikatu o wybranym zdarzeniu z Kalendarza Google: jeśli takowe zostanie w tym dniu wykryte, w swoim porannym raporcie Asystentka powiadomi Mnie również o tym :) (w okienku wpisywania treści takiego powiadomienia warto wówczas zaznaczyć "Zaczekaj z kolejną wypowiedzią do zakończenia aktualnej").
Odrzucanie niechcianych połączeń.
Część androidowych smartfonów szczęśliwie ma tą funkcję wbudowaną "fabrycznie" - jak np. telefony Xiaomi z MIUI na pokładzie, gdzie odrzucanie niechcianych połączeń (np. spoza listy kontaktów i/lub ukrytych numerów) można ustawić w Panelu Sterowania/Lista Blokowanych (firewall). W przypadku smartfonów pozbawionych tej funkcji można uzyskać tożsamy efekt za sprawą MacroDroid. Proste odpowiadające za to makro mogłoby przedstawiać się następująco:
Wyzwalacz: Połączenie przychodzące/Wybierz kontakty - ustawione na: Nie w kontaktach oraz Nieznany dzwoniący
Akcje: Odrzuć połączenie
Jeżeli chciał(a)byś sprawdzić czy program zablokował jakieś połączenia, możesz zrobić to z menu MacroDroid/Rejestr systemowy, lub bezpośrednio z belki, o ile masz ustawione Ustawienia/Opcje paska powiadomień/Pokaż ostatnio uruchomione makra.
Potrząśnij by przełączyć utwór na następny w odtwarzaczu muzyki.
W poprzednim poście wspominałem, iż po raz pierwszy odkryłem tą funkcję w Vanilla Music Player - od tamtego czasu sam koncept Mnie zachwycił: nareszcie mogę przełączać muzykę niemal transparentnie (lekkim poruszeniem smartfona). Idealne do relaksacji, czy "spacerów zen" (podczas których funkcja ta pełni rolę czujnika gwałtowności ;) ).
Wracając do MacroDroid - funkcję ustawiłem sobie tak:
Wyzwalacz: Potrząśnięcie urządzenia
Akcje: Sterowanie mediami/Symuluj przycisk mediów/Następny/tu wybierasz program, którego używasz do odtwarzania muzyki
Ograniczenia: Muzyka aktywna/Odtwarzana muzyka
+
Uruchamianie aplikacji/Uruchomione na pierwszym planie/tu wybierasz program, którego używasz do odtwarzania muzyki
Słowo komentarza: Dodatkowe ograniczenie (poza samym faktem odtwarzania muzyki) ustawiłem w związku z tym, iż poza muzyką słucham jeszcze audiobooków - w innej aplikacji. Dla MacroDroida jednakowoż nadal podchodzi to pod "odtwarzanie muzyki", aktywując przełączanie na następny plik poruszeniem urządzenia - czego jednak nie potrzebuję podczas słuchania audiobooków. Stąd dodałem kolejny warunek jaki musi być spełniony, by funkcja zmiany utworów działała: program odtwarzający muzykę aktywny na pierwszym planie.