2012-03-06 9 views
6

Istnieje aplikacja "Google Play Store" o nazwie "Screen Filter", która ma pokrywać cały ekran półprzezroczystą czernią, aby ekran był ciemniejszy niż minimalna jasność.Android: Narzędzia systemowe: wyświetl alerty na poziomie systemu: jak korzystać z tego uprawnienia?

Robi to za pomocą uprawnień o nazwie "Wyświetlanie alertów na poziomie systemu".

  1. Gdzie jest dokumentacja, która pozwala mi to zrobić w mojej aplikacji?

  2. Czy ten "alert na poziomie systemu" może przechwycić zdarzenia dotykowe? Dzięki temu mogę pobrać aplikację, aby przejąć an Android that is supposed to stay in our building.

Podoba mi się to podejście, ponieważ zapobiega wyłączeniu telefonu przed jego przekręceniem (co mogłoby wywołać alarm), chyba że w grę wchodzi młotek.

Odpowiedz

10
  1. Docs dla Manifest.Permission pokazują, że SYSTEM_ALERT_WINDOW jest pozwolenie szukasz. Użytkownik zadeklaruje to pozwolenie w Manifest, a następnie w Dialog lub innym rodzaju Window ustawisz tę flagę na WindowManager.LayoutParams.TYPE_SYSTEM_ALERT. Tak dla Dialog to będzie wyglądać następująco:

    dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

  2. Tak, to będzie w stanie przechwytywać zdarzenia dotykowe. Alerty systemowe, takie jak ostrzeżenie o niskim poziomie naładowania baterii, zawsze otwierają się na wszystkich innych aplikacjach, więc niezależnie od tego, co wyskakujesz Window, skupisz się na itp. Na podstawie tego, co chcesz z tym zrobić, wyobrażam sobie, że możesz zrobić coś takiego: pojawi się Dialog (jako alert na poziomie systemu), który potrzebuje hasła, aby je odłożyć.

Powiązane problemy