Есть ли способ проверить, было ли приложение переустановлено? - PullRequest
0 голосов
/ 15 марта 2019

У меня проблема с тем, что 5% моих пользователей регистрируются на сервере несколько раз.Это может произойти только при чистой новой установке, потому что я выполняю простую регистрацию при запуске: (псевдокод):

if(!SharedPrefs.contains(accessToken))
{
    registerToServer(response -> {
        SharedPrefs.save(response.accessToken);
        SharedPrefs.save(); // commit, whatever
    }
}

Затем я сохраняю UUID его устройства на сервере.

Как видите, пользователь не может быть зарегистрирован дважды на одном устройстве.Единственный способ, которым он может, это переустановить приложение, потому что SharedPrefs будут стерты.

Но ...

Есть люди, которые регистрируются дважды, 3 раза или даже больше.Я могу видеть это, фильтруя по идентификатору устройства в моей базе данных, и у меня есть несколько записей пользователей с одним и тем же идентификатором устройства.

Чтобы решить эту проблему, я должен убедиться, что это не какой-то бот (как Google Playпредварительный отчет об устройствах).

Вопрос

Есть ли способ получить какой-то уникальный идентификатор установки, который будет идентичен только одному и тому же событию установки Google Play?

Вы, вероятно, скажете, что я мог бы проверить это с самими SharedPrefs, сохранить какой-то тип bool "firstInstall", и он будет удален при новой установке.Но я не могу, потому что у меня есть предположения, что SharedPrefs каким-то образом стираются при запуске приложений на этих устройствах.

Это происходит в основном на некоторых LG, Samsung J5, "vivo vivo", Huaweis.

1 Ответ

0 голосов
/ 18 марта 2019

Ваше предположение, что SharedPrefs очищается только при удалении, неверно. Для любого приложения в любое время пользователь может выполнить «очистку данных приложений». И существует множество (не очень хороших) инструментов для очистки телефона, которые предлагают сделать это для пользователя.

Официальные инструкции для уникальных идентификаторов здесь .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...