Должен ли я использовать ANDROID_ID в качестве идентификатора устройства, учитывая отсутствие заводских настроек? - PullRequest
0 голосов
/ 22 января 2020

Я занимаюсь разработкой приложения Android, в котором один пользователь может использовать приложение только на одном устройстве, используя одну и ту же учетную запись Gmail (для входа в систему). Если пользователь хочет войти в приложение на другом устройстве, он не сможет сделать это, используя ту же учетную запись Gmail. Я использую ANDROID_ID в своем приложении для идентификации уникального устройства с помощью следующей команды -

Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);

Это правильный вариант в этом случае, так как я видел на сайте разработчика, что

    Avoid using hardware identifiers. In most use cases, you can avoid using hardware identifiers, such as 
SSAID (Android ID), without limiting required functionality.

             Android 10 (API level 29) adds restrictions for non-resettable dentifiers, which include both 
            IMEI and serial number. Your app must be a device or profile owner app, have
         special carrier permissions, or have the READ_PRIVILEGED_PHONE_STATE privileged permission
     in order to access these identifiers.

Ссылка для do c -

https://developer.android.com/training/articles/user-data-ids

Или есть какой-либо другой способ сделать выше? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 22 января 2020

Если возможно, используйте FirebaseInstanceId в вашем случае использования. Идентификатор экземпляра Firebase предоставляет уникальный идентификатор для каждого экземпляра приложения и механизм проверки подлинности и авторизации действий.

  1. Идентификатор экземпляра стабилен, за исключением случаев, когда:

  2. Приложение удаляет идентификатор экземпляра

  3. Приложение восстанавливается на новом устройстве

  4. Пользователь удаляет / переустанавливает приложение

  5. Пользователь очищает данные приложения

В случае, если вы не хотите использовать FirebaseInstanceId, вы можете искать пользовательские глобально уникальные идентификаторы (GUID) для уникальной идентификации экземпляра приложения ,

String uniqueID = UUID.randomUUID().toString();

Вы можете использовать этот GUID для определения, подключено ли только одно устройство к идентификатору Gmail.

0 голосов
/ 22 января 2020

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

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

...