2015-03-21 3 views
1

Я использую под кодом работающий фон в службе, чтобы получить событие предварительной деинсталляции, но он вызывает все приложения, которые мне не нужны. Я хочу событие только для моего приложения.Как узнать предварительно Удаление моего приложения

Пример: Мое приложение «А» Другие приложения «B», «C» ....

Когда пытается удалить «А» приложения Я хочу заранее событие удаления.

Но текущий код возвращение предварительно события удаления для других приложений, таких как "B", "C" .....

  // get the info from the currently running task 
      List<ActivityManager.RunningTaskInfo> taskInfo = mActivityManager 
        .getRunningTasks(10); 

      String activityName = taskInfo.get(0).topActivity 
        .getClassName(); 

      Log.d("topActivity", "CURRENT Activity ::" + activityName); 

      if (activityName 
        .equals("com.android.packageinstaller.UninstallerActivity")) { 
       // User has clicked on the Uninstall button under the Manage 
       // Apps settings 

       // do whatever pre-uninstallation task you want to perform 

       Toast.makeText(getApplicationContext(), 
         "warning!!! You are not supposed to uninstall", 
         Toast.LENGTH_SHORT).show(); 
       if (!mIntimation) { 
        startIntimate(); 
        mIntimation = true; 
       } 
      } else { 
       mIntimation = false; 
      } 

Спасибо.

+0

Вы не можете, не для себя. Если бы вы могли подключить свою собственную деинсталляцию, это было бы сокровищем для вредоносного ПО. –

ответ

0

В андроиде нет никакого способа для приложений, чтобы получить сам уведомлены, что приложение становится удалено. вы не можете проверить, что ваше приложение будет удалено.

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

Вы можете сослаться на это link для подтверждения.

У вашего приложения нет возможности узнать, что он удаляется (без изменения ядра). Все файлы, созданные в data/data/your.app.package, автоматически удаляются после установки.

Только одна альтернатива, что я могу думать так:

Вы можете иметь другое приложение, которое проверяет, установлен ли или не ваше первое приложение. Если нет, он может делать то, что вы хотели сделать, когда приложение было удалено.

Смежные вопросы