Получить уникальный ANDROID_ID на флаттер это возможно?

Я хотел бы получить уникальный идентификатор устройства на Android с Flutter. Я попробовал этот плагин device_info, но он не возвращает ANDROID_ID, который я получаю в Java Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);

как я могу получить тот же идентификатор?

2 ответа

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

Затем вы можете использовать свой Java-код, включенный в ваш вопрос, и при необходимости передавать идентификатор Android в приложение Flutter через канал платформы.

См. Написание пользовательского кода для конкретной платформы с каналами платформы.

Вы можете делать то, что сделали, но это не надежно и не гарантировано. Пожалуйста, ознакомьтесь с: https://developer.android.com/training/articles/user-data-ids

для лучшей обработки уникальных идентификаторов. Конечно, вы можете получить идентификатор телефонной сети, но что, если у этого устройства нет оператора связи? Вы можете получить идентификатор устройства, но что делать, если он возвращает ноль для этого производителя. Вы можете получить идентификатор рекламодателя, и это часто рекомендуется, но он МОЖЕТ ИЗМЕНИТЬ, вряд ли он изменится, но если они выполнят сброс настроек или что-то в этом роде, это произойдет.

Поэтому лучше всего сгенерировать свои собственные уникальные идентификаторы и сохранить их локально вместе с приложением либо в реализации БД, либо в SharedPreferences.

Поэтому, чтобы ответить на ваш вопрос, если у вас есть существующая аудитория, которая использовала неправильный, неправильный способ использования уникальных идентификаторов, то вам нужно создать фабрику идентификаторов с помощью логики if/else, чтобы исправить это.

If (first time accessing an ID for this installed application)
   //createOne and store it
else if(ID already exists and matches ANDROID_SECURE_ID method)
   //get it the old way, 
   //create new one, and update your access to APIs or DB with new associated ID so that you never hit this code path again
else
   //use correct ID implementation that you created

Вы также можете легко выполнить однократную проверку в Application onCreate, чтобы исправить кого-либо с неправильным идентификатором, а затем установить флаг, который вы исправили, чтобы вы не исправили его снова в sharedpref.

Другие вопросы по тегам