Как прочитать информацию об устройстве в Android 10?

Я пытаюсь прочитать информацию об устройстве, например Build.SERIAL и DeviceId, с помощью TelephonyManager. В Android 9 и ниже я мог получить доступ ко всей этой информации без каких-либо проблем.

Я получаю следующее исключение, когда пытаюсь прочитать информацию об устройстве в Android 10

GetDeviceId: пользователь 10727 не соответствует требованиям для доступа к идентификаторам устройства.

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

1 ответ

Как указано здесь, это одно из изменений, внесенных в Android 10:https://developer.android.com/about/versions/10/highlights

Вам следует попробовать воспользоваться одним из лучших приемов здесь:https://developer.android.com/training/articles/user-data-ids

В любом случае, исходя из моего опыта, если вы получаете UUID внутри своего приложения, вы получите тот же uuid, даже если ваше приложение будет удалено и переустановлено снова. Обратите внимание, что этот uuid не является действительным uuid устройства на новых устройствах Android. Но все же, если вы сохраните его на своем сервере, его можно будет использовать для обнаружения удаления и повторной установки.

Settings.Secure.getString(App.instance.getContentResolver(), Settings.Secure.ANDROID_ID);
Другие вопросы по тегам