#android #xamarin #serial-number #imei #unique-id
#Android #xamarin #серийный номер #imei #уникальный идентификатор
Вопрос:
Я разрабатываю приложение для Android с использованием xamarin forms (в будущем, возможно, будет разработано приложение uwp, а не приложение для ios).
Я пробовал некоторые библиотеки, такие как
https://github.com/jamesmontemagno/DeviceInfoPlugin
В библиотеке свойство с именем Id на самом деле является Build.Серийный номер, и для этого есть примечание
Идентификатор Этот идентификатор не следует использовать в качестве стабильного идентификатора, поскольку каждый поставщик на Android может устанавливать или не устанавливать для него другое значение, а на iOS оно изменяется при удалении приложений.
и я попробовал метод GenerateAppId из той же библиотеки, но он генерирует разные идентификационные номера для каждого вызова.
После этого я попытался https://www.nuget.org/packages/Acr.DeviceInfo / и DeviceID также является Build.Последовательный
Как я понимаю, этот идентификатор может измениться. Итак, мне нужен действительно стабильный уникальный идентификатор от устройства, и я смогу сгенерировать такой же уникальный идентификатор с того же устройства (я не хочу его сохранять, поэтому я получу число с помощью определенного вычисления)
Я использовал
Android.Provider.Settings.Secure
.GetString(context.ContentResolver, Android.Provider.Settings.Secure.AndroidId);
и Android.OS.Build.Serial
Я получаю два разных номера, но не уверен, что один из них стабилен.
Есть ли способ получить доступ к действительно IMEI или серийному номеру, или к обоим, или к чему-то уникальному (я предпочитаю, чтобы для этого не требовалось никакого разрешения, но если мне нужно, тогда все в порядке)
Ответ №1:
Идентификатор Android, который предлагает @Ialit Maheshwari, на самом деле не является IMEI. Вы можете использовать диспетчер телефонии Android для запроса IMEI, но тогда вам также потребуется разрешение «READ_PHONE_STATE», которое пользователи могут расценить как очень навязчивое (им придется согласиться с чем-то вроде «Разрешить приложению совершать телефонные звонки и управлять ими»).
В конечном счете, я бы также предложил использовать Android ID. Для моих собственных целей идентификации пользователей это работает нормально.
Редактировать
Здесь приведена информация о том, как получить IMEI как на Android, так и на iOS. Однако в случае iOS даже невозможно отправлять приложения в App Store, если вы получаете доступ к IMEI.
Комментарии:
1. IMEI больше не доступен разработчикам.
Ответ №2:
Вы можете получить форму номера IMEI устройства ниже кода Settings.Secure.GetString(Forms.Context.ContentResolver, Settings.Secure.AndroidId)