Android: идентификатор Android изменяется при обновлении приложения. Что-то уникальное вместо этого?
Я получаю идентификатор Android с кодом ниже:
DeviceID = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
Но это меняется при каждом обновлении. Это неправильный способ получить его или есть что-то другое, что я могу использовать, который никогда не меняется и остается уникальным для того же устройства каждый раз?
3 ответа
Ответы, содержащие только ссылки, обычно не приветствуются, но я не вижу альтернативы в этом случае, так как статья достаточно глубока и касается различных уровней API.
См. Документацию для правильного способа справиться с этим (согласно Google):
http://developer.android.com/training/articles/user-data-ids.html
Использовать hardwareID
вместо этого это не должно измениться так сильно...
Вот код, чтобы попробовать:
/**
* Returns the embedded <i>hardwareID</i>
* @param context which {@link Context} to use
* @return the hardwareID
*/
public static String getHardwareId(Context context) {
return Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
}
К сожалению, нет ничего, что соответствует вашим требованиям.
Когда дело доходит до уникальных идентификаторов устройства Android, существует множество различных опций, но ни один из них не является гарантией 100% работы. И получение большинства из них требует запроса неприятных разрешений от пользователя.
Я могу предложить два варианта:
- Использование рекламного идентификатора Google - он уникален для каждого устройства и изменится только в том случае, если пользователь сбросит его вручную. Для его извлечения не требуется никаких дополнительных разрешений.
- Вы можете сгенерировать уникальный ключ для каждого устройства самостоятельно (используя что-то вроде UUID) и сохранить его на устройстве (общие префы, файл, база данных...).