Jak aplikacja może wykryć, że zostanie odinstalowana? [duplikować
To pytanie ma już odpowiedź tutaj:
Czy można wykryć odinstalowanie aplikacji na Androida? 7 odpowiedzi Wykonaj zadanie podczas odinstalowywania w Androidzie [duplikat] 4 odpowiedziWiemy, że zwykła (w praktyce dowolna) aplikacja antywirusowa przed dezinstalacją służyła do uruchomienia prostego okna dialogowego: „Czy odinstalujesz aplikację, jesteś pewien?” - "tak nie"
Tak, wiem, że mogę przechwycić zamiar usunięcia pakietu za pomocą filtru zamiaru, takiego jak:
<activity
android:name=".UninstallIntentActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.DELETE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="package" />
</intent-filter>
</activity>
Ale problem polega po prostu na tym, że przechwytujekażd usuń żądania, a ponadto uruchomi się okno wyboru między moją aplikacją a instalatorem giełdowym. Więc jeśli użytkownik wybierze instalatora zapasowego - nie będę mógł nic zrobić.
Moim celem nie jest uniemożliwienie użytkownikom odinstalowania mojej aplikacji, ale po prostu cofnięcie zmian dokonanych przez moją aplikację.
Uczenie się z tych aplikacji antywirusowych Widzę, że taka operacja jest możliwa, więc pomóż mi i wyjaśnij, jak to możliwe?
Aktualizacj
Ponieważ są ludzie, którzy nie wierzą, że to prawda - odsyłam doAvast Mobile Security:
Anti-Theft chroni się przed odinstalowaniem, ukrywając swoje komponenty za pomocą różnych technik samozachowawczych.
Inny przykład: Kaspersky Internet Security dla Androida - oto specjalna procedura odinstalowania go, co wymaga podania tajnego kodu.
W każdym razie oznacza to, że istnieje sposób na przechwycenie procedury dezinstalacji w celu zapobieżenia odinstalowaniu lub wykonania zadania finalizującego.