У меня проблема с тем, что 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.