Приложение Detect удаляется на устройствах с леденцом

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

Одно из старых решений Stackru имело следующие шаги:

 List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(MAX_PRIORITY); 
         String activityName = taskInfo.get(0).topActivity.getClassName();
         if (activityName.equals("com.android.packageinstaller.UninstallerActivity")) {
 // do whatever is needed

С леденцом, getRunningTasks был объявлен устаревшим Так как можно com.android.packageinstaller.UninstallerActivity активность обнаружена без getRunningTask?

В качестве альтернативы, есть ли какой-либо другой способ обнаружения процесса удаления, запущенного в моем приложении? С помощью getAppTask наверное?

0 ответов

По-видимому, вы не сможете этого сделать, вам придется полагаться на так называемое тихое уведомление.

Что мы сделали, так это отправили уведомление каждые 3 дня или с любой желаемой частотой. На стороне клиента, как только получено уведомление, мы выполняем сетевой вызов, который помечает NotificationReceived для клиента. Теперь, поскольку уведомления не являются полным доказательством, мы приняли порог 2/3 пропущенных уведомлений как событие удаления. И для клиента у нас есть этот счетчик выше установленного порога, мы связались с ним для обратной связи.

Также никто не захочет заполнять вашу форму во время удаления, поскольку пользователь уже решил удалить ваше приложение.

Надеюсь, это решение подойдет вам. Это поможет вам понять причины удаления вашего приложения, снизить частоту удалений с помощью мощного механизма прогнозирования, а также получить возможность повторной установки приложения через уникальный активный канал (версия Android 4.0 и выше).

Просто установите переменную с именем appLastPresent для каждого пользователя на стороне сервера и обновлять эту переменную каждый день, вызывая API, используя WorkManager's PeriodicWorkRequest. Также установитеinstalledDate переменная, когда пользователь устанавливает приложение.

Теперь настройте задание хронирования на стороне сервера, чтобы проверить, есть ли разница между installedDate а также appLastPresentбольше 7 дней. Затем отправьте пользователю электронное письмо или сообщение с запросом о проблемах или обратной связи, если они больше.

NB: Пользователь может быть офлайн 7 дней. Поэтому отправляйте только электронные письма с запросом, напримерwhy you are not using the app, if uninstalled please let us know why

Прочтите эти 2 вопроса и ответы:

  1. родное решение

  2. Решение GCM

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

Другие вопросы по тегам