Błąd w dokumentacji: Zarejestrowani odbiorcy transmisji manifestu odbierają intencje ACTION_SHUTDOWN w systemie Android 8.0

Manifestowane zarejestrowane intencje transmisji są ograniczone do tylko kilku w Androidzie Oreo, a ACTION_SHUTDOWN nie jest jedną z nich, czyż nie?

Android wykorzystuje intencje rozgłoszeniowe do wielu rzeczy. Twórcy aplikacji mogą nasłuchiwać, czy wykonują określone czynności, na przykład kiedy rozgłaszają komunikat MEDIA_MOUNTED, aby aplikacje wiedziały, kiedy karta SD została zamontowana jako pamięć. Jako twórca aplikacji możesz zaprogramować do tego odbiorniki telewizyjne, a następnie wywołać funkcję po podłączeniu nośnika, na przykład w celu zmiany domyślnego katalogu przechowywania aplikacji na kartę SD. Do tego typu rzeczy wykorzystywane są intencje rozgłoszeniowe. Są one najczęściej używane do rozgłaszania określonych zdarzeń systemowych do wszelkich aplikacji, które mogą potrzebować tych informacji. Odbiorniki transmisji muszą być zarejestrowane w pliku manifestu systemu Android lub programowo, gdy znajdują się na pierwszym planie.

Ze względu na dużą ilość zakłóceń pamięci spowodowanych przez wielu różnych programistów wdrażających wszelkiego rodzaju transmisje odbiorników do częstych celów transmisji, Google zdecydował się ograniczyć dostęp do większości tych celów transmisji w systemie Android 8,0 Oreo. Firma zdała sobie jednak sprawę, że istnieje kilka ważnych celów transmisji, które można zrealizować nadal należy ich słuchać, ponieważ nie występują one zbyt często i dlatego mają niewielkie szanse na wywołanie pamięci kwestie. Oni 

opublikował białą listę niejawnych transmisji intencje, których aplikacje na Androida mogą nadal nasłuchiwać, rejestrując odbiorniki transmisji w manifeście Androida. To obszerna lista, obejmująca prawie wszystko, czego możesz potrzebować jako twórca aplikacji, z jednym wyjątkiem.

Wygląda na to, że Google nie podał zamiaru transmisji używanego przez wiele aplikacji. To jest AKCJA_ZAMYKANIE zamiar transmisji. Ta intencja jest wysyłana, gdy urządzenie się wyłącza, co może być bardzo ważne dla twórców aplikacji, ponieważ mogą szybko zakończyć wszystko, co robi aplikacja, zanim proces zostanie zatrzymany. Pomimo tego, że zamiar transmisji nie pojawia się na liście intencji umieszczonych na białej liście, aplikacje Móc w rzeczywistości nadal słuchaj go za pośrednictwem odbiornika telewizyjnego zarejestrowanego w Manifest zgodnie z zatwierdzeniem w systemie Android Git po prostu Google zapomniał umieścić go na swojej liście.

To wspaniale, że faktycznie znajduje się na białej liście, ponieważ Google usuwa z aplikacji możliwość wykrywania, kiedy urządzenie się wyłącza byłoby niekorzystne zarówno dla użytkowników, jak i twórców aplikacji, ponieważ niektóre aplikacje nie byłyby już w stanie szybko zapisać pracy przed wyłączeniem urządzenia. Nie jesteśmy do końca pewni, dlaczego ten zamiar transmisji nie jest wymieniony na stronie Google dla programistów, ale rozmawialiśmy z doświadczonym programistą Androida CommonsWare i zgadza się, że jest to prawdopodobnie zwykły błąd w dokumentacji ze strony Google. Według niego nie byłaby to pierwsza taka sytuacja.