Стабильный уникальный идентификатор для Android Xamarin - PullRequest
0 голосов
/ 24 апреля 2019

Я занимаюсь разработкой приложения для Android с использованием форм xamarin (в будущем, возможно, будет разработано приложение uwp, а не приложение ios).

Я пробовал некоторые библиотеки, такие как

https://github.com/jamesmontemagno/DeviceInfoPlugin

В библиотеке свойство с именем Id фактически является Build.Serial, и для этого есть примечание

Id Этот идентификатор не следует использовать в качестве стабильного идентификатора, поскольку каждый поставщик на Android может или не может установить его на другое значение, и на iOS оно изменяется когда приложения удалены.

и я попробовал метод GenerateAppId из той же библиотеки, но он генерирует разные идентификаторы для каждого вызова.

После этого я попробовал https://www.nuget.org/packages/Acr.DeviceInfo/ и DeviceId также является Build.Serial

Как я понимаю, этот идентификатор может измениться. Поэтому мне нужен действительно стабильный уникальный Id из устройства, и я смогу сгенерировать тот же уникальный Id из того же устройства (я не хочу его сохранять, поэтому получу число по определенному расчету)

Я использовал

Android.Provider.Settings.Secure
.GetString(context.ContentResolver, Android.Provider.Settings.Secure.AndroidId);

и Android.OS.Build.Serial

Я получаю два разных числа, но не уверен, что одно из них стабильно.

Есть ли способ получить доступ к действительно IMEI или серийному номеру, или к обоим, или к чему-то уникальному (я предпочитаю, чтобы это не требовало какого-либо разрешения, но если мне нужно, то это нормально)

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Идентификатор Android, который предлагает @Ialit Maheshwari, на самом деле не IMEI.Вы можете использовать диспетчер телефонии Android для запроса IMEI, но тогда вам также понадобится разрешение «READ_PHONE_STATE», которое пользователи могут считать очень навязчивым (им придется согласиться на что-то вроде «Разрешить приложению создавать и управлять»).телефонные звонки ").

В конечном счете, я бы также предложил использовать Android ID.Для моих собственных целей идентификации пользователей это прекрасно работает.

РЕДАКТИРОВАТЬ

Здесь - это информация о том, как получить IMEI на Android и iOS,Однако в случае iOS невозможно даже отправить Приложения в App Store, если вы получаете доступ к IMEI.

0 голосов
/ 24 апреля 2019

Вы можете получить номер IMEI устройства ниже кода Settings.Secure.GetString(Forms.Context.ContentResolver, Settings.Secure.AndroidId)

...