Уникальный идентификатор пользователя Google Play Market / appstore

Есть ли способ точно идентифицировать пользователя приложения Android/ IOS, не прося его зарегистрироваться в Google/ Email/ Facebook?

Я хотел бы реализовать это: пользователь загружает приложение из PlayMarket/AppStore, приложение каким-то образом идентифицирует его и отправляет данные об этом пользователе на сервер. Под "данными об этом пользователе" я подразумеваю только данные, собранные на основе действий пользователя в приложении, таких как различные настройки и настройки. Если пользователь удалит приложение и снова установит его на другое устройство, но с той же учетной записью Google, он должен быть правильно идентифицирован как тот, кто использовал приложение ранее.

1 ответ

Решение

В Android вы можете получить адрес электронной почты, не спрашивая пользователя, если он / она вошел в учетную запись Google на устройстве:

Account account = getAccount(AccountManager.get(getApplicationContext()));

    if (account == null) {
        String accountName = "user did not provide email";
    } else {
        String accountName = account.name;
    }

public static Account getAccount(AccountManager accountManager) {
    Account[] accounts = accountManager.getAccountsByType("com.google");
    Account account;
    if (accounts.length > 0) {
        account = accounts[0];
    } else {
        account = null;
    }
    return account;
}

Другой способ, вы можете взять идентификатор устройства. Но это не выполнит вас, если пользователь меняет устройство и не вошел в учетную запись Google. Чтобы получить идентификатор устройства:

import android.provider.Settings.Secure;
String deviceId = Secure.getString(getContext().getContentResolver(),
                                                Secure.ANDROID_ID);
Другие вопросы по тегам