Android zarządzanie innymi apkami, ActivityManager, WindowManager

0

Cześć,

Piszę apkę, która zarządza dostępem do innych apek. Wykrywam aplikację, która jest na wierzchu przy pomocy ActivityManager i getRunningTasks. Następnie sprawdzam czy nazwa pakietu znajduje się na liście zablokowanych i jeżeli tak przykrywam ją swoim View, dodając go na wierzch przez WindowManager. Działa dla wszystkich apek poza tymi, które również dodają swoje widoki w podobny sposób - chat heads messengera, QSLIDE - multitasking LG. Taka aplikacja nie jest na wierzchu. Można sprawdzić czy jest uruchomiona pobierając np getRunningAppProcesses(), ale nie mam żadnej możliwości ubicia jej. Nawet android.os.process.killprocess nie działa. Wiem, że to nie jest dobry sposób, ale nie mam już pomysłu jak to zrobić

Jest jakaś możliwość sprawdzenia, że inna aplikacja dodała coś do WindowManagera, ewentualnie zablokowanie tego? Albo usunięcie jej View lub skutecznego zabicia apki?

0

Co chcesz konkretnie osiągnąć? Może źle do tego podchodzisz. Żaden z podanych z Ciebie sposobów nie zadziała ze względu na zabezpieczenia platformy. Nie powinno się również korzystać z klasy ActivityManager, jej zachowanie może się w przyszłości zmienić i być niezdefiniowane na pewnych platformach (o ile dobrze pamiętam jest to nawet opisane w dokumentacji).

0

Użytkownik może blokować dostęp do wybranych przez siebie aplikacji na urządzeniu. Jeżeli chce je później odpalić odpalić pokazuje mu się ekran blokujący dostęp do niej. To wszystko co chce osiągnąć :)

0

Musisz więc napisać własnego launchera. Przykładowy tutorial:
http://code.tutsplus.com/tutorials/build-a-custom-launcher-on-android--cms-21358

0

Launcher mam napisany i działa :) ale to on ma odpowiadać za blokowanie chat heads?

1 użytkowników online, w tym zalogowanych: 0, gości: 1