Intereting Posts
Настроить категорию «Программы» программно Добавление изображения в текстовый фон текста Как настроить несколько сигналов тревоги на Android? Выключите Android-устройство с помощью приложения, подписанного системой «Вызов этого из основного потока может привести к взаимоблокировке и / или ANR при получении accesToken» от GoogleAuthUtil (интеграция Google Plus в Android) TextInputLayout не показывает подсказку EditText, прежде чем пользователь будет фокусироваться на ней Реагировать на native errorTimeout на получение списка устройств. При запуске hello world на ubuntu Как показать маркер в Картах, запущенных Geo Uri Intent? Android: изменение размера битовой карты с использованием лучшего алгоритма повторной дискретизации, чем билинейный (например, Lanczos3) Android: несколько вариантов меню в одном действии Как я могу вызвать номер службы экстренной помощи Как реализовать скручивание страницы в MuPDF Заполнить список пользовательского вида с помощью ListFragment Android Google Maps Не удалось найти стиль «mapViewStyle» в текущей теме Равномерно разнесенные пункты меню на Панели инструментов

Слушайте собственное событие удаления приложения на Android

Насколько я знаю, приложения не могут получить намерения для собственной деинсталляции:

  • ACTION_PACKAGE_FULLY_REMOVED
  • ACTION_PACKAGE_REMOVED

Но как браузеру Dolphin удается получить «удаленное» событие и запустить браузер, как в прикрепленном изображении ?

Введите описание изображения здесь

ADB: 10-20 12:37:00.997: D/BackupManagerService(527): Received broadcast Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:mobi.mgeek.TunnyBrowser flg=0x8000010 (has extras) } 10-20 12:37:00.997: V/BackupManagerService(527): removePackageParticipantsLocked: uid=10112 #1 10-20 12:37:01.007: D/dalvikvm(527): GC_EXPLICIT freed 2247K, 12% free 20128K/22868K, paused 3ms+10ms, total 212ms 10-20 12:37:01.107: D/dalvikvm(527): GC_FOR_ALLOC freed 1508K, 15% free 19649K/22868K, paused 60ms, total 60ms 10-20 12:37:01.137: D/AndroidRuntime(4028): Calling main entry com.android.commands.am.Am 10-20 12:37:01.137: D/dalvikvm(4028): Note: class Landroid/app/ActivityManagerNative; has 163 unimplemented (abstract) methods 10-20 12:37:01.147: I/ActivityManager(527): START u0 {act=android.intent.action.VIEW dat=http://survey.dolphin.com/int/uninstall?id=014f4d1981d6f88bb56630e7a3a7550a&pn=mobi.mgeek.TunnyBrowser&v=248&s=ofw&it=1382250136565&ut=1382250127000&m=Nexus 4&os=android&osv=4.3&cc=US&no=40471&lang=en&jk=uninstalled&ft=212&ht=957&ct=0&nt=1&res=768*1184&ifi=1&lts=1&iow=0&iom=0&iospd=0&iogs=0&debug=false&t=1382252820000 flg=0x10000000 cmp=com.android.chrome/com.google.android.apps.chrome.Main} from pid 4028 10-20 12:37:01.157: D/AndroidRuntime(4028): Shutting down VM 

Solutions Collecting From Web of "Слушайте собственное событие удаления приложения на Android"

Здесь вы можете получить событие удаления своего приложения.

Использование inotify в собственном коде. Например: вы можете использовать inotify_add_watch для мониторинга папки кэша данных вашего приложения, например: /data/data/your-package-name/cache .
Когда ваше приложение будет удалено, вы можете получить событие удаления папки.

Другим ключевым моментом является то, что inotify должен запускаться в отдельном процессе из вашего собственного приложения.
Вы можете вызвать fork() для этого.

Я уже проверил логику. 🙂

Это проблема безопасности в Andorid, о которой уже сообщается в Google Team и зафиксирована в Android 4.4. Вот мое объяснение, как оно может работать.

Когда пользователь переходит к диспетчеру приложений в настройках телефона и нажимает на ваше приложение, вы получаете широковещательную рассылку, содержащую ваше имя приложения в дополнительных целях, если пользователь нажимает кнопку удаления btn, должен запускаться com.android.uninstaller.UnistallerActivity .

Если вы получаете намерение и свое имя приложения в дополнительном режиме, это означает, что пользователь нажал на ваше приложение в «диспетчере приложений», используйте PackageManager чтобы запустить наблюдатель активности и получить видимую активность и его пакет, если пользователь нажмет кнопку удаления Вы получаете UnistallerActivity как UnistallerActivity деятельность там, вы можете всплывать опрос в веб-браузере или делать то, что вы хотите сделать там.