Получить уникальный 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.