Получить уникальный ANDROID_ID на флаттер это возможно? - PullRequest
0 голосов
/ 09 мая 2018

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

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

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы можете сделать то, что сделали, но это ненадежно или не гарантировано. Пожалуйста, прочитайте: 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.

0 голосов
/ 09 мая 2018

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

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

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

...